Statamic

Local Statamic development for Mac.

Bothy is a native Mac app that runs PHP, MySQL or MariaDB and HTTPS for your local sites. The Statamic starter gives you a flat-file site with no database to set up, served from public/ at https://studio.test, with the control panel at /cp.

Flat files first, database optional

Statamic is a Laravel package. Out of the box its content (entries, globals, navigation, users) lives as Markdown and YAML files under content/ and users/, and blueprints and fieldsets are YAML files in resources/. That means your whole site, content included, can be versioned in git, and a fresh clone runs with no database import at all.

Plenty of Statamic sites stay that way. Bigger ones sometimes move content or users into a database with Statamic's Eloquent driver, or the underlying Laravel app needs tables of its own. Bothy covers both: a site can start with no database and have one assigned later.

What Bothy does for a Statamic site

Bothy runs Caddy, php-fpm and (when you need them) MySQL or MariaDB as ordinary Mac services. Each site gets its own https://name.test, PHP version and FPM pool, and public/ is detected as the document root automatically. The Statamic starter needs no database, so there's nothing to configure before you open the control panel.

HTTPS on .test with a locally trusted certificate means the control panel, Live Preview and any asset URLs behave the same as on your production domain.

php please and artisan on the right PHP

Statamic's CLI is php please, alongside Laravel's php artisan. Run both through bothy site exec so they use the PHP version the site is served with:

bothy site exec studio -- php please make:user
bothy site exec studio -- php please stache:clear
bothy site exec studio -- php please stache:warm
bothy site exec studio -- php please static:clear
bothy site exec studio -- composer update statamic/cms --with-dependencies

The Stache is Statamic's index of your flat files. If you edit content files by hand or switch git branches and the control panel looks out of date, stache:clear is usually the fix.

Cloning a Statamic site from git

Because content is in the repository, cloning is usually the whole job:

bothy site add studio --git git@github.com:you/studio.git --composer
bothy site exec studio -- cp .env.example .env
bothy site exec studio -- php artisan key:generate

If the GitHub CLI is installed and signed in, the app can list your repositories to pick from. The site's Git tab shows the content files you've changed, which for Statamic includes edits made in the control panel, so you can see exactly what an editor session touched before you commit.

Adding a database when you need one

When a project does need MySQL (the Eloquent driver, or a Laravel feature with its own migrations), create a database and assign it to the site:

bothy site db studio assign studio_db --create

Then set the usual Laravel keys in .env: DB_CONNECTION=mysql, DB_HOST=127.0.0.1, DB_PORT=3306, DB_DATABASE=studio_db, DB_USERNAME=root and an empty DB_PASSWORD. Snapshots, imports and phpMyAdmin work as for any other site; see MySQL and MariaDB.

Forms, email, assets and debugging

Statamic form notifications go through Laravel's mailer. Point it at Mailpit with MAIL_MAILER=smtp, MAIL_HOST=127.0.0.1 and MAIL_PORT=1025, and every message appears at mail.test instead of a client's inbox.

Current Statamic projects usually build their CSS and JS with Vite. Enable the Node add-on (bothy addon enable node) and node and npm are on PATH in bothy site exec:

bothy site exec studio -- npm install
bothy site exec studio -- npm run build

Redis is an add-on too, if you move Laravel's cache or queues onto it. For errors, the site's Logs tab follows its PHP and access logs live, and bothy site xdebug studio on enables Xdebug for that site only, on port 9003.

AI assistants and flat files

Flat-file content suits AI-assisted work: an assistant can read and edit your entries and blueprints directly, and Bothy's MCP server lets it create sites, run commands, read logs and check mail. Connect it to Claude, Codex or Cursor from the app's Integrations screen. See AI development.

Set it up in a minute

  1. 1
    Install Bothy

    Open the app and let setup install PHP, Caddy, dnsmasq and MySQL. See installation.

  2. 2
    New site: use the Statamic starter

    Choose the Statamic starter when you add a new site in the app. No database is needed.

  3. 3
    Create your control panel user
    bothy site exec studio -- php please make:user
  4. 4
    Open it
    bothy site open studio    # then /cp

Questions

Does a Statamic site need a database in Bothy?

No. The Statamic starter is flat-file and needs no database. You can assign one later with bothy site db studio assign studio_db --create.

Is public/ detected automatically?

Yes. Bothy auto-detects public/, web/ and htdocs/, and you can set another folder in the site's General tab.

How do I run php please commands?

bothy site exec studio -- php please … runs them in the site folder with the site's PHP version first on PATH.

Where do form emails go?

Set Laravel's mailer to SMTP on 127.0.0.1:1025 and they're caught by Mailpit at mail.test.

How much does Bothy cost?

$69 once, including every 1.x update. See pricing.

Get Bothy for $69.
One payment for every 1.x release. Version 2 will be a separate purchase.
Buy now