This file provides agent-specific guidance when working with code in this repository.
Important: Always use ./scripts.sh and the Docker environment for running checks, tests, or verifying changes. Do not run commands locally without Docker unless explicitly requested.
- Copy
.env.exampleto.envand configure - Development uses Postgres by default (config/env/development/database.ts)
- Docker setup includes:
- Strapi app (port 1337)
- Postgres DB (port 5432)
- Adminer DB admin (port 9090)
MCP (Model Context Protocol) integrations configured in multiple files:
mcp.json- Claude Code configuration with Linear/GitHub servers.cursor/mcp.json- Cursor IDE configuration with Linear/GitHub serversopencode.json- OpenCode configuration with Linear/GitHub servers
Required environment variables: LINEAR_MCP_TOKEN, GITHUB_MCP_TOKEN
Strapi 5 CMS - Headless CMS with TypeScript
All APIs follow Strapi's MVC pattern in src/api/{entity}/:
controllers/- Request handlers (usefactories.createCoreController)services/- Business logic (usefactories.createCoreService)routes/- Route definitionscontent-types/{entity}/schema.json- Content type schema
Content types:
post- Blog posts with title, description, content, slug, tags relationtag- Tags with title, colorabout- Single-type about pagecontact- Single-type contact page
Database configurations in config/database.ts
register()- Forces socket encryption for proxy setupsbootstrap()- Empty, no auto-seeding
On-demand seeding via ./scripts.sh option 5 or docker exec personal-site-strapi yarn seed. Creates randomized tags, posts, about, contact - no duplicate checks, appends fresh data each run.
config/database.ts- Multi-DB config with connection poolingconfig/env/development/database.ts- Dev-specific overridesconfig/server.ts- Server configconfig/admin.ts- Admin panel configconfig/middlewares.ts- Middleware stack
- TypeScript compilation outputs to
dist/ - Uses Strapi Documents API (
strapi.documents()) not legacy entity service - Dev DB auto-populates on first run (see src/index.ts:populateDatabase)
- Do not commit any of your changes unless specifically instructed to do so.