The source text of everything published at www.simoneorsi.com, where the posts are listed on the front page. These files are the blog: the site reads this repository directly, so a commit here is a publication. The site's own code stays private — this repo is the writing.
Keeping the prose here rather than in a database means it outlives whatever renders it. It is plain markdown in git: diffable, forkable, and readable without me.
posts/en/<slug>.md the post, in English
assets/<slug>/ everything the post ships besides prose
The filename is the URL slug: posts/en/why-i-stopped-using-orms.md is served
at www.simoneorsi.com/en/blog/why-i-stopped-using-orms. The blog is
English-only; the site's Italian pages show the same English text.
---
title: Why I stopped using ORMs
date: 2026-08-22
excerpt: A short summary, used on the index page and in previews.
tags:
- databases
- postgres
---
The post body, in GitHub-flavoured markdown.title and date (as YYYY-MM-DD) are required. excerpt and tags are
optional. An optional published: false retires a post from the site without
deleting the file — leaving it out means published.
Every post carries a "suggest an edit" link that points at its source file on
GitHub, where anyone can fork and open a pull request. suggest_edits: false
turns the link off for that post.
When a document is the point of the post rather than an aside, pdf: embeds it
above the prose, and source: points at the file it is built from, so the
page can offer edits on the document itself and not only on the prose around
it:
pdf: assets/ethereum-study-notes/ethereum-study-notes.pdf
source: assets/ethereum-study-notes/ethereum-study-notes.texBoth paths are relative to this repository, so the document, its source and
the post that presents it live in the same place (phones get download links
instead of an inline viewer). The study notes ship their full LaTeX project in
assets/ethereum-study-notes/; ./build.sh there rebuilds the PDF with
tectonic.
Typo fixes and broken links are welcome: open a pull
request. Frontmatter is validated automatically and that check has to pass
before a branch can be merged. main accepts no force-pushes and cannot be
deleted, by anyone.
Merging is publishing — the site picks the change up within seconds — so edits to the substance of a post, as opposed to its spelling, are better raised as an issue first.
Prose is CC BY 4.0: reuse it anywhere, with credit and a link back. Code samples inside the posts are MIT. See LICENSE.