I read a lot. I also highlight a lot — passages that stop me in my tracks, ideas I want to sit with, sentences I know I'll want to find again. Over the years I've filled book after book with amber-coloured marks on my Kobo, and for years those highlights just sat there on the device, quietly out of reach.

That bothered me. Not because I couldn't access them — I could, with enough effort — but because highlights that you never revisit are just decoration. The whole point of marking a passage is to do something with it. To let it change how you think, or remind you of something you'd forgotten, or surface an idea at the right moment.

So I built Luminaria. This is the story of why.

The problem with every existing tool

Before building anything, I tried everything I could find. Readwise is the obvious one — polished, well-loved, genuinely useful. But it's also £7.99 a month, requires an account, and the moment you sign up you're handing your entire reading life to a third party. For most people that's a perfectly reasonable trade-off. For me it wasn't.

I spent two years working as a privacy lawyer. That shapes how you see data. When a tool asks you to log in with Google or create an account to access your own reading highlights, you start to think about what that means — what's being stored, where, for how long, and what happens to it if the service shuts down or gets acquired. These aren't paranoid questions. They're the right questions.

Your reading life is one of the most personal things about you. The books you choose, the passages you mark — these say something true about who you are and what you're trying to become.

The other tools I found were either too clunky, required you to export files manually every time, or needed you to plug in your device and run a Python script. Nothing just worked in the way I wanted — open a browser, see your highlights, done.

Privacy wasn't a feature. It was the starting point.

When I started building Luminaria, the first decision I made was that your highlights would never touch a server unless you explicitly chose to sync them. They live in your browser's local storage. When you close the tab and come back tomorrow, they're still there — not because Luminaria fetched them from a database somewhere, but because they never left your browser in the first place.

For the KOReader sync feature, which does send highlights to a server so they can be pulled into the browser, I wanted the least invasive authentication method possible. No Google login. No email and password stored in a database. Just a personal API token — a long random string that only you have — that authorises your device to push highlights and your browser to pull them. No profile. No account in the traditional sense. Just a key.

✓ How it works Your highlights are stored in your browser's local storage. The KOReader sync feature uses a personal token — not a password, not a Google account — to authenticate. Nothing about you is stored beyond your email address (used only to send the token) and your highlights themselves.

That might sound like a small thing. But for someone who spent years advising on data protection law, the difference between "we store your highlights encrypted on our servers" and "your highlights never leave your browser" is not small at all.

The real reason: I want to remember what I read

Privacy was the constraint. But the real motivation was simpler: I read too much to remember it all, and I wanted to actually use the things I highlight.

I'm the kind of reader who will mark a passage about habit formation in one book, read something about decision-making in another, and completely fail to connect the two — because the highlights are trapped on a device, in separate files, with no easy way to browse across them. Luminaria started as a tool to fix that for myself.

The rotating quote on the homepage was one of the first things I built. It's a small thing — just a random highlight from your library surfaced each time you open the app — but it's the feature I use most. It's made me revisit passages I'd completely forgotten. It's prompted conversations. It's reminded me of ideas I'd meant to act on.

If you read to learn rather than just to finish, the highlights are often the point. Luminaria is built around that idea.

What it is now

Luminaria started as a personal tool and has quietly grown into something more. It now supports highlights from KOReader, Kobo native firmware (direct SQLite import — no exporting needed), Kindle, and Readwise. There's a plugin for KOReader that syncs your highlights automatically when your device connects to WiFi. You can export to a formatted PDF or into a Notion workspace.

The core is still free, still private, still runs entirely in your browser. A paid plan unlocks PDF export, Notion export, and automatic WiFi sync for those who want it.

But the reason it exists hasn't changed. It exists because I wanted a private, beautiful place to revisit the things I've read — and nothing else quite did that.

Try Luminaria

Free to use. No account needed. Your highlights stay in your browser.

Open Luminaria →
James
James
Former privacy lawyer turned general practitioner. Avid reader. Builder of Luminaria.