Requirements
PHP 8.2 or newer
PHP 8.2 or newer
Required by
composer.json. Laravel 13 will refuse to boot on older versions.Composer 2
Composer 2
Used for the PHP dependencies and the
composer dev helper script.Node.js 20.17 or newer
Node.js 20.17 or newer
Vite 6 and the Mintlify CLI both require a modern Node. Node 22 LTS is what the team uses.
A database
A database
.env.example defaults to SQLite, which is the fastest way to get started. MySQL and
PostgreSQL both work — set the usual DB_* variables instead.Install
1
Install dependencies
2
Create your environment file
.env, but most features stay inert until the
provider keys are filled in. See the environment reference
for what each block unlocks.3
Create the database
For the default SQLite setup:Sessions, cache and the queue all use database drivers by default, so the migrations
are required even for a UI-only session.
4
Add the keys you need
At minimum, set the Clerk keys — authentication guards every dashboard route, so
without them you can only reach the public pages.
5
Start everything
php artisan serve, php artisan queue:listen and npm run dev
concurrently. The app is then at http://localhost:8000.First run through the app
- Sign in through Clerk. New users are pushed into the mandatory onboarding wizard at
/setupby theonboardedmiddleware. - The 5-step wizard analyses the domain, generates a brand profile, topics and a starter
prompt set. Onboarding runs on the cheap model configured by
ONBOARDING_MODEL. - After onboarding you land on
/visibility, the dashboard home./dashboardis kept as an alias that redirects there. - Prompts are managed at
/prompts. Nothing is executed against the providers until a prompt isactiveand a batch runs — see the visibility pipeline for how to trigger one by hand.
A local-only UI sandbox is registered at
/sandbox for working on the design system in
isolation. The route only exists when APP_ENV=local.