ec5976135f1ea31cd66e3bbe408af952a19842bc
Article is deliberately minimal: title, slug, Markdown body, cover image and category. No Author content type — the administrator is the only writer. The bootstrap hook grants the Public role find/findOne on the two content types and disables self-registration, so the public API is read-only and the site has no front-end accounts.
Blog
Blog platform: a public website built with Nuxt, and a private Strapi CMS where editors write the articles. Everything runs behind Caddy via Docker Compose.
Browser → Caddy ─┬─ public domain → Nuxt (website)
└─ cms subdomain → Strapi (CMS) → PostgreSQL
Status: bootstrap. The application code is not in place yet.
Getting started
Requires Docker and Node.js 20+.
cp .env.example .env # fill in the secrets, never commit this file
docker compose up -d --build
Then open the CMS URL to create the first admin account and start publishing. The public site picks up published articles automatically.
Working on it
cd frontend && npm run dev # website
cd cms && npm run develop # CMS
Architecture, conventions and constraints are documented in CLAUDE.md.
License
Proprietary — Copyright (c) 2026 Davide Grilli. All rights reserved. See LICENSE.
Languages
TypeScript
60.1%
Vue
29.7%
JavaScript
5%
CSS
4%
Dockerfile
0.9%
Other
0.3%