Writing

How this site works

Contents
  1. Publishing a post
  2. Sections
  3. Living documents and tables
  4. Footnotes and media
  5. Deploying changes

Every page on this site is a plain Markdown file in the content/ folder. There is no database and no admin panel: write a file, commit, push, and it's live.

Publishing a post

Create a file — or scaffold one with npm run new -- writing "My title" — and add frontmatter at the top:

---
title: The case for boring startups
date: 2026-11-02
summary: One-line description used in lists, RSS and social cards.
tags: [startups, venture-building]
featured: true     # show as a tile on the homepage and hub
living: true       # mark as a living document that gets updated
updated: 2026-12-01
toc: true          # table of contents from ## and ### headings
cover: /images/boring.jpg
draft: true        # visible locally, hidden in production
---

The filename becomes the URL. 2026-11-02-the-case-for-boring-startups.md is served at /writing/the-case-for-boring-startups — the date prefix is stripped.

Sections

Folder URL Extra fields
content/writing /writing toc, living, cover
content/research /research authors, venue, pdf, link, code
content/ideas /ideas stage (Napkin, Exploring, Validating, Building)
content/ventures /ventures role, status, sector, year, website, logo, group, order
content/pages /<name> —
content/data /tables/<name> JSON data tables

Living documents and tables

Inspired by sites like LifeArchitect.ai, some pages are meant to be updated over time rather than published once. Add living: true and an updated: date and they show up under Living documents in the Hub.

For structured data, drop a JSON file in content/data/. It becomes a sortable, filterable table — see the example.

Footnotes and media

Footnotes work the way long-form essays need them to.1 Images go in public/images/ and are referenced as /images/name.jpg; the title becomes a caption:

![Alt text](/images/chart.png "Caption shown under the image")

PDFs for research papers go in public/papers/.

Deploying changes

On the server, git pull is enough: the server watches content/ and reloads automatically. Code or config changes need sudo systemctl restart hectorren.

Notes

  1. Like this one. Write [^1] in the text and [^1]: note anywhere below. ↩