Deployment

A practical stack for a long-lived personal site

A personal site has a different job from a SaaS product. It should be easy to restore, easy to update, fast on mobile, and boring to operate. That points to a static-first stack.

The baseline

Astro is enough for a profile, project index, writing pages, metadata, sitemap, bilingual routes, and small interactive components. The output is just files, so it can be served by Cloudflare Pages, Caddy, Nginx, or object storage without changing the content model.

What the first version avoids

  • No database until there is content that genuinely needs one.
  • No login surface on the public identity site.
  • No comments or CMS before the publishing habit is stable.
  • No heavy theme that makes simple edits feel like framework work.

Where dynamic work belongs

Dashboards, APIs, and demos can still run on the VPS. They should be linked from the main site only when they are stable enough and placed behind clear paths or subdomains. This keeps the homepage credible even while experiments continue.

Maintenance test

The stack is acceptable only if a future update is simple: edit a data file or page, build the static output, replace the deployed files, and verify a few URLs. Anything more complex needs a strong reason.