This portfolio is intentionally static. I want it to be fast, simple to deploy, and easy to maintain without paying for a server just to publish writing and project notes.

The important change was moving from copied HTML pages into an Astro content structure. The final site is still plain static files, but the source is now easier to work with.

The Problem With Plain HTML Pages

Plain HTML works at the beginning, but it becomes hard to keep consistent. Every repeated header, footer, navigation item, and project card becomes another place where small mistakes can happen.

For a portfolio that will grow with articles and project pages, the structure matters more than the first version of the design.

The Current Shape

Astro handles the repeated parts of the site through components and layouts. Blog posts, notes, and projects live as Markdown files inside src/content.

That gives the site a clean publishing flow:

  • Write the content in Markdown.
  • Add frontmatter for title, date, tags, and summary.
  • Let Astro generate the pages during build.
  • Let Netlify publish the dist folder.

Why Static Still Works

The site does not need a database for public reading. The content changes when I write or update files, not every second. That makes static output a good fit.

Static also keeps deployment simple. Netlify only needs to install dependencies, run the build command, and serve the generated files.

Publishing flow

To publish a new article, I add a Markdown file to src/content/posts. For shorter thoughts, I use src/content/notes. For product work, I use src/content/projects.

The blog, notes page, homepage writing section, project list, project detail pages, and terminal navigation all update from those files.

What I Still Want To Improve

The next improvement is not a bigger stack. It is better content discipline: clearer project writeups, more technical notes, and a publishing rhythm that keeps the site alive.