# Leader > A workshop for small web tools, and the notes kept while building them. ## Work - [Pennant](https://leader.ondelva.com/work/pennant): A status page that fits in one browser tab. - [Tideline](https://leader.ondelva.com/work/tideline): Scheduled backups for people who never check whether they ran. - [Ledgerline](https://leader.ondelva.com/work/ledgerline): Turns a folder of invoices into something you can actually query. - [Cusp](https://leader.ondelva.com/work/cusp): Staging URLs that expire on their own. - [Halyard](https://leader.ondelva.com/work/halyard): Deploy notes, written by the deploy. - [Quartile](https://leader.ondelva.com/work/quartile): Weekly numbers for a shop that did not want a dashboard. - [Marlin](https://leader.ondelva.com/work/marlin): A queue worker I ran for four years and finally handed over to a cron job. ## Notes - [Why the queue got expensive](https://leader.ondelva.com/notes/why-the-queue-got-expensive): A retry policy I wrote in ten minutes cost me four months of database bill before I read the graph properly. - [Cutting a release by hand](https://leader.ondelva.com/notes/cutting-a-release-by-hand): Doing the deploy manually for a month before automating any of it. - [A status page should be boring](https://leader.ondelva.com/notes/a-status-page-should-be-boring): Every feature I removed from Pennant made it more useful during an outage. - [The backup you never restored is not a backup](https://leader.ondelva.com/notes/the-backup-you-never-restored): Restoring from my own backups once a quarter, and what broke the first three times. - [Naming things after rope](https://leader.ondelva.com/notes/naming-things-after-rope): How I pick product names, and why the list is mostly sailing terms. - [What the shelf costs to run](https://leader.ondelva.com/notes/what-the-shelf-costs-to-run): A year of invoices for seven small products, added up properly for the first time, and the two things I moved afterwards. - [What shutting down Marlin taught me about deleting code](https://leader.ondelva.com/notes/shutting-down-marlin): Four years of a queue worker, replaced in an afternoon by nine lines of cron. - [A spreadsheet is a database until it is not](https://leader.ondelva.com/notes/spreadsheets-until-they-are-not): Ledgerline began as a spreadsheet with 40 tabs, one per vendor, and it stayed a spreadsheet for about eight months before the tab count and the formula errors… - [One tab, one glance](https://leader.ondelva.com/notes/one-tab-one-glance): The only design constraint I kept from the first week. - [The week I deleted the dashboard](https://leader.ondelva.com/notes/the-week-i-deleted-the-dashboard): A client asked for charts and got a Friday email instead. - [Staging URLs that expire](https://leader.ondelva.com/notes/staging-urls-that-expire): Twenty-six forgotten preview deployments, and the cleanup that finally stuck. - [Paying for uptime, a guest note](https://leader.ondelva.com/notes/paying-for-uptime): A guest note on what an on-call rotation costs before anyone pages you. - [Running seven things at once](https://leader.ondelva.com/notes/seven-things-at-once): The maintenance arithmetic of a shelf of small products, and the two rules that keep it from collapsing. ## Categories - [tooling](https://leader.ondelva.com/category/tooling): The tools around the code. - [infra](https://leader.ondelva.com/category/infra): Where it runs, and what it costs to keep it there. - [data](https://leader.ondelva.com/category/data): Databases, feeds, and the queries that get expensive. - [build log](https://leader.ondelva.com/category/build-log): Notes from building the things on this site. Any page above is also published as Markdown at its own path with `.md` appended: https://leader.ondelva.com/work.md, https://leader.ondelva.com/index.md for the front page. No header is needed and nothing negotiates -- they are static files.