randomshelly Shelly Gibbens
Notes

Why this site exists

I have written a lot of words that live in folders on my own machine and nowhere else. This is the fix.

Three notebooks, because I am working on more than one thing and I would rather not pretend they are the same thing. Each one has its own feed, so you can subscribe to the part you care about and ignore the rest. Nothing is behind an account.

Notes on the build

The site is static. Markdown files go in, HTML comes out, one Python script does the whole thing with nothing installed. No database, no CMS, no build pipeline to babysit. Writing a post means adding a file.

That is a deliberate choice, not thrift. The failure mode I have seen kill more personal sites than anything else is maintenance debt on the platform itself. Eventually a plugin breaks, the upgrade path is a Saturday, and you stop writing. Text files and a build script will still work in ten years.

Formatting available in posts, as a reference for future me:

  • Bold, italic, inline code, and links
  • Bulleted and numbered lists
  • Headings down to three levels
  • Block quotes and code blocks

Pull quotes look like this. Useful for the line you want people to remember.

def why(reason):
    """Code blocks keep their formatting."""
    return reason.strip()

That is all it needs to do.

The List

Get new posts by email

New writing from all three notebooks, whenever there is some. No schedule, no spam.

Signup opens with the first book. Email me in the meantime.