
Why this portfolio no longer has a CMS
Removing the database, admin panel, and application server from a one-person portfolio.
A portfolio needs to load quickly, explain the work, and make publishing tolerable. It does not automatically need a database or an admin panel.
What was removed
The previous site had a Next.js application, an API service, SQLite, authentication, an editor, uploaded files, and a persistent Docker volume. Each part worked, but each part also needed configuration, updates, and failure handling.
The static version replaces that system with:
- Astro pages,
- typed content collections,
- Markdown and MDX files,
- one build step,
- one Nginx container.
Publishing is a Git operation
A new post is one file under src/content/blog/. Publishing means changing status to published, committing the file, and pushing it. Coolify rebuilds the site and replaces the previous immutable container.
git add src/content/blog/my-new-post.mdx
git commit -m "Add post about route processing"
git push
There are no production uploads to back up and no administrator password to protect. Git history is the editorial history.
The tradeoff
Every content change requires a build. For a one-person portfolio, that is a useful constraint rather than a problem. A live CMS becomes worthwhile only when non-developers need to publish independently or the content must change without a deployment.