# Statamic Documentation > Statamic is a Laravel-powered CMS that stores content in flat files by default. This is the documentation for Statamic 6. Every page listed here is also available as Markdown — the `.md` URLs below return plain Markdown rather than HTML. ## Getting Started - [Requirements](https://statamic.dev/getting-started/requirements.md): Statamic is a modern PHP application built as a Laravel package, which carries with it the same server requirements as Laravel itself. To manipulate images… - [Licensing](https://statamic.dev/getting-started/licensing.md): Statamic is available in two distinct flavors, but one splendid codebase. Statamic Core is free and open source and can be used for any type of project, while… - [Core Concepts](https://statamic.dev/getting-started/core-concepts.md): Statamic is opinionated software. Understanding the principles we follow and apply to the way we build features will help you learn Statamic faster. - [Quick start guide](https://statamic.dev/getting-started/quick-start-guide.md): A step-by-step guide to installing and building your first Statamic site. - [How to install Statamic](https://statamic.dev/getting-started/installing.md): Because Statamic is a self-hosted platform, there are many different ways to get started. We recommend using whichever approach you're most comfortable with. - [Install Statamic Locally Using Laravel Herd](https://statamic.dev/getting-started/installing/laravel-herd.md): Using Laravel Herd to run Statamic locally is the easiest and fastest way to get started with the best CMS out there. It is also very beginner-friendly. - [How to Install Statamic with the CLI](https://statamic.dev/getting-started/installing/local.md): Install Statamic anywhere you already have PHP and Composer — Linux, custom environments, or anytime you prefer the terminal over a guided Herd setup. - [How to Install into an Existing Laravel Application](https://statamic.dev/getting-started/installing/laravel.md): Statamic can be installed into an existing Laravel application and used to add new sections — like a blog or press release section — function as a headless CMS,… - [How to Install Statamic on Ubuntu](https://statamic.dev/getting-started/installing/ubuntu.md): A full walk-through for installing, configuring and running Statamic on an Ubuntu server, perfect for production use. - [How to Install Statamic with Docker](https://statamic.dev/getting-started/installing/docker.md): Docker is an open source project that streamlines the deployment of an application (or OS) inside a Linux Container. Any dockerized image can run on any machine… - [How to Install Statamic on Linode](https://statamic.dev/getting-started/installing/linode.md): A full walk-through for installing, configuring, and running Statamic on a Linode Ubuntu virtual private server. - [How to Install Statamic on Digital Ocean](https://statamic.dev/getting-started/installing/digital-ocean.md): A full walk-through for installing, configuring, and running Statamic on a Digital Ocean Ubuntu virtual private server. - [How to Install Statamic on Laravel Forge](https://statamic.dev/getting-started/installing/laravel-forge-1-click.md): A full tutorial on how to install Statamic with Forge's 1-Click Installer. For this walk-through, we'll assume you have a Forge account with a server… - [Configuration](https://statamic.dev/getting-started/configuration.md): Statamic uses standard Laravel config files and environment variables for application-level settings. - [Upgrade guide](https://statamic.dev/getting-started/upgrade-guide.md): How to upgrade between various versions of Statamic. - [Upgrading from v2 to v3](https://statamic.dev/getting-started/upgrade-guide/v2-to-v3.md): A guide for upgrading your existing Statamic v2 projects to v3. - [Upgrade from 3.0 to 3.1](https://statamic.dev/getting-started/upgrade-guide/3-0-to-3-1.md): A guide for upgrading from 3.0 to 3.1 - [Upgrade from 3.1 to 3.2](https://statamic.dev/getting-started/upgrade-guide/3-1-to-3-2.md): A guide for upgrading from 3.1 to 3.2 - [Upgrade from 3.2 to 3.3](https://statamic.dev/getting-started/upgrade-guide/3-2-to-3-3.md): A guide for upgrading from 3.2 to 3.3. For most sites, the process will take less than 5 minutes. If your site is running an old version of PHP or Laravel, it… - [Upgrade from 3.3 to 3.4](https://statamic.dev/getting-started/upgrade-guide/3-3-to-3-4.md): A guide for upgrading from 3.3 to 3.4. For most sites, the process will take less than 5 minutes. - [Upgrade from 3.4 to 4.0](https://statamic.dev/getting-started/upgrade-guide/3-4-to-4-0.md): A guide for upgrading from 3.4 to 4.0. For most sites (those running Laravel > 8), the process will take less than 5 minutes. - [Upgrade from 4 to 5](https://statamic.dev/getting-started/upgrade-guide/4-to-5.md): A guide for upgrading from 4 to 5. For most sites (those running Laravel > 9), the process will take less than 5 minutes. - [Upgrade from 5 to 6](https://statamic.dev/getting-started/upgrade-guide/5-to-6.md): A guide for upgrading from 5 to 6. For most sites (those running Laravel >= 12), the process will take less than 5 minutes. - [Upgrade from Vue 2 to Vue 3](https://statamic.dev/getting-started/upgrade-guide/vue-2-to-3.md): A guide for upgrading Vue 2 to 3. - [Upgrade from Laravel 7 to 8](https://statamic.dev/getting-started/upgrade-guide/laravel-7-to-8.md): A quick guide for upgrading from Laravel 7 to 8. - [Upgrade from Bard v1 to v2](https://statamic.dev/getting-started/upgrade-guide/bard-v1-to-v2.md): A guide for upgrading from Bard v1 to v2. - [Updating](https://statamic.dev/getting-started/updating.md): Updates are handled by Composer, PHP's dependency manager. We recommend running all updates locally (not on production) via the command line and deploying those… - [Deploying](https://statamic.dev/getting-started/deploying.md): Statamic is a modern PHP application, built as a Laravel package, and can be deployed like any standard Laravel application or as a static site. Here are some… - [Deploying Statamic with Laravel Forge](https://statamic.dev/getting-started/deploying/laravel-forge.md): Laravel Forge provisions and deploys PHP applications on DigitalOcean, Vultr, Akamai, AWS Hetzner and other hosting platforms. It's our favorite way to deploy… - [Deploying Statamic with Laravel Cloud](https://statamic.dev/getting-started/deploying/laravel-cloud.md): Laravel Cloud is a fully managed infrastructure platform. It's relentlessly optimized for Laravel and PHP. It's our favorite way to deploy Statamic sites that… - [Deploying Statamic with Ploi](https://statamic.dev/getting-started/deploying/ploi.md): Ploi provisions and deploys PHP applications on DigitalOcean, Linode, Vultr, Amazon, Hetzner and other hosting platforms. It's a piece of 🍰 to deploy a Statami… - [Deploying Statamic to Netlify](https://statamic.dev/getting-started/deploying/netlify.md): Netlify is a Jamstack service and cloud provider that lets you deploy your Statamic site statically with blazing fast performance using its Edge CDN. - [Deploying Statamic with Vercel](https://statamic.dev/getting-started/deploying/vercel.md): Please note that by hosting your site statically with a service like Vercel or Netlify, you can't access the Control Panel in production and are not able to use… - [Deploying Statamic with fortrabbit](https://statamic.dev/getting-started/deploying/fortrabbit.md): fortrabbit is a managed PHP app hosting solution running on AWS. Well known since 2012. ## Content Modeling > Before you build pages, templates, or implement features, there’s one foundational question to answer: **what shape should your content take?** - [Content Modeling](https://statamic.dev/content-modeling/overview.md): Before you build pages, templates, or implement features, there’s one foundational question to answer: what shape should your content take? - [Collections](https://statamic.dev/content-modeling/collections.md): Collections are containers that hold groups of related entries. Each entry in a collection can represent a blog post, product, recipe, or even chapter of your… - [Structures](https://statamic.dev/content-modeling/structures.md): A structure is a tree — nested items you rearrange in the Control Panel. That tree either owns a collection’s URLs or powers a freestyle nav. Same shape, two… - [Navigation](https://statamic.dev/content-modeling/navigation.md): A nav is a freestyle structure for menus — headers, footers, sidebars, the chrome. It composes links; it does not own your URLs. - [Taxonomies](https://statamic.dev/content-modeling/taxonomies.md): A taxonomy is a system of classifying data around a set of unique characteristics. Scientists have been using this system for years, grouping all living… - [Globals](https://statamic.dev/content-modeling/globals.md): Global variables store content that belongs to the whole site, not just a single page or URL. Globals are available everywhere, in all of your views, all of the… - [Blueprints](https://statamic.dev/content-modeling/blueprints.md): Blueprints are a key component of the content modeling process. Inside a blueprint you define your fields, which fieldtypes they'll implement, group them into… - [Computed Values](https://statamic.dev/content-modeling/computed-values.md): Define dynamic values on your data and display them as virtual fields in the Control Panel. They're like accessors on Eloquent models. - [Data Inheritance](https://statamic.dev/content-modeling/data-inheritance.md): Statamic sets data in a series of scopes that can inherit and override each other in order. We call this data inheritance model The Cascade. - [Fieldsets](https://statamic.dev/content-modeling/fieldsets.md): Fieldsets are used to store and organize reusable fields. - [Fields](https://statamic.dev/content-modeling/fields.md): While in the control panel all content is managed inside fields. They come in many types, from basic text and select boxes, to rich text fields and image… - [Relationships](https://statamic.dev/content-modeling/relationships.md): Content is often related to other content and bits of data. A blog post may have an author and 3 other recommended posts. A product may have a brand and a… - [Routing](https://statamic.dev/content-modeling/routing.md): Statamic has several ways it routes requests and defines URLs and patterns, all of which are listed and described in this section. - [Revisions](https://statamic.dev/content-modeling/revisions.md): Revisions adds an entire publishing workflow to your authoring process. You can create revisions, review and rollback to previous revisions of your content, and… - [Validation](https://statamic.dev/content-modeling/validation.md): Statamic allows you to validate your data using Laravel's validation system. ## Control Panel > The Statamic Control Panel is where you manage everything that makes your site… well, your site. It's the admin interface you use to create and edit content, manage users and permissions, tweak settings, access utilities, and interact with addons — all without needing to touch the filesystem directly - [Control Panel Overview](https://statamic.dev/control-panel/overview.md): The Statamic Control Panel is where you manage everything that makes your site… well, your site. It's the admin interface you use to create and edit content,… - [Command Palette](https://statamic.dev/control-panel/command-palette.md): The command palette provides handy access to many pages and actions in the Control Panel without having to leave your keyboard. - [Conditional Fields](https://statamic.dev/control-panel/conditional-fields.md): Show and hide fields in your publish forms based on conditions and triggers. For example, you may only want to show a caption field if an asset field has an… - [Control Panel Translations](https://statamic.dev/control-panel/cp-translations.md): Statamic's Control Panel is currently available in 28 languages. We always welcome new translations! - [CSS & JavaScript](https://statamic.dev/control-panel/css-javascript.md): Statamic can load custom stylesheets and Javascript files located in the public/vendor/ directory, or from external sources. - [Customizing the Control Panel Navigation](https://statamic.dev/control-panel/customizing-the-cp-nav.md): The Control Panel (CP) navigation is quite customizable. You can add your own sections, pages, and subpages, as well as hide or modify existing ones. - [Dashboard](https://statamic.dev/control-panel/dashboard.md): The dashboard is a user-customizable screen containing widgets. Lots of widgets, few widgets, custom widgets, or prebuilt widgets. All kinds of widgets. - [Elevated Sessions](https://statamic.dev/control-panel/elevated-sessions.md): Elevated Sessions allow you to prompt users for their password or a verification code before being able to take certain actions. - [Extending CP Navigation](https://statamic.dev/control-panel/cp-navigation.md): The Control Panel navigation is quite customizable. Addons can add their own sections, pages, and subpages, as well as remove and modify existing ones. - [Field Actions](https://statamic.dev/control-panel/field-actions.md): Field actions allow you perform JavaScript-based tasks on individual fields within a publish form. - [Git Automation](https://statamic.dev/control-panel/git-automation.md): Statamic can automate your version control workflow with Git. It can automatically commit and push content as it's changed, schedule commits, or allow users… - [Keyboard Shortcuts](https://statamic.dev/control-panel/keyboard-shortcuts.md): Improve usability by adding keyboard shortcuts. - [Live Preview](https://statamic.dev/control-panel/live-preview.md): Live Preview gives you the ability to see what your entry will look like in real time as you write and edit. You can configure and switch the preview screen… - [Multi-Site](https://statamic.dev/control-panel/multi-site.md): Statamic's multi-site capabilities are designed to manage variations of a single site, and/or different sections of a single site running on one or more domains… - [Multi-User Collaboration](https://statamic.dev/control-panel/multi-user-collaboration.md): Stop worrying if someone else is editing the same article at the same time and start enjoying a collaborative authoring process. Each field automatically… - [Preferences](https://statamic.dev/control-panel/preferences.md): Preferences are easy to manage settings available from and generally affecting only the inside of the control panel. They can be set differently per-user, role,… - [Publish Forms](https://statamic.dev/control-panel/publish-forms.md): Build custom forms by harnessing the power of Blueprints and Fieldtypes. - [Routing](https://statamic.dev/control-panel/routing.md): You can register Control Panel routes to build custom pages. - [Toast Notifications](https://statamic.dev/control-panel/toast-notifications.md): Simple notification messages that "pop" into the screen like toast popping out of a toaster. - [Users](https://statamic.dev/control-panel/users.md): Users are the member accounts to your site or application. What a user can do with their account is up to you. They could have limited or full access to the… - [User Groups](https://statamic.dev/control-panel/user-groups.md): User groups let you attach roles to a set of users at once — everyone in the group inherits those permissions. - [Roles](https://statamic.dev/control-panel/roles.md): Roles are named bundles of permissions you assign to users and user groups — Editors, Authors, Clients, whatever fits your team. - [Permissions](https://statamic.dev/control-panel/permissions.md): Permissions are the individual abilities you tick when building a role — view entries, edit assets, manage users, and so on. - [Custom Permissions](https://statamic.dev/control-panel/custom-permissions.md): Register your own permissions for apps and addons with Permission::register — nested trees, wildcards, policies, and groups. - [Utilities](https://statamic.dev/control-panel/utilities.md): Utilities are simple tools with their own views, routes, navigation items, and permissions. - [White Labeling](https://statamic.dev/control-panel/white-labeling.md): White Labeling allows you to customize the logo, visible name, and basic theme of the CMS throughout the control panel. ## Frontend > Frontend, backend, control panel, client-side, server-side, left-side, strong-side, front-side fakey 180...there's a lot of terminology flying around referring to the various aspects of a website. Let's clear 'em up, at least in the Statamic context. - [Frontend Overview](https://statamic.dev/frontend/overview.md): Frontend, backend, control panel, client-side, server-side, left-side, strong-side, front-side fakey 180...there's a lot of terminology flying around… - [Antlers Templates](https://statamic.dev/frontend/antlers.md): Antlers is a simple and powerful templating engine provided with Statamic. It can fetch and filter content, display, modify, and set variables, tap into core… - [Antlers Cheat Sheet](https://statamic.dev/frontend/antlers-cheat-sheet.md): A brief overview of the Antlers features you're likely to use — and a few you may not have known existed. - [Blade Templates](https://statamic.dev/frontend/blade.md): Antlers is not always the best template engine for the job. If you're using Statamic as a headless CMS or want to share views with a Laravel application already… - [Views](https://statamic.dev/frontend/views.md): Views contain HTML, have access to your data, and are used to render the front-end of your site. Layouts, templates, and partials are all different types of… - [Augmentation](https://statamic.dev/frontend/augmentation.md): Augmentation automatically transforms the rendered output of all Blueprint-defined variables based on their fieldtype. - [Assets](https://statamic.dev/frontend/assets.md): Assets are files managed by Statamic and made available to your writers and developers with tags and fieldtypes. They can be images, videos, PDFs, or any… - [Content Queries](https://statamic.dev/frontend/content-queries.md): Statamic provides a fluent query builder interacting with your content and data in PHP-land. If you think of them as Laravel Eloquent Models, you should feel… - [Controllers](https://statamic.dev/frontend/controllers.md): Controllers group related Laravel request handling logic into single classes stored in the app/Http/Controllers/ directory. Use them to build frontend areas… - [Customizing Markdown](https://statamic.dev/frontend/markdown.md): You may parse Markdown in Statamic by using the Markdown facade. - [Forms](https://statamic.dev/frontend/forms.md): Forms are a natural part of the internet experience and a core component of most websites. From a basic "Contact Me" form to a multi-page job application,… - [GraphQL API](https://statamic.dev/frontend/graphql.md): The GraphQL API is a read-only API for delivering content from Statamic to your frontend, external apps, SPAs, and numerous other possible sources. Content is… - [Image Manipulation (Glide)](https://statamic.dev/frontend/image-manipulation.md): Statamic uses Glide to manipulate images – from resizing and cropping to adjustments (like sharpness and contrast) and image effects (like pixelate and sepia). - [JavaScript Frameworks](https://statamic.dev/frontend/javascript-frameworks.md): There are many different approaches you could take to pass data to JavaScriptLand. Here are some suggestions on how to fetch, format, and hydrate (inject… - [Protecting Content](https://statamic.dev/frontend/protecting-content.md): It's common to want to put a site online before it's ready to be viewed by the public. Statamic has built-in ways of making this very easy for you. - [REST API](https://statamic.dev/frontend/rest-api.md): The Content REST API is a read-only API for delivering content from Statamic to your frontend, external apps, SPAs, and numerous other possible sources. Content… - [Search](https://statamic.dev/frontend/search.md): Help your visitors find what they're looking for with search. Use configurable indexes to configure which fields are important, which aren't, and fine-tune your… - [View Models](https://statamic.dev/frontend/view-models.md): View Models give you a chance to manipulate or set data in PHP right before everything is passed into your view, parsed, and then rendered. ## Advanced Topics - [CLI](https://statamic.dev/advanced-topics/cli.md): Statamic provides developers a nice long list of scripts available in the command line. They can clear caches, create users, generate addon and extension… - [Caching](https://statamic.dev/advanced-topics/caching.md): Caching is the life-blood, the secret-sauce, and the wizard behind the curtain of Statamic. There are several caching layers, each with its own purpose. Let's… - [Debugging](https://statamic.dev/advanced-topics/debugging.md): Debugging is the secret art of the experienced developer. The ability to inspect stack traces, rifle through response objects, and dump data to the screen is… - [Lifecycle](https://statamic.dev/advanced-topics/lifecycle.md): Request comes in to the server, and is handled by Laravel. - [OAuth](https://statamic.dev/advanced-topics/oauth.md): OAuth authentication is powered by Laravel Socialite, with built-in support for Facebook, Twitter, Google, LinkedIn, GitHub, and Bitbucket. - [Sending Email](https://statamic.dev/advanced-topics/email.md): Be sure to configure your email settings if you want to invite new users, send password resets, and receive form submission notifications. There's even an… - [Sites API](https://statamic.dev/advanced-topics/sites-api.md): We have an API that can be used to manage your Statamic Sites in your statamic.com account. This is most useful with our Platform Plan, which you can contact us… - [Stache](https://statamic.dev/advanced-topics/stache.md): Instead of using a relational database like MySQL as a storage system, Statamic aggregates the data in your content files into an efficient, index-based… - [Static Caching](https://statamic.dev/advanced-topics/static-caching.md): Nothing loads faster than static pages. Instead of rendering pages dynamically on demand, Statamic can cache static pages and pass routing to Apache or Nginx… - [Task Scheduling](https://statamic.dev/advanced-topics/scheduling.md): Manage scheduled tasks using Laravel's task scheduler. - [YAML](https://statamic.dev/advanced-topics/yaml.md): YAML is a data storage format designed to be human readable and easily manipulated by hand. It's interchangeable with JSON and in most cases easier to write.… ## Fieldtypes > Fieldtypes are customizable form [fields](/fields) used to structure your content and provide an intuitive content management experience. Each fieldtype has its own UI, data format, and configuration options. - [Fieldtypes Overview](https://statamic.dev/fieldtypes/overview.md): Fieldtypes are customizable form fields used to structure your content and provide an intuitive content management experience. Each fieldtype has its own UI,… - [All Fieldtypes](https://statamic.dev/fieldtypes/all-fieldtypes.md) - [Build a Fieldtype](https://statamic.dev/fieldtypes/build-a-fieldtype.md): Fieldtypes determine the user interface and storage format for your fields. Statamic includes 40+ fieldtypes to help you tailor the perfect intuitive experience… - [Dictionaries](https://statamic.dev/fieldtypes/dictionaries.md): Dictionaries add options to the Dictionary fieldtype. - [Relationship Fieldtypes](https://statamic.dev/fieldtypes/relationship-fieldtypes.md): The Relationship fieldtype is one of the more powerful fields in Statamic's core. So powerful, in fact, that it earns its very own page in the docs. This is… ## Tags > Tags are Antlers expressions that give you the ability to fetch, filter, and display content, enhance and simplify your markup, build forms, and add dynamic functionality to your templates. - [Tags Overview](https://statamic.dev/tags/overview.md): Tags are Antlers expressions that give you the ability to fetch, filter, and display content, enhance and simplify your markup, build forms, and add dynamic… - [All Tags](https://statamic.dev/tags/all-tags.md): Tags are Antlers expressions giving you the ability to fetch, filter, and display content, enhance and simplify your markup, build forms, and build dynamic… - [Tag Conditions](https://statamic.dev/tags/conditions.md): Conditions allow you to filter the results of your content tags (e.g. Collections, Taxonomies) using the data inside them, much like WHERE clauses do with SQL. - [Building Tags](https://statamic.dev/tags/building-a-tag.md): Ultimately a Tag is nothing more than a PHP method called from an Antlers or Blade template. This common pattern allows non-PHP developers to take advantage… ## Variables > Context-aware variables are always available in your [views](/views), giving you access to dynamic information about the current URL, user, loaded entry, site settings, and more. - [Variables Overview](https://statamic.dev/variables/overview.md): Context-aware variables are always available in your views, giving you access to dynamic information about the current URL, user, loaded entry, site settings,… - [All Variables](https://statamic.dev/variables/all-variables.md): Context-aware variables are always available in your views, giving you access to dynamic information about the current URL, user, loaded entry, site settings,… ## Modifiers > Modifiers manipulate the data of your variables on the fly in Antlers templates. They can modify strings, filter arrays and lists, perform comparisons, handle basic math, simplify your markup, and even help you debug. - [Modifiers Overview](https://statamic.dev/modifiers/overview.md): Modifiers manipulate the data of your variables on the fly in Antlers templates. They can modify strings, filter arrays and lists, perform comparisons, handle… - [All Modifiers](https://statamic.dev/modifiers/all-modifiers.md) - [Building Modifiers](https://statamic.dev/modifiers/modifiers.md): Modifiers give you the ability to manipulate the data of your variables on the fly. They can manipulate strings, filter arrays and lists, help you compare… ## Widgets > The Control Panel's dashboard may contain any number of widgets. A widget is simply a box that shows something. That something might be anything from a list of recently updated entries, to a randomized inspiration quote, and anything in between. - [Widgets Overview](https://statamic.dev/widgets/overview.md): The Control Panel's dashboard may contain any number of widgets. A widget is simply a box that shows something. That something might be anything from a list… - [All Widgets](https://statamic.dev/widgets/all-widgets.md) - [Building Widgets](https://statamic.dev/widgets/building-a-widget.md): You can generate a widget with a console command ## Addons > Developers can easily build new features that are compatible with everyone’s Statamic installations. Addons can then be easily shared or sold to others to let them extend their Statamic installation. - [Addons Overview](https://statamic.dev/addons/overview.md): Developers can easily build new features that are compatible with everyone’s Statamic installations. Addons can then be easily shared or sold to others to let… - [Building an Addon](https://statamic.dev/addons/building-an-addon.md): An addon is a composer package you intend to reuse, distribute, or sell. For simple or private packages, consider implementing directly into your Laravel… - [Testing](https://statamic.dev/addons/testing.md): There's only one thing better than manual testing... automated testing. Addons are scaffolded with PHPUnit test suites out-of-the-box. Learn how to write &… - [Vite Tooling](https://statamic.dev/addons/vite-tooling.md): How to use Vite in your addon. ## Starter Kits > Starter Kits are pre-built site packages that jump-start new Statamic sites with features, functionality, and even design. Built by the core team or designers & developers in the community, Starter Kits can cover a wide range of uses, from fully-built, ready-to-go sites, to developer-focused boilerplates for common frontend frameworks. Starter Kits can be shared and even sold on the Statamic Marketplace. - [Starter Kits Overview](https://statamic.dev/starter-kits/overview.md): Starter Kits are pre-built site packages that jump-start new Statamic sites with features, functionality, and even design. Built by the core team or designers &… - [Creating a Starter Kit](https://statamic.dev/starter-kits/creating-a-starter-kit.md): Thinking of creating your own Statamic Starter Kit? Here's everything you need to know to get started. - [Installing a Starter Kit](https://statamic.dev/starter-kits/installing-a-starter-kit.md): Installing a Starter Kit is a pretty simple thing, but like with many things in life, there are a few different ways you can do it. Let's cover them all. - [Updating a Starter Kit](https://statamic.dev/starter-kits/updating-a-starter-kit.md): Starter Kits aren't all designed to be updatable, but when they are you'll need to know how. ## Backend & APIs - [Resource APIs](https://statamic.dev/backend-apis/resource-apis.md) - [Data Retrieval and Manipulation](https://statamic.dev/backend-apis/data.md): One of the most crucial aspects of extending a Content Management System is being able to retrieve the data and manipulate it. Statamic has a number of… - [Actions](https://statamic.dev/backend-apis/actions.md): Actions allow you to perform tasks on one or more items. You can trigger actions by selecting multiple items in a listing, or using each item's contextual menu. - [Blink Cache](https://statamic.dev/backend-apis/blink-cache.md): The Blink Cache allows you to cache expensive operations for the life of a single request. - [Events](https://statamic.dev/backend-apis/events.md): Events serve as a great way to decouple various aspects of the application, or even modify behavior or output of core functionality. A single event can have… - [Hooks](https://statamic.dev/backend-apis/hooks.md): Statamic allows you to hook into specific points in PHP logic and perform operations using Pipelines. - [Query Scopes & Filters](https://statamic.dev/backend-apis/query-scopes-and-filters.md): Query scopes and filters allow you to narrow down query results using custom conditions. - [Repositories](https://statamic.dev/backend-apis/repositories.md): Statamic uses a repository pattern to retrieve data from various places. ## Vue Components - [Vue Components Overview](https://statamic.dev/vue-components/overview.md): In order to use a custom Vue component, it needs to be registered. You should do this inside the Statamic.booting() callback. - [UI Components](https://ui.statamic.dev) - [Dirty State Tracking](https://statamic.dev/vue-components/dirty-state-tracking.md): Prevent users from accidentally leaving the page and losing their work. - [Event Bus](https://statamic.dev/vue-components/js-events.md): For situations where emitting an event to the parent component doesn't make sense, Statamic has a global event bus. You can emit and listen to events directly… - [Formatters](https://statamic.dev/vue-components/formatters.md): Locale-aware formatters for dates and numbers in the Control Panel, built on top of the browser's Intl APIs. - [JavaScript Hooks](https://statamic.dev/vue-components/js-hooks.md): Statamic allows you to hook into specific points in JavaScript and perform asyncronous operations using Promises. - [Progress](https://statamic.dev/vue-components/progress.md): Control the magic progress bar at the top of the page. - [Slugs](https://statamic.dev/vue-components/slugs.md): You can use the component to generate a slug based off another property ## Knowledge Base - [Tips & Tricks](https://statamic.dev/knowledge-base/tips.md): Here's a collection of little tips & tricks to help you on your way. - [Recommended Hosts](https://statamic.dev/knowledge-base/recommended-hosts.md): A user-curated list of web hosts that do (and don't) play well with Statamic. - [Troubleshooting](https://statamic.dev/knowledge-base/troubleshooting.md): Here are some common pitfalls. - [Code of Conduct](https://statamic.dev/knowledge-base/code-of-conduct.md): This is the Statamic Code of Conduct. By participating here, you are expected to uphold this code like a knight of old. This code of conduct applies to all… - [Contributing](https://statamic.dev/knowledge-base/contributing.md): ✨Thank you for taking the time to consider a contribution!✨ - [Contribution Guide](https://statamic.dev/knowledge-base/contribution-guide.md): A guide on how to contribute to the statamic/cms repo - [Content Manager’s Guide to Statamic](https://statamic.dev/knowledge-base/content-managers-guide.md): So you've got yourself a brand new Statamic site, inherited an older one, or joined a team that's already using Statamic. Great! Welcome to the wonderful… - [Release Schedule & Support Policy](https://statamic.dev/knowledge-base/release-schedule-support-policy.md): For all Statamic releases, bug fixes are provided for 1 year and security fixes are provided for 18 months. For all first party addons, only the latest major… - [Switching From WordPress to Statamic](https://statamic.dev/knowledge-base/from-wordpress-to-statamic.md): Thinking about moving from WordPress to Statamic? You wouldn't be the first. If you’ve been in the WordPress world for a while, you’re pretty familiar with… ## Tags Reference - [404 (Not Found)](https://statamic.dev/tags/404.md): Anytime this tag is rendered — whether in a template, partial, or content, Statamic will trigger a 404 status code and render your 404 template. - [Asset](https://statamic.dev/tags/asset.md): The Asset (singular tense) tag retrieves single assets by their URL. - [Assets](https://statamic.dev/tags/assets.md): Used to retrieve Assets directly from a container where you can then loop, filter, and sort them in expected but exciting ways. - [Cache](https://statamic.dev/tags/cache.md): If you find that a particular chunk of your view logic is the cause of a performance hit — perhaps you're fetching and filtering huge amount of content, or… - [Children](https://statamic.dev/tags/children.md): The Children tag allows you to loop over and fetch data from the current URL. - [Collection](https://statamic.dev/tags/collection.md): Entries are grouped into Collections and are fetched and filtered by this tag. A Collection could contain blog posts, products, or even a bag full of dad jokes.… - [Collection:Count](https://statamic.dev/tags/collection-count.md): This tag is a clone of the collection tag but with one big difference: it only returns the total number of entries that match your set of filters. - [Collection:Next](https://statamic.dev/tags/collection-next.md): If you're on a single entry page and want to show next entries in order (publish date, alphabetical, or manual), this is the tag you're looking for. - [Collection:Previous](https://statamic.dev/tags/collection-previous.md): If you're on a single entry page and want to show previous entries in order (publish date, alphabetical, or manual), this is the tag you're looking for. - [Cookie](https://statamic.dev/tags/cookie.md): Cookies provide a client-side way to store information about the user across requests. The cookie tag will let you get, set, and forget cookie data. - [Dictionary](https://statamic.dev/tags/dictionary.md): Allows you to loop through options from a Dictionary. - [Dump](https://statamic.dev/tags/dump.md): The dump tag is used for debugging data inside your current view context. - [Foreach](https://statamic.dev/tags/foreach.md): Loop through and render values from an array of named keys and values without needing to know the keys. - [Form](https://statamic.dev/tags/form.md): Statamic forms serve to collect, report, and reuse user submitted data. There are a number of different tags available, depending what you need to do. - [Form:Create](https://statamic.dev/tags/form-create.md): Statamic forms serve to collect, report, and reuse user submitted data. This tag handles the HTML markup, redirect behavior, and success/error states and… - [Form:Errors](https://statamic.dev/tags/form-errors.md): If a form submission encounters a validation error, you can use this tag to loop through the error messages and show your user where everything went south. - [Form:Fields](https://statamic.dev/tags/form-fields.md): To be used within the form:create tag when dynamically rendering fields. - [Form:Set](https://statamic.dev/tags/form-set.md): This is a "convenience" wrapper tag that will set all other form tags to use the same formset. - [Form:Submission](https://statamic.dev/tags/form-submission.md): If you want to show the user the data they submitted — whether as a confirmation or to pre-populate or personalize some content — this is the easiest way to… - [Form:Submissions](https://statamic.dev/tags/form-submissions.md): This is how you fetch data and display data from form submissions. It works very much like the collection tag. - [Form:Success](https://statamic.dev/tags/form-success.md): This is how you check if a form was successful outside of a form:create tag. - [Get Content](https://statamic.dev/tags/get_content.md): It gets content from other entries! Specify a URI or ID and fetch all the data attached to it. - [Get Error](https://statamic.dev/tags/get_error.md): The singular version of the "Get Errors" tag - [Get Errors](https://statamic.dev/tags/get_errors.md): This tag allows you to interact with a Laravel ViewErrorBag object to output validation errors. - [Get Files](https://statamic.dev/tags/get_files.md): The ultimate 🇨🇭Swiss Army Knife doing-stuff-with-files feature. With the get_files tag you can scan and display data on files in any directories inside your… - [Get Site](https://statamic.dev/tags/get_site.md): It gets a site's config, given it's handle. - [Glide](https://statamic.dev/tags/glide.md): The Glide tag makes it easy to manipulate images on the fly – from resizing and cropping to adjustments (like sharpness and contrast) and image effects (like… - [Glide:Batch](https://statamic.dev/tags/glide-batch.md): Use glide:batch to manipulate a whole batch of tags with Glide. - [Glide:Data_URL](https://statamic.dev/tags/glide-data-url.md): Use glide:data_url to output a manipulated image as a Data URL. - [Include](https://statamic.dev/tags/include.md): The include tag renders another view, like the partial tag, but with stricter variable scope rules and support for scoped slots. - [Include:Exists](https://statamic.dev/tags/include-exists.md): Checks if a view exists. - [Include:If_Exists](https://statamic.dev/tags/include-if-exists.md): Renders a view if it exists. - [Increment](https://statamic.dev/tags/increment.md): Each time an increment tag is parsed, an index is incremented by one and displayed. - [Installed](https://statamic.dev/tags/installed.md): Determine whether or not a Composer package is installed. - [Link](https://statamic.dev/tags/link.md): Generate fully qualified URLs with the option to include your domain. - [Locales](https://statamic.dev/tags/locales.md): Create links to localized content. - [Locales:Count](https://statamic.dev/tags/locales-count.md): Get the number of localizations. - [Loop](https://statamic.dev/tags/loop.md): Create and iterate through a loop a specific number of times or between a range. - [Markdown](https://statamic.dev/tags/markdown.md): Transform Markdown content written inline in your template. For when you just can't be bothered to write HTML or make another variable. - [Markdown:Indent](https://statamic.dev/tags/markdown-indent.md): This tag is used for transforming Markdown while ignoring whitespace in your view files. - [Mix](https://statamic.dev/tags/mix.md): The Mix tag is used in tandem with Laravel Mix to return the path to versioned CSS and JavaScript files. - [Mount URL](https://statamic.dev/tags/mount_url.md): The Mount URL tag is used to return the URL to a collection's mount entry. - [Nav](https://statamic.dev/tags/nav.md): The nav tags are designed to help your users navigate through your hierarchy of navigations and collections. - [Nav:Breadcrumbs](https://statamic.dev/tags/nav-breadcrumbs.md): Breadcrumbs are a common form of site navigation designed to give the user a view of where the current page is in the parent/child hierarchy. Much like the… - [No Cache](https://statamic.dev/tags/nocache.md): When using a broader caching solution (like static caching or the cache tag) you may want to keep a chunk of your template dynamic. - [OAuth](https://statamic.dev/tags/oauth.md): If you're using OAuth to manage user authentication, you may find you need to generate login URLs at some point. Here's how you do it. - [OAuth:Disconnect_Form](https://statamic.dev/tags/oauth-disconnect_form.md): Renders a form that disconnects an OAuth provider from the current user's account. - [Obfuscate](https://statamic.dev/tags/obfuscate.md): Whenever you need to obfuscate something, reach for the obfuscate tag. It's an obfuscating good time. - [Parent](https://statamic.dev/tags/parent.md): The Parent tag fetches data from the "parent" page — the URL one level above the current one. For example, the parent of this very URL (/tags/parent) is… - [Partial](https://statamic.dev/tags/partial.md): Partials are reusable views that may find themselves in any number of other layouts, templates, and other partials. - [Partial:Exists](https://statamic.dev/tags/partial-exists.md): Checks if a partial exists. - [Partial:If_Exists](https://statamic.dev/tags/partial-if-exists.md): Renders a partial if it exists. - [Protect:Password_Form](https://statamic.dev/tags/protect-password_form.md): This tag is used to create a custom content password protection form. - [Redirect](https://statamic.dev/tags/redirect.md): Anytime this tag is rendered — whether in a template, partial, or content, Statamic will redirect the visitor to the specified URL. - [Route](https://statamic.dev/tags/route.md): The route tag allows you to generate the full URL for a given named route, including any parameters. - [Scope](https://statamic.dev/tags/scope.md): Used to push all of the "root", or page scope data into an array to be used however you see fit. - [Search](https://statamic.dev/tags/search.md): This is how you do search. This is the tag you're looking for. - [Section](https://statamic.dev/tags/section.md): The section tag is a useful way to abstract and reuse your views by extracting a section of markup that can then be rendered elsewhere with a yield tag. - [Session](https://statamic.dev/tags/session.md): Sessions provide a stateless way to store information about the user across requests. The session tag will let you get, set, and forget session data. - [Session:Dump](https://statamic.dev/tags/session-dump.md): The contents of the user session can be dumped to the browser. You never know when you need to peek inside the black box. - [Session:Flash](https://statamic.dev/tags/session-flash.md): Flash data is session data that is only kept for a single request. It is most often used for success/failure messages that automatically disappear after a… - [Session:Flush](https://statamic.dev/tags/session-flush.md): The flush tag will wipe the entire user session. This will also sign a user out if they're signed in. - [Session:Forget](https://statamic.dev/tags/session-forget.md): Remove variables from the user session by passing the names of the variables into the keys parameter. - [Session:Has](https://statamic.dev/tags/session-has.md): This tag checks the session to see if any given keys exist in a user session. - [Session:Set](https://statamic.dev/tags/session-set.md): Data set in the session will be available in all future requests until such time that the session is cleared over time (sessions eventually expire) or… - [SVG](https://statamic.dev/tags/svg.md): The SVG tag renders inline SVGs and lets you easily set attributes on the element. - [Switch](https://statamic.dev/tags/switch.md): Each time a switch tag is rendered it will return the next value from its between parameter until it reaches the end where it will start all over again. - [Taxonomy](https://statamic.dev/tags/taxonomy.md): Taxonomy terms are grouped into taxonomies and are fetched and filtered by this tag. A taxonomy could contain tags, categories, or sock colors. - [Taxonomy:Count](https://statamic.dev/tags/taxonomy-count.md): This tag is a clone of the taxonomy tag but with one big difference: it only returns the total number of terms that match your set of filters. - [Translate](https://statamic.dev/tags/trans.md): Retrieve a string from a language file in the current locale. - [User_Groups](https://statamic.dev/tags/user-groups.md): The user_groups tag is used to return any groups you have added to collate the users on your site. - [User_Roles](https://statamic.dev/tags/user-roles.md): The user_roles tag is used to return any roles you have added to collate the users on your site. - [User:Can](https://statamic.dev/tags/user-can.md): Anything inside the user:can tag will only be rendered if the user has the specified permission. - [User:Delete_Passkey_Form](https://statamic.dev/tags/user-delete_passkey_form.md): As the tag name suggests, it allows you to delete a passkey. - [User:Disable_Two_Factor_Form](https://statamic.dev/tags/user-disable_two_factor_form.md): Allow users to turn off two-factor authentication. If their role requires 2FA, they'll be prompted to set it up again. - [User:Elevated_Session_Form](https://statamic.dev/tags/user-elevated_session_form.md): If you want to protect sensitive frontend actions with re-authentication, this tag renders the form for users to confirm their identity. - [User:Forgot_Password_Form](https://statamic.dev/tags/user-forgot_password_form.md): This tag is used to create a "forgot my password" form for your users. - [User:In](https://statamic.dev/tags/user-in.md): Anything inside the user:in tag will only be rendered if the user is in the specified group. - [User:Is](https://statamic.dev/tags/user-is.md): Anything inside the user:is tag will only be rendered if the user has a specific role. - [User:Login_Form](https://statamic.dev/tags/user-login_form.md): If you want to build a login form for your users, this is the easiest way to do it. - [User:Logout](https://statamic.dev/tags/user-logout.md): Logs a user out and redirects them elsewhere - [User:Logout_URL](https://statamic.dev/tags/user-logout_url.md): Generates a user logout URL - [User:Passkey_Form](https://statamic.dev/tags/user-passkey_form.md): Allows authenticated users to set up passkeys - [User:Passkeys](https://statamic.dev/tags/user-passkeys.md): Loop through the authenticated user's registered passkeys. - [User:Password_Form](https://statamic.dev/tags/user-password_form.md): Creates a user password update form - [User:Profile](https://statamic.dev/tags/user-profile.md): Fetching user data made easy. - [User:Profile_Form](https://statamic.dev/tags/user-profile_form.md): Creates user profile edit forms - [User:Register_Form](https://statamic.dev/tags/user-register_form.md): Creates user registration forms - [User:Reset_Password_Form](https://statamic.dev/tags/user-reset_password_form.md): This tag is used to to set a new password after a user has received the reset link from the "forgot my password" form. - [User:Reset_Two_Factor_Recovery_Codes_Form](https://statamic.dev/tags/user-reset_two_factor_recovery_codes_form.md): If a user has used some of their recovery codes or suspects they've been compromised, they can generate a fresh set. This invalidates all existing codes. - [User:Two_Factor_Challenge_Form](https://statamic.dev/tags/user-two_factor_challenge_form.md): When a user with two-factor authentication enabled logs in, they need to verify their identity with a code from their authenticator app. This tag renders that… - [User:Two_Factor_Enable_Form](https://statamic.dev/tags/user-two_factor_enable_form.md): Step one of the two-factor authentication setup flow. Submitting this form generates a 2FA secret for the user and sends them on to the setup page where they… - [User:Two_Factor_Enabled](https://statamic.dev/tags/user-two_factor_enabled.md): A boolean tag that returns true when the authenticated user has two-factor authentication enabled. Useful for conditionally showing recovery code or disable UI. - [User:Two_Factor_Recovery_Codes](https://statamic.dev/tags/user-two_factor_recovery_codes.md): Recovery codes provide a backup way for users to access their account if they lose their authenticator device. This tag displays those codes. - [User:Two_Factor_Recovery_Codes_Download_URL](https://statamic.dev/tags/user-two_factor_recovery_codes_download_url.md): Outputs a URL to download recovery codes as a text file - [User:Two_Factor_Setup_Form](https://statamic.dev/tags/user-two_factor_setup_form.md): Step two of the two-factor authentication setup flow. This tag displays the QR code and verifies the code the user enters to confirm their authenticator app… - [Users](https://statamic.dev/tags/users.md): The users tag can be used to fetch, filter, and iterate over Users and their data. - [Vite](https://statamic.dev/tags/vite.md): This tag is used in tandem with the Vite build tool to return the path to CSS and JavaScript files. - [Vite:Content](https://statamic.dev/tags/vite-content.md): This tag is used in tandem with the Vite build tool to return the contents of CSS and JavaScript files. - [Yield](https://statamic.dev/tags/yield.md): The yield tag is a useful way to abstract and reuse your views by displaying content or markup extracted in a template by the section tag. ## Modifiers Reference - [Add](https://statamic.dev/modifiers/add.md): Add a value or another variable to your variable. Pass an integer or the name of a second variable as the parameter. Also supports + as shorthand. - [Add Slashes](https://statamic.dev/modifiers/add_slashes.md): Modifies a string by adding backslashes before characters that need to be escaped. These characters are - [Ampersand List](https://statamic.dev/modifiers/ampersand_list.md): Turn a simple array into a comma delimited string with a friendly little ampersand between the last two items. - [Antlers](https://statamic.dev/modifiers/antlers.md): Parses the given value as an Antlers template. - [As](https://statamic.dev/modifiers/as.md): Alias an array variable as another name, allowing you to massage your data to reused shared components and templates. - [Ascii](https://statamic.dev/modifiers/ascii.md): Replaces all non-ASCII characters with their closest ASCII counterparts and removes any unsupported characters completely. This is very useful for converting… - [At](https://statamic.dev/modifiers/at.md): Returns the single character at a given position in a string. It starts at zero with the first character. - [Attribute](https://statamic.dev/modifiers/attribute.md): When you're writing partials, you might find yourself passing variables that will ultimately just be used in HTML attributes, like this - [Background Position](https://statamic.dev/modifiers/background_position.md): Converts an asset focal point value (eg. 50-30) into a value suitable for the background-position css property. - [Backspace](https://statamic.dev/modifiers/backspace.md): Removes a specified number of characters from the end of a string. - [Bard HTML](https://statamic.dev/modifiers/bard_html.md): Converts any Bard data to an HTML string (excluding sets). Bard data can be either - [Bard Items](https://statamic.dev/modifiers/bard_items.md): Converts any Bard data to a flat array of ProseMirror nodes and marks. Bard data can be either - [Bard Text](https://statamic.dev/modifiers/bard_text.md): Converts any Bard data to a plain text string (excluding sets). Bard data can be either - [Bool String](https://statamic.dev/modifiers/bool_string.md): Converts a truthy value to the string true and a falsy to the string false. Check out https://www.php.net/manual/en/language.types.boolean.php to see what PHP… - [Camelize](https://statamic.dev/modifiers/camelize.md): Returns a camelCase version of a string. Trims surrounding spaces, capitalizes letters following digits, spaces, dashes and underscores, and removes spaces,… - [CDATA](https://statamic.dev/modifiers/cdata.md): Wraps a string in [CDATA][cdata] tags, useful for formatting characters properly in XML. - [Ceil](https://statamic.dev/modifiers/ceil.md): Rounds a number up to the next whole number. - [Chunk](https://statamic.dev/modifiers/chunk.md): Break arrays or collections into smaller (wait for it) chunks of any given size. This is useful for performing various gymnastics with your HTML markup. - [Classes](https://statamic.dev/modifiers/classes.md): This conditionally compiles a CSS class string using Laravel's Arr::toCssClasses() method. - [Collapse](https://statamic.dev/modifiers/collapse.md): Collapses an array of arrays into a flat array. Duplicate string keys are overwritten; numeric keys are reindexed. - [Collapse Whitespace](https://statamic.dev/modifiers/collapse_whitespace.md): Trims a string and replaces consecutive whitespace characters with a single space. This includes tabs and newline characters, as well as multibyte whitespace… - [Compact](https://statamic.dev/modifiers/compact.md): Converts a comma-delimited string of variable names into an array of their values. - [Console Log](https://statamic.dev/modifiers/console_log.md): Debug a variable by dumping its contents to your browser's JavaScript's console via console.log. - [Contains](https://statamic.dev/modifiers/contains.md): Check if a string or array contains a value. Returns true if a match is found, otherwise false. - [Contains All](https://statamic.dev/modifiers/contains_all.md): Search a string against multiple needles and return true if all are found, otherwise false. Comparisons are case-sensitive. - [Contains Any](https://statamic.dev/modifiers/contains_any.md): Search a string against multiple needles and return true if any are found, otherwise false. Comparisons are case-sensitive. - [Count](https://statamic.dev/modifiers/count.md): Count the number of items in an array. - [Count Substring](https://statamic.dev/modifiers/count_substring.md): Returns the number of occurrences of search term in a given string. By default, the comparison is case-insensitive, but can be made sensitive by setting the… - [Dashify](https://statamic.dev/modifiers/dashify.md): Returns a lowercase and trimmed string separated by dashes. Dashes are inserted before uppercase characters (with the exception of the first character of the… - [Days Ago](https://statamic.dev/modifiers/days_ago.md): Returns the number of days since a given date variable. Statamic will attempt to parse any string as a date, but try to keep it in the least ambiguous date… - [Decode](https://statamic.dev/modifiers/decode.md): Convert all HTML entities to their applicable characters via PHP's [html_entity_decode()][decode] function. Will convert both double and single quotes. This… - [Deslugify](https://statamic.dev/modifiers/deslugify.md): Replaces all hyphens and underscores in a string with spaces. The opposite of dashify. - [Divide](https://statamic.dev/modifiers/divide.md): Divide your variable by the value passed as the parameter. Pass a number or another variable. - [DL](https://statamic.dev/modifiers/dl.md): Turn a key/value array, otherwise known as a YAML mapping, into an HTML definition list. - [Doesn't Overlap](https://statamic.dev/modifiers/doesnt_overlap.md): The inverse of overlaps. Returns true when none of the needle values are found in the haystack array, otherwise false. - [Dump](https://statamic.dev/modifiers/dump.md): Dump a variable to the browser and see under the hood with data types and array exportation. Definitely just for debugging when in development. - [Embed Url](https://statamic.dev/modifiers/embed_url.md): Converts a Youtube or Vimeo link to their embed URLs. - [Ends With](https://statamic.dev/modifiers/ends_with.md): Returns true if the value ends with a given string. This comparison is case-insensitive. - [Ensure Left](https://statamic.dev/modifiers/ensure_left.md): Ensures that the string begins with a specified string. If it doesn't, it will now. - [Ensure Right](https://statamic.dev/modifiers/ensure_right.md): Ensures that the string ends with a specified string. If it doesn't, it will now. - [Entities](https://statamic.dev/modifiers/entities.md): Encode a string with HTML entities via PHP's [htmlentities()][entities] function. This is the opposite of the [decode][decode] modifier. - [Excerpt](https://statamic.dev/modifiers/excerpt.md): Generate an excerpt from your content. - [Explode](https://statamic.dev/modifiers/explode.md): Breaks a string into an array of strings split on a given delimiter. - [Favicon](https://statamic.dev/modifiers/favicon.md): Given a valid URL will generate a proper favicon meta tag. - [Filter Empty](https://statamic.dev/modifiers/filter_empty.md): Filters falsy values out of an array or collection, including null, false, 0, '0', empty strings, and empty arrays. Existing keys are preserved. - [First](https://statamic.dev/modifiers/first.md): Returns the first X characters of a string, where X is any positive integer, or the first item in an array. - [Flatten](https://statamic.dev/modifiers/flatten.md): Flattens a multi-dimensional array (a Grid or Replicator field for example) into a single dimension. - [Flip](https://statamic.dev/modifiers/flip.md): Swaps the keys with their corresponding values. The old switcharoo. - [Floor](https://statamic.dev/modifiers/floor.md): Rounds a number down to the next whole number. - [Format](https://statamic.dev/modifiers/format.md): Given a date string, or anything that sort of looks like a date string, format will convert it to a [Carbon][carbon] instance and allow you to format it with… - [Format Number](https://statamic.dev/modifiers/format_number.md): Format a number with grouped thousands and decimal points. In other words, make it look nice. - [Format Time](https://statamic.dev/modifiers/format_time.md): Given a time string, format_time will format it using PHP's [datetime format][datetime] variables. - [Format Translated](https://statamic.dev/modifiers/format_translated.md): Given a date string, or anything that sort of looks like a date string, format_translated will convert it to a [Carbon][carbon] instance and allow you to format… - [Full Urls](https://statamic.dev/modifiers/full_urls.md): Replaces root-relative URLs inside HTML attributes (e.g. href and src ) with absolute URLs. This is most often used in RSS feeds and other places where markup… - [Get](https://statamic.dev/modifiers/get.md): Gets a value from a relationship based on its ID. This is like a nicer-to-read single tag version of the Get_Content Tag. - [Gravatar](https://statamic.dev/modifiers/gravatar.md): Converts an email string to a Gravatar image URL. The size can be specified by a parameter. - [Group By](https://statamic.dev/modifiers/group_by.md): You may use this modifier to group items (a simple array, a collection of entries, etc) into groups based on some common value. - [Has Lower Case](https://statamic.dev/modifiers/has_lower_case.md): Returns true if the string contains a lowercase character, false otherwise. - [Has Upper Case](https://statamic.dev/modifiers/has_upper_case.md): Returns true if the string contains an uppercase character, false otherwise. - [Headline](https://statamic.dev/modifiers/headline.md): Format the given string, usually a headline or title, with the modifier's built-in AP or MLA capitalization rules. - [Hex To RGB](https://statamic.dev/modifiers/hex_to_rgb.md): Converts a color from hex to RGB, the perfect match for the color fieldtype. - [Hours Ago](https://statamic.dev/modifiers/hours_ago.md): Returns the number of hours since a given date variable. Statamic will attempt to parse any string as a date, but try to keep it in the least ambiguous date… - [Image](https://statamic.dev/modifiers/image.md): Generate an HTML image element with the variable's value as src. - [In Array](https://statamic.dev/modifiers/in_array.md): Check if an array contains a specific value. Returns true if a match is found. - [Insert](https://statamic.dev/modifiers/insert.md): Inserts a string at the position provided. The beginning of the string is position 0. - [Is After](https://statamic.dev/modifiers/is_after.md): Returns true if a date variable is after another date. That second date can be the name of another variable, a literal date string, or any relative date… - [Is Alpha](https://statamic.dev/modifiers/is_alpha.md): Returns true if string contains only alphabetic characters. Numbers, punctuation, whitespace, and other special characters will cause a false. - [Is Alphanumeric](https://statamic.dev/modifiers/is_alphanumeric.md): Returns true if string contains only alphanumeric characters. Punctuation, whitespace, and other special characters will cause a false. - [Is Array](https://statamic.dev/modifiers/is_array.md): Check if a value is an array. Returns a bool. - [Is Before](https://statamic.dev/modifiers/is_before.md): Returns true if a date variable is before another date. That second date can be the name of another variable, a literal date string, or any relative date format… - [Is Between](https://statamic.dev/modifiers/is_between.md): Returns true if a date variable is between two other dates. Those dates can be the name of other variables or literal date strings. - [Is Blank](https://statamic.dev/modifiers/is_blank.md): Returns true if the string contains only whitespace chars. - [Is Email](https://statamic.dev/modifiers/is_email.md): Returns true if a string is a valid email address. - [Is Embeddable](https://statamic.dev/modifiers/is_embeddable.md): Recognizes YouTube and Vimeo URLs as supported embed sources. This does not check whether the video exists or whether its owner permits embedding. - [Is Empty](https://statamic.dev/modifiers/is_empty.md): Checks an array recursively. It returns true for empty arrays and arrays containing only empty strings or other empty arrays. Values such as null, false, and… - [Is External Url](https://statamic.dev/modifiers/is_external_url.md): Returns true if a string is an external URL. - [Is Future](https://statamic.dev/modifiers/is_future.md): Returns true if date is in the future. - [Is Json](https://statamic.dev/modifiers/is_json.md): Returns true if string is valid json - [Is Leap Year](https://statamic.dev/modifiers/is_leap_year.md): Returns true if date is in a leap year. Try and find a regular use for this one, we dare you. - [Is Lowercase](https://statamic.dev/modifiers/is_lowercase.md): Returns true if string is only lowercase characters. - [Is Numberwang](https://statamic.dev/modifiers/is_numberwang.md): Is it or is it not numberwang? Returns true if it is indeed numberwang. - [Is Numeric](https://statamic.dev/modifiers/is_numeric.md): Returns true if variable is a number or numeric string. - [Is Past](https://statamic.dev/modifiers/is_past.md): Returns true if date is in the past. - [Is Today](https://statamic.dev/modifiers/is_today.md): Returns true if a given date is today, using the date value's timezone. - [Is Tomorrow](https://statamic.dev/modifiers/is_tomorrow.md): Returns true if a given date is tomorrow, using the date value's timezone. - [Is Uppercase](https://statamic.dev/modifiers/is_uppercase.md): Returns true if string is only uppercase characters. - [Is Url](https://statamic.dev/modifiers/is_url.md): Returns true if a string is a valid URL. - [Is Weekday](https://statamic.dev/modifiers/is_weekday.md): Returns true if date is a weekday. - [Is Weekend](https://statamic.dev/modifiers/is_weekend.md): Returns true if date is on the weekend. - [Is Yesterday](https://statamic.dev/modifiers/is_yesterday.md): Returns true if a given date is yesterday, using the date value's timezone. - [Iso Format](https://statamic.dev/modifiers/iso_format.md): Given a date string, or anything that even sorta kinda looks like a date string, will convert it to a [Carbon][carbon] instance and allow you to format it… - [Join](https://statamic.dev/modifiers/join.md): Turn an array into a string by gluing together all the data with any specified delimiter. It uses a comma by default. - [Kebab Case](https://statamic.dev/modifiers/kebab.md): Converts a string into kebab-case. - [Key By](https://statamic.dev/modifiers/key_by.md): Re-keys a numerically indexed array using the value of a given key on each item. Handy when you want to target specific items by name instead of looping, like… - [Keys](https://statamic.dev/modifiers/keys.md): Retrieves just the keys from the given array. - [Last](https://statamic.dev/modifiers/last.md): Returns the last X characters of a string, where X is any positive integer, or the last item in an array. - [Lcfirst](https://statamic.dev/modifiers/lcfirst.md): Converts the first character of the supplied string to lower case. - [Length](https://statamic.dev/modifiers/length.md): Returns the number of items in an array or characters in a string. - [Limit](https://statamic.dev/modifiers/limit.md): Limits the number of items returned in an array. - [Link](https://statamic.dev/modifiers/link.md): Generate an HTML link element with the value as href. - [List](https://statamic.dev/modifiers/list.md): Turn a simple array into a comma delimited list with no comma after the last item. - [Lower](https://statamic.dev/modifiers/lower.md): Converts all characters in the string to lowercase. - [Macro](https://statamic.dev/modifiers/macro.md): Macro is a very special modifier. It performs no modifications of its own, but rather lets you create reusable groups of modifiers and give them a name. Those… - [Mailto](https://statamic.dev/modifiers/mailto.md): Generate a mailto link element with the value as the email address. If it's not an email address, it's going to be one busted link. - [Mark](https://statamic.dev/modifiers/mark.md): Wrap any matched words in tags to highlight them on the page. - [Markdown](https://statamic.dev/modifiers/markdown.md): Transform a string with [Markdown][markdown]. - [Md5](https://statamic.dev/modifiers/md5.md): Creates an md5 hash of a variable. - [Merge](https://statamic.dev/modifiers/merge.md): Merge an array variable with another array variable. - [Minutes Ago](https://statamic.dev/modifiers/minutes_ago.md): Returns the number of minutes since a given date variable. Statamic will attempt to parse any string as a date, but try to keep it in the least ambiguous date… - [Mod](https://statamic.dev/modifiers/mod.md): Get the modulus value (remainder after division) of a value split by another numeric value. Pass an integer or the name of a second variable as the parameter.… - [Modify Date](https://statamic.dev/modifiers/modify_date.md): Alters a timestamp by incrementing or decrementing in a format accepted by PHP's native strtotime() method. - [Months Ago](https://statamic.dev/modifiers/months_ago.md): Returns the number of months since a given date variable. Statamic will attempt to parse any string as a date, but try to keep it in the least ambiguous date… - [Multiply](https://statamic.dev/modifiers/multiply.md): Multiply a value or another variable to your variable. Pass an integer or the name of a second variable as the parameter. Also supports * as shorthand. - [Nl2br](https://statamic.dev/modifiers/nl2br.md): Replaces line breaks with tags. - [Obfuscate](https://statamic.dev/modifiers/obfuscate.md): Replaces characters in a string with a mixture of HTML entities. The text appears unchanged in the browser. This is often used for email addresses, but bots… - [Obfuscate Email](https://statamic.dev/modifiers/obfuscate_email.md): Encodes an email address with HTML entities while keeping it readable in the browser. Bots that decode HTML can still read the address. - [Offset](https://statamic.dev/modifiers/offset.md): Offsets the items returned in an array. - [OL](https://statamic.dev/modifiers/ol.md): Turn an array into an HTML ordered list element. - [Option List](https://statamic.dev/modifiers/option_list.md): Turn an array into a pipe-delimited string. Useful when passing an array of things into a parameter. Generally unnecessary though as most parameters can now… - [Output](https://statamic.dev/modifiers/output.md): Given the URL to an Asset file, returns the string output of an Asset file's contents. This is primarily useful for rendering inline SVGs, but could also be… - [Overlaps](https://statamic.dev/modifiers/overlaps.md): Check if any values in an array are found in another array. Returns true if at least one value matches, otherwise false. - [Parse Url](https://statamic.dev/modifiers/parse_url.md): Get information about a URL. - [Partial](https://statamic.dev/modifiers/partial.md): Inject a variable's data into a partial and render it without any page scopes whatsoever. This is really just syntactical sugar, but it is delicious. - [Pathinfo](https://statamic.dev/modifiers/pathinfo.md): Get information about a file path. - [Piped](https://statamic.dev/modifiers/piped.md): Alias of option_list - [Pluck](https://statamic.dev/modifiers/pluck.md): Retrieves the values of a given key from each item. - [Plural](https://statamic.dev/modifiers/plural.md): Get the plural form of an English word. Accepts a numerical parameter, either as a literal value or a variable, to control plurality. It's important to note… - [Random](https://statamic.dev/modifiers/random.md): Picks a single random item from an array or collection. - [Raw](https://statamic.dev/modifiers/raw.md): Returns the unaugmented version of the variable. - [Raw URL Encode](https://statamic.dev/modifiers/rawurlencode.md): URL-encode a variable according to [RFC 3986][rfc-3986]. - [Raw URL Encode Except Slashes](https://statamic.dev/modifiers/rawurlencode_except_slashes.md): URL-encode a variable according to [RFC 3986][rfc-3986]. Just like rawurlencode, but doesn't encode forward slashes (/). - [Ray](https://statamic.dev/modifiers/ray.md): Send a variable to Spatie's Ray app. - [Read Time](https://statamic.dev/modifiers/read_time.md): Provide an estimate of the read time in minutes based on a given number of words per minute. Defaults to 200/wpm. - [Regex Mark](https://statamic.dev/modifiers/regex_mark.md): Wrap any regex matches in tags to highlight them on the page. - [Regex Replace](https://statamic.dev/modifiers/regex_replace.md): Run a find and replace regex on a string of content. - [Relative](https://statamic.dev/modifiers/relative.md): Returns a date difference in a nice, human readable, string format. This modifier will add a phrase after the difference value relative to the current date… - [Remove Left](https://statamic.dev/modifiers/remove_left.md): Ensures that the string never begins with a specified string. - [Remove Right](https://statamic.dev/modifiers/remove_right.md): Ensures that the string never ends with a specified string. - [Repeat](https://statamic.dev/modifiers/repeat.md): Repeats a value any given number of times. For fun. - [Replace](https://statamic.dev/modifiers/replace.md): Find and replace all occurrences of a string with a totally different string. - [Resolve](https://statamic.dev/modifiers/resolve.md): Resolves a query builder and returns either a specific item by key/index or the full array of results. Also works on arrays and collections. - [Reverse](https://statamic.dev/modifiers/reverse.md): Reverse the order of the characters in a string or the items in an array. - [Round](https://statamic.dev/modifiers/round.md): Rounds a number to a specified precision (number of digits after the decimal point). Defaults to 0, or whole numbers. - [Safe Truncate](https://statamic.dev/modifiers/safe_truncate.md): Truncates the string to a given length (parameter 1), while ensuring that it does not split words. You can append a string with parameter 2, and if truncating… - [Sanitize](https://statamic.dev/modifiers/sanitize.md): Convert special characters to HTML entities with [htmlspecialchars][htmlspecialchars]. - [Scope](https://statamic.dev/modifiers/scope.md): Adds a named scope prefix to each item in an array or collection, letting you access variables with that prefix to avoid collisions with the parent context. - [Seconds Ago](https://statamic.dev/modifiers/seconds_ago.md): Returns the number of seconds since a given date variable. Statamic will attempt to parse any string as a date, but try to keep it in the least ambiguous date… - [Segment](https://statamic.dev/modifiers/segment.md): Returns a segment by number from any valid URL or URI. - [Select](https://statamic.dev/modifiers/select.md): Retrieves the selected values of a given array. - [Sentence List](https://statamic.dev/modifiers/sentence_list.md): Turn a simple array into a friendly comma delimited list with the word "and" before the last item. - [Shuffle](https://statamic.dev/modifiers/shuffle.md): Shuffles a string or an array to make it all random. - [Singular](https://statamic.dev/modifiers/singular.md): Get the singular form of an English word. - [Slugify](https://statamic.dev/modifiers/slugify.md): Converts the string into an URL slug. This includes replacing non-ASCII characters with their closest ASCII equivalents, removing remaining non-ASCII and… - [Smartypants](https://statamic.dev/modifiers/smartypants.md): Translate plain ASCII punctuation characters into “smart” typographic punctuation HTML entities. It performs the following transformations - [Snake Case](https://statamic.dev/modifiers/snake.md): Converts a string into snake_case. - [Sort](https://statamic.dev/modifiers/sort.md): Sort an array by key as parameter 1 and direction (asc/desc) as parameter 2. If sorting a primitive list no parameters are necessary. - [Spaceless](https://statamic.dev/modifiers/spaceless.md): Removes excess whitespace and line breaks from a string. A definite OCD pleaser. - [Split](https://statamic.dev/modifiers/split.md): Break an array or collection into a given number of (roughly equal) groups. - [Starts With](https://statamic.dev/modifiers/starts_with.md): Returns true if the value starts with a given string. This comparison is case-insensitive. - [String Pad Left](https://statamic.dev/modifiers/str_pad_left.md): This modifier returns the string padded on the left to the specified padding length (parameter 1) with a character of choice (parameter 2). - [Strip Tags](https://statamic.dev/modifiers/strip_tags.md): Strip HTML tags from a string, allowing you optionally to pass in a list of tags or a variable name containing the specific tags you want stripped. - [Studly Case](https://statamic.dev/modifiers/studly.md): Converts a string into StudlyCase. - [Substr](https://statamic.dev/modifiers/substr.md): Returns the string beginning at a given position with an optional length. If no length is specified, it returns the rest of the string. - [Subtract](https://statamic.dev/modifiers/subtract.md): Subtract a value or another variable from your variable. Pass an integer or the name of a second variable as the parameter. Also supports - as shorthand. - [Sum](https://statamic.dev/modifiers/sum.md): Returns the sum of all items in an array, optionally specified by a specific key. - [Surround](https://statamic.dev/modifiers/surround.md): Surrounds a string with another string. - [Swap Case](https://statamic.dev/modifiers/swap_case.md): Returns a case swapped version of the string. - [Table](https://statamic.dev/modifiers/table.md): Takes an array generated by the Table Fieldtype, and converts into a basic HTML . - [Tidy](https://statamic.dev/modifiers/tidy.md): Returns a string with smart quotes, ellipsis characters, and dashes from Windows-1252 (commonly used in Word documents) replaced by their ASCII equivalents. - [Timezone](https://statamic.dev/modifiers/timezone.md): Applies a timezone to a date value. Aliased as tz. - [Title](https://statamic.dev/modifiers/title.md): Returns a trimmed string with the first letter of each word capitalized, ignoring articles, coordinating conjunctions, and short prepositions: a, an, the, at,… - [To Json](https://statamic.dev/modifiers/to_json.md): Converts any variable into JSON. - [To qs](https://statamic.dev/modifiers/to_qs.md): Converts an array or array-like value into a query string using Laravel's Arr::query() helper method. - [To Spaces](https://statamic.dev/modifiers/to_spaces.md): Converts all tabs in a string to a given number of spaces, 4 by default. This is a boring modifier to output examples of. Here's just a few examples on how… - [To Tabs](https://statamic.dev/modifiers/to_tabs.md): Converts all instances of a specified number of spaces in a string to tabs. 4 by default. This is a boring modifier to output examples of. Here's just a few… - [Trans](https://statamic.dev/modifiers/trans.md): Retrieve a string from a language file in the current locale. It is the equivalent of the trans and trans_choice methods provided by Laravel. - [Trim](https://statamic.dev/modifiers/trim.md): Returns a string with whitespace removed from the start and end of the string. Supports the removal of unicode whitespace. - [Truncate](https://statamic.dev/modifiers/truncate.md): Truncates the string to a given length (parameter 1). You can append a string with parameter 2, and if truncating occurs the string is further truncated so that… - [Ucfirst](https://statamic.dev/modifiers/ucfirst.md): Converts the first character of a string to upper case. - [UL](https://statamic.dev/modifiers/ul.md): Turn an array into an HTML unordered list element. - [Underscored](https://statamic.dev/modifiers/underscored.md): Returns a lowercase and trimmed string separated by underscores. Underscores are inserted before uppercase characters (with the exception of the first character… - [Unique](https://statamic.dev/modifiers/unique.md): Returns all of the unique items in the array - [Upper](https://statamic.dev/modifiers/upper.md): Transform a string into uppercase. Multi-byte friendly. - [Url](https://statamic.dev/modifiers/url.md): Get the URL of an Asset, Page, Entry, or Taxonomy term from an ID. - [URL Decode](https://statamic.dev/modifiers/urldecode.md): URL-decodes a string. The inverse of urlencode - [URL Encode](https://statamic.dev/modifiers/urlencode.md): URL-encodes a string. The inverse of urldecode. - [URL Encode Except Slashes](https://statamic.dev/modifiers/urlencode_except_slashes.md): URL-encodes a string. Just like urlencode, but doesn't encode forward slashes (/). - [Values](https://statamic.dev/modifiers/values.md): Retrieves just the values from the given array. - [Weeks Ago](https://statamic.dev/modifiers/weeks_ago.md): Returns the number of weeks since a given date variable. Statamic will attempt to parse any string as a date, but try to keep it in the least ambiguous date… - [Where](https://statamic.dev/modifiers/where.md): Filter an array (such as a Replicator field's data) to items where a key has a specific value. - [Where In](https://statamic.dev/modifiers/where-in.md): Filter an array (such as a Replicator field's data) to items where a key matches specific values. - [Widont](https://statamic.dev/modifiers/widont.md): Attempts to prevent widows (a line with a single word) in a string by adding non-breaking spaces between the last two words of each paragraph. - [Word Count](https://statamic.dev/modifiers/word_count.md): Returns the number of words in a given string. - [Wrap](https://statamic.dev/modifiers/wrap.md): Wraps a string with a given HTML tag. Empty or falsy values are returned unchanged, so they do not produce an empty wrapper. - [Years Ago](https://statamic.dev/modifiers/years_ago.md): Returns the number of years since a given date variable. Statamic will attempt to parse any string as a date, but try to keep it in the least ambiguous date… ## Fieldtypes Reference - [Array](https://statamic.dev/fieldtypes/array.md): Manage data in a key:value array format. - [Assets](https://statamic.dev/fieldtypes/assets.md): Any time you want to list, display, or work with assets (external files with enhanced abilities), this is the way to do it. Upload, browse, reorder, delete, and… - [Bard](https://statamic.dev/fieldtypes/bard.md): Bard is more than just a content editor, and more flexible than a block-based editor. It is designed to provide a delightful and powerful writing experience… - [Button Group](https://statamic.dev/fieldtypes/button_group.md): Buttons. Create some options and let your users select one and only one. May they choose wisely. - [Checkboxes](https://statamic.dev/fieldtypes/checkboxes.md): Checkboxes! Make some checkboxes, click the checkboxes, and store a record of which boxes of which ones you clicked. They're boxes you check. - [Code](https://statamic.dev/fieldtypes/code.md): What are you doing writing code in a browser?! Just kidding, it's fine. We made it easy, flexible, and pretty too. We use this fieldtype a lot. - [Collections](https://statamic.dev/fieldtypes/collections.md): Choose from one or more collections. - [Color](https://statamic.dev/fieldtypes/color.md): A simple color picker with support for pre-defined swatches as well as entering a color by hex code. - [Date](https://statamic.dev/fieldtypes/date.md): Work with dates, times, and ranges with a variety of user interface options that make you really enjoy basically just picking numbers from a table. - [Dictionary](https://statamic.dev/fieldtypes/dictionary.md): Give your users a list of options to choose from. Similar to the Select field, but allows you to read options from YAML or JSON files, or even hit external… - [Entries](https://statamic.dev/fieldtypes/entries.md): Create relationships with other entries in one or more collections. It's not very much like online dating because you can create and link the entries on the fly… - [Float](https://statamic.dev/fieldtypes/float.md): The float fieldtype is a text-style input that only accepts floats (numbers) and has increment and decrement controls. - [Form](https://statamic.dev/fieldtypes/form.md): Pick a form, any form. - [Grid](https://statamic.dev/fieldtypes/grid.md): Manage columns of dynamic rows of data that can contain any other fieldtypes. - [Group](https://statamic.dev/fieldtypes/group.md): Group fields visually and scoped their own key in the data. - [Hidden](https://statamic.dev/fieldtypes/hidden.md): Set default data when creating new entries. - [HTML](https://statamic.dev/fieldtypes/html.md): If you've ever wanted to add a little HTML to your blueprint, this is the way to do it. Longer instructions, images, embedded help videos — if you can write it,… - [Icon](https://statamic.dev/fieldtypes/icon.md): Give your users a list of icons to choose from. This field supports search and keyboard commands, and can be configured to use your own icons or ones managed by… - [Info](https://statamic.dev/fieldtypes/info.md): The Info fieldtype displays a styled message in your Control Panel publish forms. Use it to give authors a helpful tip, highlight important instructions, or… - [Integer](https://statamic.dev/fieldtypes/integer.md): The integer fieldtype is a text-style input that only accepts integers (numbers) and has increment and decrement controls. - [Link](https://statamic.dev/fieldtypes/link.md): A select box gives you the option to choose what type of link you'd like to create. When set to URL it gives you a text box to enter the hyperlink. When set… - [List](https://statamic.dev/fieldtypes/list.md): Create YAML lists with a robust user interface. It has full keyboard controls so you can use up to go up, down to go down, drag and drop to rearrange the order,… - [Markdown](https://statamic.dev/fieldtypes/markdown.md): Write Markdown with the help of formatting buttons, assets integration, fullscreen mode, a Markdown cheatsheet, and HTML preview mode. What more do you need? - [Navs](https://statamic.dev/fieldtypes/navs.md): Choose from one or more navigations. - [Radio](https://statamic.dev/fieldtypes/radio.md): Radio buttons. The "you can only have one" variation of checkboxes. Create some options and let your users select one and only one. May they choose wisely. - [Range](https://statamic.dev/fieldtypes/range.md): Range fields let the user choose a numeric value which must be no less than a given value, and no more than another. Supports both integer and decimal values. - [Replicator](https://statamic.dev/fieldtypes/replicator.md): Build your content by creating sets of fields you can mix and match on the fly. - [Revealer](https://statamic.dev/fieldtypes/revealer.md): The revealer is a simple button that reveals conditional fields without saving boolean button data. - [Select](https://statamic.dev/fieldtypes/select.md): Give your users a list of options to choose from. This select field is highly configurable with support for search, multiple choice, and creating new options on… - [Sites](https://statamic.dev/fieldtypes/sites.md): Allows you to select one or more sites when running a multi site. - [Slug](https://statamic.dev/fieldtypes/slug.md): A text input that automatically "slugifies" the value of another field. - [Spacer](https://statamic.dev/fieldtypes/spacer.md): An invisible field to help you structure your blueprints and forms. - [Structures](https://statamic.dev/fieldtypes/structures.md): For when you need to create a relationship to one or more Structures. This could be useful to pick which version of a sidebar or footer to include on a page, or… - [Table](https://statamic.dev/fieldtypes/table.md): Creating tables can be a nuisance in a WYSIWYG editor. This fieldtype gives you a way to create flexible tabular data. - [Tags](https://statamic.dev/fieldtypes/taggable.md): Enter a list of items with a tag-style interface. - [Taxonomies](https://statamic.dev/fieldtypes/taxonomies.md): Choose from one or more taxonomies. - [Template](https://statamic.dev/fieldtypes/template.md): Used for choosing an entry’s template. Be sure to name the field template if you want it to be able to change the template (it's a special variable name). - [Terms](https://statamic.dev/fieldtypes/terms.md): Allows you attach Taxonomy Terms to your content. They could be Tags, Categories, Colors, Flavors, you name it. We highly recommend learning more about… - [Text](https://statamic.dev/fieldtypes/text.md): A simple text input field for managing short, unformatted text. - [Textarea](https://statamic.dev/fieldtypes/textarea.md): A simple textarea field for managing longer, unformatted text. - [Time](https://statamic.dev/fieldtypes/time.md): The original time field from the set of Kiefer Sutherland's hit drama "24". It's a simple timepicker that operates in 24-hour mode and supports keyboard up… - [Toggle](https://statamic.dev/fieldtypes/toggle.md): A nice little toggle switch generally used to manage settings-type variables. It stores true or false and is delightfully uncomplicated, just like our… - [User Groups](https://statamic.dev/fieldtypes/user-groups.md): Create a relationship with a User Group - [User Roles](https://statamic.dev/fieldtypes/user-roles.md): Create a relationship with a User Role - [Users](https://statamic.dev/fieldtypes/users.md): Attach users to your content to show authorship, list team members, assign the winners of a foot race, or even winners of an elbow race. - [Video](https://statamic.dev/fieldtypes/video.md): Extract embed URLs from Youtube, Vimeo, and HTML5 compatible video links and preview them right inline. Feel free watch the whole thing instead of working –… - [Width](https://statamic.dev/fieldtypes/width.md): A slick way to select a width in your blueprints. Although you could use it for anything you want as it stores the value in your markdown as an integer. Neat! - [YAML](https://statamic.dev/fieldtypes/yaml.md): A YAML editor that directly manages YAML. ## Variables Reference - [Basename](https://statamic.dev/variables/basename.md): The basename of the asset, which is the filename with the extension. - [Collection](https://statamic.dev/variables/collection.md): Get the name of the collection the entry belongs to. - [Config](https://statamic.dev/variables/config.md): Access configuration values from Statamic and Laravel config files. - [CSRF Field](https://statamic.dev/variables/csrf_field.md): Outputs the CSRF token inside a hidden field named _token from the session. - [CSRF Token](https://statamic.dev/variables/csrf_token.md): Output the CSRF token from the session. - [Current Layout](https://statamic.dev/variables/current_layout.md): The name of the layout currently in use. - [Current Template](https://statamic.dev/variables/current_template.md): The name of the template currently in use. - [Current Uri](https://statamic.dev/variables/current_uri.md): The current URI (URL without domain). - [Current Url](https://statamic.dev/variables/current_url.md): The current URL. - [Current User](https://statamic.dev/variables/current_user.md): The current user. - [Date](https://statamic.dev/variables/date.md): Get the date of the entry as a Carbon instance, formatted according to system settings. - [Datestamp](https://statamic.dev/variables/datestamp.md): Get the timestamp of the entry as an integer. Alias of timestamp. - [Datestring](https://statamic.dev/variables/datestring.md): Get the pre-formatted date of the entry as a string. - [Edit Url](https://statamic.dev/variables/edit_url.md): Get the URL to edit the current page or entry in the Control Panel. - [Entries Count](https://statamic.dev/variables/entries_count.md): Get the number of entries that use this taxonomy term. - [Environment](https://statamic.dev/variables/environment.md): Outputs the current environment (the value of APP_ENV in your .env file). - [Extension](https://statamic.dev/variables/extension.md): The file extension of the asset. - [Filename](https://statamic.dev/variables/filename.md): The filename of the asset, without the extension. - [Focus](https://statamic.dev/variables/focus.md): The focal point of the asset, defaulting to center (50-50). - [Focus Css](https://statamic.dev/variables/focus_css.md): The focal point of the asset in a format suitable for the background-position CSS property. - [Get](https://statamic.dev/variables/get.md): An array of GET variables from query strings in the current URL. - [Get Post](https://statamic.dev/variables/get_post.md): Combines both get and post variables, with POST data taking precedence. - [Has Timestamp](https://statamic.dev/variables/has_timestamp.md): A boolean indicating whether an entry is time-based. - [Height](https://statamic.dev/variables/height.md): The height of an image asset, in pixels. - [Homepage](https://statamic.dev/variables/homepage.md): The URL of the homepage. Usually the same as site:url. - [Id](https://statamic.dev/variables/id.md): The unique identifier of the content. - [Is Asset](https://statamic.dev/variables/is_asset.md): A boolean indicating whether the current content is an asset. - [Is Entry](https://statamic.dev/variables/is_entry.md): A boolean indicating whether the current content is an entry. - [Is Homepage](https://statamic.dev/variables/is_homepage.md): A boolean indicating whether you're on the homepage. - [Is Image](https://statamic.dev/variables/is_image.md): A boolean indicating whether the asset is an image. - [Is Term](https://statamic.dev/variables/is_term.md): A boolean indicating whether the current content is a term. - [Is Video](https://statamic.dev/variables/is_video.md): A boolean indicating whether the asset is a video. - [Last Modified](https://statamic.dev/variables/last_modified.md): The last modified time for the content file or asset. - [Last Segment](https://statamic.dev/variables/last_segment.md): Get the last segment of the current URL. - [Live Preview](https://statamic.dev/variables/live_preview.md): A boolean indicating whether the current page is being viewed in Live Preview. - [Logged In](https://statamic.dev/variables/logged_in.md): A boolean indicating whether the visitor is logged in. - [Now](https://statamic.dev/variables/now.md): The current date/time, formatted according to your display timezone and default time format. - [Old](https://statamic.dev/variables/old.md): An array of sanitized variables POSTed from the previous request, useful for form validation errors. - [Order](https://statamic.dev/variables/order.md): Get the order key of the content (the value at the beginning of the filename). - [Order Type](https://statamic.dev/variables/order_type.md): Get the order type of an entry (date, alphabetical, or number). - [Path](https://statamic.dev/variables/path.md): The path to the file, relative to the asset container. - [Permalink](https://statamic.dev/variables/permalink.md): Get the absolute URL to the content, including your site URL. - [Post](https://statamic.dev/variables/post.md): An array of sanitized POST variables from form data submitted to the current URL. - [Published](https://statamic.dev/variables/published.md): A boolean indicating whether the content is published (not a draft). - [Response Code](https://statamic.dev/variables/response_code.md): The HTTP response code of the request (200 for existing URLs, 404 for non-existent ones). - [Segment X](https://statamic.dev/variables/segment_x.md): Get a specific URL segment by number (e.g., segment_3 returns the third segment). - [Site](https://statamic.dev/variables/site.md): The current site being targeted in the request, available as a single tag or tag pair. - [Sites](https://statamic.dev/variables/sites.md): A collection containing all configured sites as Site objects that can be looped over. - [Size](https://statamic.dev/variables/size.md): The file size of the asset in a human-readable format. - [Size Bytes](https://statamic.dev/variables/size_bytes.md): The file size of the asset in bytes. Also available as size_b. - [Size Gigabytes](https://statamic.dev/variables/size_gigabytes.md): The file size of the asset in gigabytes. Also available as size_gb. - [Size Kilobytes](https://statamic.dev/variables/size_kilobytes.md): The file size of the asset in kilobytes. Also available as size_kb. - [Size Megabytes](https://statamic.dev/variables/size_megabytes.md): The file size of the asset in megabytes. Also available as size_mb. - [Slug](https://statamic.dev/variables/slug.md): The string that identifies your content, usually appearing at the end of the URL. - [Taxonomy](https://statamic.dev/variables/taxonomy.md): Get the name of the taxonomy the term belongs to. - [Timestamp](https://statamic.dev/variables/timestamp.md): Get the timestamp of the entry as an integer. Alias of datestamp. - [Url](https://statamic.dev/variables/url.md): Get the relative URL to the content (does not include the site URL). - [Width](https://statamic.dev/variables/width.md): The width of an image asset, in pixels. - [Xml Header](https://statamic.dev/variables/xml_header.md): Outputs an XML header tag, useful when Statamic's template parser encodes PHP tags. ## Widgets Reference - [Collection Widget](https://statamic.dev/widgets/collection.md): Display a list of entries from a collection. - [Form Widget](https://statamic.dev/widgets/form.md): Display a list of the most recent form submissions. - [Updater Widget](https://statamic.dev/widgets/updater.md): Shows if there are any Statamic core or addon updates available. ## Tips & Tricks Reference - [Building your own Entries Repository](https://statamic.dev/knowledge-base/tips/building-your-own-entries-repository.md): Statamic's data layer is driver-driven. Build a custom Eloquent repository when flat files are not enough. - [Configuring update scripts on older installations](https://statamic.dev/knowledge-base/tips/configuring-update-scripts.md): Update scripts were introduced for Statamic 3.1. Learn about update scripts and how to configure them on older Statamic installations. - [Content Security Policy](https://statamic.dev/knowledge-base/tips/content-security-policy.md): Lock down scripts, styles, and frames with a Content Security Policy — plus what Statamic needs whitelisted. - [Converting from Single to Multi-Site](https://statamic.dev/knowledge-base/tips/converting-from-single-to-multi-site.md): Convert a single-site Statamic project to multi-site with php please multisite, or walk through the manual conversion steps. - [Creating Users by Hand](https://statamic.dev/knowledge-base/tips/creating-users-by-hand.md): Create CP users by adding YAML files to the users directory — Statamic encrypts the password on first load. - [Disabling Control Panel Authentication](https://statamic.dev/knowledge-base/tips/disabling-cp-authentication.md): Disable the CP login, forgot-password, and registration pages when you are rolling your own authentication. - [Enforce trailing slashes in URLs](https://statamic.dev/knowledge-base/tips/trailing-slashes.md): Keep trailing slashes on URLs for SEO when migrating from another CMS — one helper call in AppServiceProvider. - [Excluding the Control Panel from Maintenance Mode](https://statamic.dev/knowledge-base/tips/excluding-the-control-panel-from-maintenance-mode.md): Keep the Control Panel reachable while Laravel maintenance mode is on — add CP routes to the allow list. - [GDPR Considerations](https://statamic.dev/knowledge-base/tips/gdpr-considerations.md): Not legal advice, but practical GDPR considerations for forms, user accounts, analytics, and consent in Statamic. - [Git Workflow](https://statamic.dev/knowledge-base/tips/git-workflow.md): A good workflow revolving around git to manage your deployments is a key factor in a pain-free and efficient project. - [How to change your timezone to UTC](https://statamic.dev/knowledge-base/tips/change-timezone-to-utc.md): Statamic 6 improves timezone handling. Switch your app timezone back to UTC and let Statamic handle display conversion. - [How to Enable Statamic Pro](https://statamic.dev/knowledge-base/tips/how-to-enable-statamic-pro.md): A fresh Statamic install starts in Solo edition mode. Here's how to enable Pro mode and unlock every feature Statamic has. - [Importing Existing Content](https://statamic.dev/knowledge-base/tips/importing-content.md): Import content from another CMS into Statamic — built-in tools, converters, and manual approaches for every situation. - [List of Reserved Words](https://statamic.dev/knowledge-base/tips/reserved-words.md): Reserved field handles and variable names that collide with Statamic tags — avoid these in your blueprints. - [Load templates dynamically based on the URL](https://statamic.dev/knowledge-base/tips/load-templates-dynamically-based-on-the-url.md): Map URLs to view files with two route rules — prototype frontend layouts without setting up collections first. - [Localizing Entries](https://statamic.dev/knowledge-base/tips/localizing-entries.md): Entries, blueprints, and folder structure when localizing content across multiple Statamic sites. - [Localizing Globals](https://statamic.dev/knowledge-base/tips/localizing-globals.md): Configure which sites use a global set, and which fields are localizable vs. shared across locales. - [Localizing Navigation](https://statamic.dev/knowledge-base/tips/localizing-navigation.md): How navigation trees are organized per site in a multi-site setup — folders, YAML, and tree files. - [Manually Resetting a User Password](https://statamic.dev/knowledge-base/tips/manually-resetting-a-user-password.md): Stuck in a login loop? Reset a password by editing the user YAML file — Statamic hashes it automatically. - [Optimizing Assets](https://statamic.dev/knowledge-base/tips/optimizing-assets.md): Slow asset browser on S3 or Spaces? Stop the Stache watcher from scanning every request, persist asset caches separately, and move metadata to the database when… - [Overriding Exception Rendering](https://statamic.dev/knowledge-base/tips/overriding-exception-rendering.md): Statamic 404, 403, and 401 exceptions bypass Laravel's renderer. Use renderUsing() to customize how they are displayed. - [Pushing related entries to an Algolia index](https://statamic.dev/knowledge-base/tips/pushing-related-entries-to-an-algolia-index.md): Transform entry data before indexing to Algolia, including pushing related entries alongside each record in the index. - [Recursive Nav Examples](https://statamic.dev/knowledge-base/tips/recursive-nav-examples.md): Recursive nav examples for trees, footers, and sidebars — for when the nav tag makes your brain hurt a little. - [Setting Default Columns on Listing Tables](https://statamic.dev/knowledge-base/tips/setting-default-listing-columns.md): Set default columns and sort order on CP listing tables by editing preference YAML — no UI required. - [Storing Content in a Database](https://statamic.dev/knowledge-base/tips/storing-content-in-a-database.md): Outgrown flat-file content? Move entries, collections, and assets into a database with Statamic's Eloquent driver. - [Storing Laravel Users in Files](https://statamic.dev/knowledge-base/tips/storing-laravel-users-in-files.md): Store Laravel app users as Statamic YAML files when your project needs both frameworks sharing the same user format. - [Storing Users in a Database](https://statamic.dev/knowledge-base/tips/storing-users-in-a-database.md): Move users from flat files to a database when your user count grows and filesystem storage stops scaling. - [Storing Users Somewhere Custom](https://statamic.dev/knowledge-base/tips/storing-users-somewhere-custom.md): Build a custom user repository when file or Eloquent storage does not fit how your users need to work. - [Timezones](https://statamic.dev/knowledge-base/tips/timezones.md): UTC storage, display timezones, and the config that ties them together — every developer's least favorite topic. - [Using an Independent Authentication Guard](https://statamic.dev/knowledge-base/tips/using-an-independent-authentication-guard.md): Separate Laravel app users from Statamic CP users with independent guards and providers in config/auth.php. - [Using Composer Patches](https://statamic.dev/knowledge-base/tips/using-composer-patches.md): When a bug fix exists in a pull request but hasn't been released yet, Composer patches let you apply it today instead of waiting. - [Using Digital Ocean Spaces for an Asset Container](https://statamic.dev/knowledge-base/tips/digital-ocean-spaces-for-asset-container.md): Point an asset container at DigitalOcean Spaces using the S3 driver — install the adapter, add credentials, and you are set. - [Using Statamic Alongside Laravel Nightwatch](https://statamic.dev/knowledge-base/tips/using-statamic-with-laravel-nightwatch.md): Nightwatch on Statamic burns through your event quota fast. Filter noisy events and keep monitoring costs under control. - [Using Statamic Alongside Laravel Nova](https://statamic.dev/knowledge-base/tips/laravel-nova.md): Nova is an admin panel designed to manage your Eloquent models and other things. It can work hand in hand with Statamic. - [Working with Taxonomies by Hand](https://statamic.dev/knowledge-base/tips/taxonomies-by-hand.md): Create and manage taxonomies and terms by hand in YAML when the Control Panel is not your vibe. - [Zero Downtime Deployments](https://statamic.dev/knowledge-base/tips/zero-downtime-deployments.md): How zero-downtime deploy tools structure releases, and how to set up Statamic so the Stache cache and Git Automation work correctly with them. ## Troubleshooting Reference - ["419 Page Expired" error when logging into the Control Panel](https://statamic.dev/knowledge-base/troubleshooting/control-panel-page-expired.md): There are a few common reasons why you might encounter a "419 Page Expired" error when attempting to login to the Control Panel. - [Assets are Missing URLs](https://statamic.dev/knowledge-base/troubleshooting/assets-missing-urls.md): Trying to output an asset's details and url is just blank? - [CLI Command Not Found: Statamic](https://statamic.dev/knowledge-base/troubleshooting/command-not-found-statamic.md): In order for you to run globally installed Composer binaries, (like our statamic installer) you'll need to tell your computer where it's located. - [Composer & GitHub Authentication](https://statamic.dev/knowledge-base/troubleshooting/composer-and-github-authentication.md): If you receive a Composer error similar to Could not authenticate against github.com, this usually means you are hitting API rate limits. - [Email not sending](https://statamic.dev/knowledge-base/troubleshooting/email-not-sending.md): Email can be difficult to debug when it seems like you've set everything up correctly. - [Fixing issues with Global Composer packages](https://statamic.dev/knowledge-base/troubleshooting/fixing-issues-with-global-composer-packages.md): When Composer works, it's a fantastic and powerful tool. But what happens when it...doesn't? Here's how to fix one of the most common issues with global… - [How to Fix Slow Control Panel Entry Listings](https://statamic.dev/knowledge-base/troubleshooting/listing-performance.md): Entry listings in the control panel are feeling a bit sluggish? We have ways of speeding that right up. - [Missing Control Panel Assets (Vite manifest not found)](https://statamic.dev/knowledge-base/troubleshooting/missing-control-panel-assets.md): You've just installed Statamic and are ready to jump into the Control Panel. You head to /cp and are met with a Vite manifest not found error. - [Required PHP Extensions for Assets](https://statamic.dev/knowledge-base/troubleshooting/required-php-extensions.md): Is your Control Panel subtly broken? Check to see if you have these PHP extensions enabled. - [Troubleshooting Asset Permissions](https://statamic.dev/knowledge-base/troubleshooting/asset-permissions.md): You've uploaded files to a service like Amazon S3 or Digital Ocean Spaces, but your files are private. ## Resource APIs Reference - [Asset Container Repository](https://statamic.dev/backend-apis/resource-apis/asset-container-repository.md): To work with the AssetContainer Repository, use the following Facade - [Asset Repository](https://statamic.dev/backend-apis/resource-apis/asset-repository.md): To work with the Asset Repository, use the following Facade - [Collection Repository](https://statamic.dev/backend-apis/resource-apis/collection-repository.md): To work with the with Collection Repository, use the following Facade - [Entry Repository](https://statamic.dev/backend-apis/resource-apis/entry-repository.md): To work with the Entry Repository, use the following Facade - [Form Repository](https://statamic.dev/backend-apis/resource-apis/form-repository.md): To work with the Form Repository, use the following Facade - [Form Submission Repository](https://statamic.dev/backend-apis/resource-apis/form-submission-repository.md): To work with the Form Submissions Repository, use the following Facade - [Global Repository](https://statamic.dev/backend-apis/resource-apis/global-repository.md): To work with the GlobalSet Repository, use the following Facade - [Site Repository](https://statamic.dev/backend-apis/resource-apis/site-repository.md): To work with the with Site Repository, use the following Facade - [Taxonomy Repository](https://statamic.dev/backend-apis/resource-apis/taxonomy-repository.md): To work with the with Taxonomy Repository, use the following Facade - [Taxonomy Term Repository](https://statamic.dev/backend-apis/resource-apis/term-repository.md): To work with the Repository Term queries, use the following Facade - [User Group Repository](https://statamic.dev/backend-apis/resource-apis/user-group-repository.md): To work with the with UserGroup Repository, use the following Facade - [User Repository](https://statamic.dev/backend-apis/resource-apis/user-repository.md): To work with the User Repository, use the following Facade - [User Role Repository](https://statamic.dev/backend-apis/resource-apis/user-role-repository.md): To work with the with Role Repository, use the following Facade