Back to Clients & Projects
CompletedAIReact NativePineconeSupabaseGitHub ActionsVercelAndroidiOS

Ozym

BUILDING OZYM: A CALM NEWS APP IN A WORLD THAT WON'T STOP YELLING

Okay. Pull up a chair. Because I want to tell you about something I built that, on the surface, sounds almost old-fashioned. Underneath, it's one of the most modern pieces of software engineering I've put my name to.

It's called Ozym. And here's the pitch: it's a news app that gives you one digest a day, drawn from real verified sources, where every single story is cross-checked across at least two outlets, and then it gets out of your way. That's it. No infinite scroll. No likes. No little red notification dots engineered by behavioural scientists to hijack your Tuesday. You read it, you close it, you go live your life.

In an industry that has spent fifteen years figuring out how to keep your thumb moving, building something designed to end is sort of punk rock. That's the reason I started.

And as of August 6th, 2026, it's not a project anymore. It's on Google Play.

-- THE OTHER REASON, AND IT'S A CANADIAN ONE --

There's something that happened in my country I don't think we've properly reckoned with yet.

In 2023, Canada passed the Online News Act. The idea was simple enough: if you're a giant platform making money off Canadian journalism, you pay something for it. Google looked at that and cut a deal to pay out a hundred million dollars a year into a fund for Canadian news outlets. Meta looked at the same law and did something else entirely. They turned news off. Blocked it. Every link from every Canadian news organization, gone from Facebook and Instagram in this country.

That was three years ago. It is still off. As recently as this past January, Meta told the CBC it has no plans to bring news back while that law stands.

Now here's the part that actually keeps me up at night. Researchers at McGill's Media Ecosystem Observatory surveyed more than 1,500 Canadians this year and found that only 41 percent of Facebook users, and 26 percent of Instagram users, even know the news is gone. For most people, the news didn't disappear. The feed kept scrolling. The journalism just quietly wasn't in it anymore.

And the hole did not stay empty. The same researchers put it about as plainly as academics ever put anything: Canadians still learn about politics through Facebook and Instagram, just through a more biased and less factual lens than before. When the reporting left, the commentary moved into the space it used to occupy. By the 2025 federal election, that same group found influencers accounted for 47 percent of political content on social platforms. News outlets accounted for 28. The people whose job is to verify things got outnumbered, two to one, on the platforms where most of the country actually lives, by people whose job is to have takes.

That's the trade nobody voted for. Not a nation suddenly drowning in provable lies, which would at least be nameable and fightable. Something quieter and harder to argue with. Facts replaced by opinion about facts, at scale, arriving in the same scroll, at the same size, in the same confident voice, to an audience that mostly doesn't know the reporting ever stopped showing up.

That's what I built Ozym against. Because if your understanding of the world arrives through a feed you don't control, then somebody else's business dispute can quietly redraw it, and you will not get a notification. Ozym isn't a feed. Everyone gets the same edition. Every outlet is named right there on the page. Nobody is optimizing what reaches you, and no negotiation in a boardroom decides whether you find out what happened today.

-- WHERE THE NAME COMES FROM (because it matters) --

Ozym is short for Ozymandias, a poem written by Percy Shelley. The shattered statue in the desert, the king who built a monument to himself, and the inscription that's outlived everything: "Look on my works, ye Mighty, and despair." Now. Most people read that poem and root against the king. But there's another character in there I couldn't stop thinking about. The sculptor. The one who "read well" the passions on the face and carved them faithfully. The mediator. The one who told the truth and outlasted the propaganda.

That's the app. Ozym is the sculptor, not the king. It doesn't build an empire of engagement. The old digests stick around to prove the thing worked, but the article bodies get purposely pruned after sixty days, by a job that runs every Monday whether I'm watching or not, because it refuses to become a monument. A news app with a conscience. Imagine that.

-- THE STACK, AND WHY EACH PIECE IS THERE --

Now here's where it gets fun, because this isn't a toy. It's a real multi-agent AI system, and every tool in it is there for a reason. Let me walk you through the band.

Anthropic is the writing brain. There are actually a few different Claude models doing different jobs. They write the summaries: 120 to 180 words, neutral tone, and flag where the sources disagree rather than papering over it. They also create topic labels on story clusters, and re-read every summary against the original articles, hunting for any claim that isn't actually supported. Anything they flag goes back for a surgical repair. If it still can't be saved, the story doesn't run.

OPENAI is here for exactly one job: embeddings. The text-embedding-3-small model turns every article into a list of 1,536 numbers, a kind of mathematical fingerprint of its meaning.

PINECONE is the vector database, and this is the magic trick that makes the whole product possible. Once every article is a fingerprint of numbers, Pinecone lets you ask: "which articles are semantically close to this one?" Not the same keywords. The same meaning. So when the BBC, Al Jazeera, and a wire desk in Berlin all cover the same event in totally different words, Pinecone is what clusters them together. That cross-outlet clustering IS the product. Without it, you've just got an RSS reader. It's currently reading 31 outlets across the political spectrum, every four hours.

SUPABASE (Postgres under the hood) is the system of record. Sources, articles, clusters, the published digests, and the user accounts and subscriptions. It also handles auth: sign in with Google (or Apple, coming soon), or a one-time email code as a fallback.

LANGGRAPH.js is the conductor. The whole pipeline is built as two explicit state machines, little flowcharts where each AI agent is a labelled node and you can see exactly which step ran, when, and whether it passed, failed, or got skipped. Why bother? Because "we have an AI pipeline" means nothing if you can't see inside it. Every node writes a row to an observability table. When something breaks at 4am, I can reconstruct the entire run step by step. That's the difference between a demo and a system. And I promise you: every single war story I have from building this app was solved by reading those rows, not by guessing.

EXPO / REACT NATIVE is the app itself, one TypeScript codebase, Android and iOS. VERCEL hosts the backend. REVENUECAT handles the billing. RESEND sends account email, the sign-in codes and service notices.

-- THE FINISHED THING --

So here it is, live. You wake up. If you want, one single notification tells you the digest is ready, and that's the only ping this app will ever send you. You open it. There's one edition waiting: fifteen to twenty-odd of the day's real stories, each one woven from multiple outlets, each one telling you honestly where the reporting agrees and where it doesn't, every outlet in the cluster credited so you can go deeper if you want.

A big ongoing story carries a quiet "Ongoing" or "Updated" badge, and if it's been running long enough, a timeline you can scroll back through to see how the coverage moved. You can highlight words that matter to you and the app gently marks them everywhere they appear, or mute words you'd rather not be ambushed by, and it respects that. It follows your phone into dark mode, or you can tell it what to do. Every story has a small flag on it. If a source doesn't belong, or something reads wrong, you can report it and it lands in my inbox.

You read for a while. And then it ends. You close it. There is no "next." There is no feed. You are done — and genuinely, calmly informed.

A finite end, every single day, in a world that has forgotten what those feel like. And it'll be there again each day.

That's Ozym. I built it because I'm obsessed with both the craft and the conscience of the thing: multi-agent AI, vector search, the works, all of it in service of an app whose entire ambition is to take up less of your life.

Look on its works, ye mighty. And — for once — relax.