A Statamic-based corporate website starter kit, including home, services, testimonials, portfolio and case pages, blog, and project request form
the-agency-starter-kit — Laravel Business Template
By Stillat
The Agency is a free Statamic starter kit released by Stillat, using a corporate website as an example to demonstrate custom tags, front-end forms, control panel extensions, and sitemaps.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Preview provided in the project README.
One original preview is available. Open the full image to inspect the design.
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Uses stillat/antlers-layout to switch layouts and share data within Antlers templates
Uniformly injects SEO meta fields into collection entries via app/Fields and app/Listeners
Demonstrates creating collection entries from the front end: custom routes, HTTP middleware, and PHP save logic
Control panel integration: new menu items and a kanban-style project request status page
Includes a custom sitemap generator and random non-repeating color tags on the 404 page
Template Details
The Agency is a free Statamic starter kit released by Stillat, positioned as a corporate website example to demonstrate how to achieve a highly customized Statamic experience through various technical means. It can serve directly as a starting point for new projects, with built-in page structures such as home, services, testimonials, project portfolio and case pages, blog (The Buzz), and a project request form.
At the implementation level, the kit includes custom tags, modifiers, classes, JavaScript files, additional resources, and routes. It uses the stillat/antlers-layout package to switch layout files and share data within Antlers templates; through app/Fields and app/Listeners, it uniformly adds SEO meta fields to entries in each collection; on the contact page, it demonstrates an approach that does not rely on the Forms feature but instead uses custom routes, HTTP middleware, and PHP code to create collections and save entries from the front end. For the control panel, it adds menu items and custom pages, providing a kanban-style view for updating project request status. It also includes a custom sitemap generator, random non-repeating color tags on the 404 page, and a custom page title tag.
The collections provided by the kit include Blog, Pages, Portfolio, Project Requests, Services, and Testimonials. Most blueprints automatically inherit two SEO meta fields: keywords and description; the home page uses a Replicator field to implement page-builder-style block rendering. The global collection site_settings is used to configure the site name, footer about text, contact information, and social media links.
Usage restrictions: The code is under the MIT license, allowing free use, modification, commercial use, and distribution, but redistribution as a starter kit is prohibited; third-party assets such as demo images, fonts, and icons must be checked against their respective licenses and cannot be judged solely by the code license; external services such as domain, hosting, and database may incur additional charges.
Is it right for your project?
Use Cases
- Building a corporate website or agency site with Statamic, needing ready-made page structures and content collections
- Learning to write custom tags, modifiers, and Antlers layout switching in Statamic
- Referencing how to create and save collection entries from the front end without using the Forms feature
- Extending the Statamic control panel by adding custom menu items and Vue component pages
- Implementing custom sitemap generation and global SEO meta fields for a Statamic site
Suitable For
- Developers familiar with Laravel and Statamic who want to quickly start a corporate website
- Developers who need to study deep customization implementation approaches in Statamic
- Teams that accept using the code under the MIT license and will independently verify third-party asset licenses
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Install via the command line: php please starter-kit:install stillat/the-agency-starter-kit
- 2
After installation, run npm install and npm run dev to install and compile front-end assets
- 3
The code is released under the MIT license, allowing free use, modification, commercial use, and distribution, but redistribution as a starter kit is prohibited
- 4
Third-party assets such as demo images, fonts, and icons must be checked separately under their respective licenses
- 5
External services such as domain, hosting, and database may incur additional charges
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean external services or third-party assets are free.
Must comply with when using
- Allows free use, modification, commercial use, and distribution of this version's code.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- The MIT license allows use, modification, commercial use, and distribution of the code, but explicitly prohibits redistributing this project as a Starter Kit.
- The project includes third-party graphics and image assets from unDraw, Feather, Streamline, Unsplash, Lorem Faces, etc. The licenses for these assets must be checked separately and are not granted along with the MIT code license.
- After installation, front-end assets must be installed and compiled via npm; the build process depends on a Node.js and npm environment.
- Demo images, fonts, icons, and other third-party assets must be checked under their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domain, hosting, database, payment, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Redistribution as a Starter Kit is prohibited.
Original README
This Starter Kit makes use of a number of custom graphics, as well as those from the following sources:
Original README
https://github.com/Stillat/the-agency-starter-kit/blob/main/license.mdhttps://github.com/Stillat/the-agency-starter-kit/blob/main/README.mdnpm install npm run dev
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-02. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- Partly documented · 65 / 100
- Technologies
- Laravel
- Website type
- Corporate Website · Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2023-12-10
- Screenshot last checked
- 2026-10-02
No demo link is recorded. Use the repository instructions to evaluate the project locally; the screenshot alone cannot establish interactive behavior.
The catalog identifies Laravel as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 4f3b59c9cad2543a3c7a8102e2d9ab0a75f357d27f869a4c88b5352703321985
2026-10-02T22:42:25.555Z
Source file / repository
The Agency is a free Statamic Starter Kit designed as an example of utilizing various techniques to implement a highly customized Statamic experience.
The Agency Starter Kit can be used as-is as the starting point for any new project and comes with the following features out of the box:
* A simple home page design with a prominent call-to-action hero section
* Service offerings
* Customer testimonials section
* Simple project portfolio page, with individual case-study pages
* An integrated blog ("The Buzz") with paginated post listings and individual blog post pages
* A custom project request form and Control Panel management system
## Installation
The Agency Starter Kit may be installed from the command line using the following command:
```bash
php please starter-kit:install stillat/the-agency-starter-kit
```
Once the Starter Kit has been installed you will need to install and compile the front end assets using the following commands:
```bash
npm install
npm run dev
```
## General Project Overview
This Starter Kit contains many custom Tags, modifiers, classes, JavaScript files, additional resources, and routes.
### Multiple Antlers Layouts
This example project utilizes the `stillat/antlers-layout` [https://github.com/Stillat/antlers-layouts](https://github.com/Stillat/antlers-layouts) package to swap out the layout file used from *within* an Antlers template. The Tags provided by this package are used extensively throughout the site to change the layout and share data with the layout file from the current template (Statamic renders Antlers layouts *last*).
As an example, the `/buzz-words` template utilizes it to change the layout, as well as pass some data to the layout to change the header, content, and SVG graphic that is displayed:
```antlers
{{# Change the Antlers layout we will use. #}}
{{ layout:layouts/large-header /}}
{{ if get:page == null || get:page < 2 }}
{{ layout:share show_marketing_header="true"
:marketing_header_title="title"
:marketing_header_content="heading_blurb"
marketing_svg_name="typewriter"
marketing_header_background="bg-indigo-100" /}}
{{ else }}
{{ layout:share marketing_header_background="bg-indigo-100" /}}
{{ /if }}
{{# Rest of the template... #}}
```

### Global SEO Meta Fields
The `app/Fields/` namespace provides a location to define Blueprint sections and fields that should appear on every Collection entry within the Control Panel. The Starter Kit uses this to ensure that each blog entry, project, and page contains SEO meta tag fields, such as keywords and descriptions. This file interacts with some event listeners within the `app/Listeners` directory, which contains the logic for adding custom fields to each Blueprint. Specifically, these file paths:
* `app/Listeners/BlueprintSavingListener.php`
* `app/Listeners/MetaBlueprintFieldsListener.php`
In addition to the listeners to facilitate the custom SEO meta fields, the `app/Listener` directory also contains a listener that is used to minify the HTML output of each page.
### Creating Collection Entries from the Front End
The Agency provides an example of creating collection entries from the front end. The Contact page allows visitors to submit project requests; instead of using the Forms feature, this Starter Kit provides examples of creating custom routes, HTTP middleware (replicating the honeypot form field behavior), and creating/saving the entries using custom PHP code.
The files are involved in creating the collection entries:
* `routes/web.php`: Contains the form's action to handle the entry validation, creation, and saving
* `app/Tags/GetBlueprint.php`: Provides a custom Tag implementation that is used to extract the select field options to be used within the front end template
* `resources/pages/contact.antlers.html`: The template used to implement the front end form
All of the custom modifiers within `app/Modifiers` are also used in some way to create the final project request form. These are not directly related to creating entries, but are purely to help simplify the template's logic.

### Custom Control Panel Integration
The Agency Starter Kit provides an example of adding menu items to the Control Panel and adding custom pages to the Control Panel for the end user. The example provided by The Agency is a simple Kanban-style view that can be used to update the current project status of submissions.
This feature makes use of the following files:
* `app/Projects/ProjectBoardRepository.php`: Servers as a central location for managing details about project requests
* `app/Providers/AppServiceProvider.php`: Registers our custom Control Panel CSS and JavaScript assets, as well as adds a new navigation menu item to the Control Panel's "Content" section
* `app/Providers/RouteServiceProvider.php`: Pushes all of the Control Panel routes inside the `routes/cp.php` file using Statamic's `Statamic::pushCpRoutes` helper method
* `resources/css/cp.css`: Includes the `tailwindcss/utilities` file to help build our custom Control Panel view
* `resources/js/components/*`: Contains the Vue component implementations used in our custom Control Panel view
* `resources/js/cp.js`: Registers our custom Vue components with Statamic to make them available in our template
* `resources/views/cp/project-board.blade.php`: Extends Statamic's Control Panel layout and includes our custom Vue components

### Custom Sitemap Generator
This Starter Kit also provides an example implementation for generating custom sitemaps. This feature utilizes PHP's `XMLWriter` and various Statamic data repositories to fetch our content and generate a sitemap. The following files interact to help implement this feature:
* `app/Utilities/SiteMapGenerator.php`: Provides the sitemap generator implementation
* `config/sitemap.php`: Provides a central location to exclude collections from sitemap generation, such as the Testimonials collection
* `routes/web.php`: Provides a `sitemap.xml` route that will return an XML response containing the generated sitemap
### Randomized and Unique Array Options
The 404-page template of this Starter Kit will randomly apply background colors to a grid. This is accomplished using a custom Tag that accepts a list of choices to select from. Once an option has been selected, it is removed from the list of available choices for subsequent selections.
The following files are used for this:
* `app/Tags/RandomOnce.php`: The custom Tag implementation
* `resources/views/errors/404.antlers.html` The 404-error page template implementation

### Custom Page Title Behavior
This Starter Kit implements custom page title behavior through the `app/Tags/SiteTitle.php` custom Tag. This Tag provides examples of the following:
* Interacting with the `Entry` façade
* Finding entries based on their URI
* Interacting with a custom Tag's context
* Querying Global Sets and retrieving their values for the current site
## Provided Collections and Blueprints
The Agency provides the following collections:
* Blog: Contains all entries for "The Buzz", the sample blog
* Pages: Contains the entries for each page of the site, including the home page, project request page, and more
* Portfolio: Contains all of the projects and case studies showcased on the `/projects` page
* Project Requests: When visitors complete the project request form on the `/contact` page, submissions will be saved to this collection
* Services: A collection of services that are displayed prominently on the home page
* Testimonials: A collection of customer testimonials that are displayed prominently on the home page
Some pages, such as the home page, testimonial, etc. have their own custom blueprint to customize the Control Panel experience and help tailor the content.
Most blueprints will automatically inherit the following SEO meta fields:
| Field | Description |
|---|---|
| Keywords | An optional list of SEO keywords |
| Description | An optional SEO description |
The following noteworthy blueprints are provided by this Starter Kit:
**Blog Page**: The blueprint for the blog listing page
| Field | Description |
|---|---|
| Title | The page's title |
| Heading Blurb | The content that appears prominently on the larger header |
The blueprint for the Portfolio page contains similar fields.
**Contact**: The blueprint for the '/contact' page
| Field | Description |
|---|---|
| Title | The page's title |
| Heading Title | A secondary title that appears at the top of the contact page |
| Content | A Bard field that contains content that appears below the Heading Title at the top of the contact page |
**Home**: The blueprint for the home page
| Field | Description |
|---|---|
| Title | The page's title |
| Content | A replicator field that contains various sets that can appear on the home page |
The home page is a simple example of the "Page Builder" concept, in which custom Antlers views are rendered depending on the type of set encountered.
The home page's template can be found at `resources/views/pages/home.antlers.html`, and a simple Antlers loop that iterates each set within the `content` replicator field:
```antlers
{{ content }}
{{ partial:if_exists src="components/home/{type}" /}}
{{ /content }}
```
The `type` variable is provided by each set within the Replicator field (this is also true for Bard fields with sets!). The `{{ partial:if_exists }}` Tag will load one of the partials within the `resources/views/components/home` directory, if a match exists.
There are many other blueprints, such as those that contain blog post entries and project request submissions. These are fairly typical blueprints, and can explored within the Control Panel, or by reading through the YAML files.
### Global Sets
This Starter Kit includes a single Global Set (`site_settings`). This set is used to configure the following:
* Site Name: The name that will be used across the site, including in the header and title,
* Footer / About Us: The text that will appear in the footer
* Footer / Contact Information: A list of contact information that will appear in the footer, such as email, phone, and physical address
* Social Media Profiles: A list of social media profiles and links that will appear in the footer
## Resources
This Starter Kit makes use of a number of custom graphics, as well as those from the following sources:
* Header SVG graphics came from unDraw: [https://undraw.co/](https://undraw.co/)
* SVG icons (social, project board icons, etc.) came from Feather: [https://feathericons.com/](https://feathericons.com/)
* The "Board" icon used in the custom Control Panel navigation menu item is from Streamline's Regular icon set: [https://www.streamlinehq.com/icons/legacy-streamline-regular](https://www.streamlinehq.com/icons/legacy-streamline-regular)
* Sample images are from Unsplash: [https://unsplash.com/](https://unsplash.com/)
* Customer profile images used for testimonials were generated using Lorem Faces: [https://loremfaces.com/](https://loremfaces.com/)
* Favicon assets generated using [https://realfavicongenerator.net/](https://realfavicongenerator.net/)
* The Project Board view components was adapted from this example found on Code Sandbox: [https://codesandbox.io/s/animated-draggable-kanban-board-with-tailwind-and-vue-1ry0p](https://codesandbox.io/s/animated-draggable-kanban-board-with-tailwind-and-vue-1ry0p)
## License
"The Agency" is free software released under the MIT License.
Feel free to use it as a starting point for a project, or take things from it. Redistribution as a Starter Kit is prohibited.
Explore similar templates
Compare previews and descriptions within the same stack and category.

sage
Sage is a WordPress starter theme maintained by Roots, using Laravel Blade components and templates, Vite builds, Tailwind CSS, and built-in block editor support.
Laravel · Starter

wave
Wave is an open-source SaaS starter kit built on Laravel and released under the MIT license.
Laravel · SaaS

filament-starter
A Laravel TALL stack starter template maintained by Log1x, with a preconfigured Filament admin panel and plugins including Curator, Gravatar, Exceptions, Jobs Monitor, Breezy, Peek, and Logger.
Laravel · Starter

electrik
Electrik is a Laravel SaaS starter kit installed as a Composer package, with authentication, teams, Stripe subscription billing, and the Slate 3 interface under the Electrik\ namespace rather than copied into App\.
Laravel · SaaS

php-saas
php-saas is a Laravel-based SaaS starter positioned as an everything-included kit. It generates new projects via a global Composer command and includes authentication with two-factor, API tokens, Stripe and Paddle billing, and project, team, and organization management.
Laravel · SaaS

filament-jetstream
A Laravel starter kit that implements Jetstream-like authentication and account features using Filament's native panels and components. It includes login, registration, two-factor authentication, session management, user profiles, and optional teams and API tokens.
Laravel · Starter
