[ BACK_TO_LOGS ]
read_file.sh target=why-this-site-is-static.md
Developer workstation with code and product telemetry
[Astro][Coolify][Architecture] July 12, 2026

Why this portfolio no longer has a CMS

Removing the database, admin panel, and application server from a one-person portfolio.

Author: Denis Ciglarič// Read Time: 1 min

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.