← Writing

Publishing this site from a browser

How articles get from a text box to wonderzac.com without anyone opening a code editor.

Publishing this site from a browser

This site is an Angular app compiled to static files, which normally means publishing requires a terminal. It no longer does. Here is the path an article takes from writing to live.

The shape of it

Content is markdown in the repository, not rows in a database. The editor writes a file, the file lands in git, and a build turns it into a page.

  1. Write in the CMS and hit publish
  2. The CMS commits a markdown file to the repository
  3. That commit triggers a build
  4. The build renders every page to static HTML and deploys it

The whole loop takes about a minute, and nothing runs on my machine.

Why markdown in the repo

Storing articles as files rather than in a hosted database means the content is version controlled alongside the code, greppable from a terminal, and portable if this site is ever rebuilt on something other than Angular.

The content outlives the tool that renders it. That is worth some friction.

What the build checks

Frontmatter is validated before anything is generated. A missing title or a malformed date fails the build rather than publishing a broken page:

✗ content build failed — 2 problem(s):
  posts/example.md: missing `title`
  posts/example.md: `date` must be YYYY-MM-DD (got "last tuesday")

That trade — a failed build instead of a silent mistake — is deliberate.

Images

Images are uploaded through the same editor and optimised during the build, so a photo straight off a phone does not ship at full size.