Inspiration
I read TLDR AI every morning, along with about a million other people. If you asked me on Friday what was in Monday's email I couldn't tell you one thing that was in it.
That's the whole idea. The habit already exists, it's daily, and it's huge. What's missing is anything that makes the reading stick.
Almost everything written about AI is about models and research. Very little is written for the person who has to get an agent through a security review, or answer an auditor's questions, or keep the thing running inside an SLA. I wanted that content and couldn't find it, so it ended up being a third of what Delta covers.
What it does
Delta is a learning app for people who build with AI for a living. Hundreds of cards across ten topics.
A card takes about ninety seconds. Two or three short paragraphs, one thought per screen, then a question you have to actually answer — predict what this prints, find the bug in this IAM policy, pick the cheaper option and say why. Then you get the explanation, which is really the point of the whole thing.
Behind it is an Free Spaced Repetition Scheduler (FSRS-6) scheduler tracking what you got right, what you got wrong, and how long you took. Twelve seconds to answer isn't the same as two and it treats them differently. It decides when the card comes back.
You don't see any of that. No due count, no deck, no review queue, no retention percentage. Cards you're about to forget just turn up in the feed again looking like everything else. I've never finished an Anki queue in my life and I assumed I'm not alone.
Five of the ten topics are the reason I built it: AI security, responsible AI, governance and regulation, enterprise architecture, operations. About 44% of the cards are in that half.
How we built it
iOS. Swift 6 and SwiftUI, iOS 18 minimum. Native because the whole thing lives or dies on how the swiping feels. The feed is one vertical pager over every screen of every lesson, flat instead of nested, because a scrolling view inside a paging view is the thing that makes an app feel broken and I didn't want to fight it.
Each topic owns a colour that fills the screen. Go from an agents card to a security card and the whole background changes. No badges, no labels, just colour.
Content pipeline. Python on a schedule. Nine sources: arXiv, RSS, GitHub releases, the CVE feed, some standing regulatory documents, and a full-text article fetcher. It fetches, dedupes against the last thirty days using pgvector, scores, drafts against a prompt written per topic, then runs two checks. One is mechanical — if any eight consecutive words match the source, the card dies. The other is a second model reading the first one's work.
I checked the licence on every source by opening its LICENSE file. GitHub's API reported NOASSERTION for three of the first ten repos and was wrong about all three, which put me off trusting it.
Backend. Supabase. Postgres with row-level security, FSRS-6 written in plpgsql so I can improve the scheduler without shipping an app update, and one Edge Function that builds the feed per person per request from three streams: new cards, cards that are due, and concept cards filling gaps it noticed from wrong answers.
Monetization. RevenueCat. The app asks whether you're entitled and never looks at a receipt. Prices come from StoreKit rather than being typed into the source.
Cards are generated once and served to everyone. I costed the alternative: generating per user at feed time runs $3 to $16 a month per person against $4.19 of net revenue, which is a business that loses money on every customer it gets. Pre-generated, twenty cards a day covers everyone who will ever use it for a flat $19 a month. All the personalisation is in the ranking instead.
Challenges we ran into
The free tier gave away everything. The rule is that a card is spent when you answer its question, not when it scrolls past, so nobody can thumb-flick through their whole allowance in fifteen seconds. I implemented that as a rule about counting and forgot it was also a rule about access. The answer button refused correctly while the pager still held every card the server had sent. You could read the entire corpus by never tapping an option. The prose is most of the product and only the question was gated.
Seven of ten topics opened onto a blank screen. The feed endpoint had no way to ask for a single topic, so the client asked for a normal page and filtered it locally. A page is twelve cards spread across ten topics, so a focused topic gets one or two and usually zero. A friend found this about four seconds after I handed him my phone.
Seven builds to get one app submitted. No in-app account deletion, which is guideline 5.1.1(v) and a real risk for an app that quietly creates an anonymous account. A claim of iPad support I'd never tested. Nine strings rendering as PROFILE.DATA.HEADER, which I only caught by pulling frames out of the video Apple asked for. And deletion that removed the server row and the session but left the free-card counter in local storage, so after deleting your account the topic list still counted down free cards for an account that didn't exist.
Accomplishments that we're proud of
Hundreds of cards, and 44% of them in the five topics almost nobody else writes about. 237 automated checks. A scheduler that runs inside the database. A content pipeline whose cost doesn't move when user count does.
And a paywall that only promises things the app can actually do. Two of its five claims weren't true at one point — an expansion feature that told paying subscribers "not ready", and graded written answers when there's no text input anywhere in the app. Both sit behind feature flags now and the paywall builds its list from those flags, so the copy can't drift away from what shipped.
What we learned
A rule can be right and its implementation can do the opposite. "Spent on answering" is the correct rule and it produced a free tier that gave the whole product away.
Do the arithmetic before arguing. Dropping the price from $9 to $4.99 barely changes the margin percentage but roughly doubles how many people I need for the same money. That stopped being an opinion once I wrote it down.
What's next for Delta: AI Engineering
The capacity for thousands more cards is already built — 200 licence-checked subtopics across five tiers and four angles. Cards are just rows, so publishing more doesn't need an app update.
Then the free allowance moves to the server, where it should have been from the start. Right now it survives quitting the app but not deleting it.
After that: Sign in with Apple, push notifications at a time you pick, and the go-deeper expansion that's been sitting behind a feature flag.
Built With
- anthropic
- deno
- edge-functions
- fsrs
- ios
- pgvector
- plpgsql
- postgresql
- python
- revenuecat
- row-level-security
- spaced-repetition
- storekit
- supabase
- swift
- swift-concurrency
- swiftui
- uv
- widgetkit
Log in or sign up for Devpost to join the conversation.