A read-everything-later research app for infovores and culturevores.

2021 - Present

Margins started in 2021 as a way to procrastinate from writing my newsletter, The Curtain.

Like all good rabbit holes, it quickly spiraled out of control. I started scratching every itch I could think of for myself, then scrapped the whole thing, then rebuilt it. Many times, over and over.

The result is an app that I use every day, and that I hope others will find useful too.

Exploring your library with views

Annotating an article in Margins

What is Margins?

Margins is a read-everything-later research app for infovores and culturevores. It’s a place to save and organize all the things you want to read, watch, and listen to. It’s a place to take notes, make annotations, and share collections with friends. And it’s also a place to discover new things, and to get recommendations from people you trust: subscriptions, newsletters, podcasts, and more.

Looking over a library in Margins

Margins subscriptions

It’s a place to get lost in the margins.

It’s heavily influenced by great read-it-later apps like Pocket and Instapaper, as well as RSS apps like Feedbin and Fraidycat. But it’s also influenced by the way I use Obsidian, Notion, and other apps. And it’s influenced by media saving apps like Goodreads, Letterboxd, and

The Stack

Margins is built with Svelte and SvelteKit, and uses TailwindCSS for styling. It’s hosted on Vercel, and uses Planetscale MySQL for the database. I’m using Kysely as a query builder, and Prisma for schema management and migrations. I roll authentication with the help of Lucia.

Margins login screen — calm and collected.

For a while it used the great tRPC library for API calls, but I eventually migrated to a homegrown solution that uses similar Typescript magic to generate API routes and types.

I did all the design and development myself, and I’m using Figma for design and prototyping, as well as relying on Shadcn (the Svelte port, which is built off the wonderful component library Melt UI).