Why this exists
My twin daughters are 18 months old. That is an incredible age for language — first words arriving daily, colors starting to stick, letters beginning to register as distinct shapes that mean something. It is also precisely the age where the default media diet on any mainstream platform is terrible. Autoplay pulls them off a gentle counting video and into whatever the algorithm thinks maximizes watch time. Thumbnail design is optimized for the attention of the nearest adult, not the developmental stage of a toddler.
I do not trust the “kids mode” switch on any major platform. The setting is a layer on top of a product whose core objective is to keep whoever is watching watching. The only safe thing to do with that is not use the product. What I wanted for the girls was the opposite: a tiny, curated, Web 1.0-shaped space built around the three things they are actually learning right now — speaking, colors, and letters / ABCs.
Twin Talk is that. A hand-picked directory tuned for a toddler's developmental stage. A DNS wall that blocks everything else at the network level. A browser that cannot reach anything outside the list. No autoplay, no recommendations, no infinite scroll. Just a handful of things that support first words, the names of colors, and the alphabet, with big friendly tiles a kid can slap with a hand to open.
How it works
Two enforcement layers. DNS blocks anything off-list at the network, the browser is a thin shell that only renders sites from the directory. Belt and suspenders, because one layer is never enough.
Layer 1: DNS-level allowlist.I run a Pi-hole instance on the home network with a custom upstream config that only resolves explicitly-allowed domains when the request comes from one of the kids' devices. Everything else returns NXDOMAIN. A kid's tablet that somehow ends up in YouTube's ad network can't load a single ad domain. A link to an unfamiliar site dies at the DNS layer before it ever opens a connection. The list of approved domains lives in a small YAML file I edit when they ask for something new.
Layer 2: the browser shell.The kids don't open “Chrome.” They open Twin Talk, an Electron-based browser shell I built that renders the directory as a grid of giant colorful tiles, each a site they can go to. Inside a tile, the browser will only navigate to URLs whose domains are on the same allowlist the DNS layer enforces. Any link that points off-list is intercepted and replaced with a little cat drawing that says “that link goes somewhere else, go back home.” They think the cat is funny.
The directory
The directory is small on purpose — maybe 25 entries total. A toddler doesn't need 80 options; 80 options is a trigger for decision fatigue and screen-time sprawl. The directory fits on one screen as a grid of oversized tiles, each one a simple high-contrast icon (cat · blue · A · 1) that a pre-literate kid can recognize and tap. None of the entries have advertising, autoplay, recommendations, or anything trying to pull them to the next thing.
| Category | Why it's in there | Example sources |
|---|---|---|
| First words / speech | Naming, repetition, single-word labels | Ms Rachel (curated episodes), Super Simple Songs, Dave and Ava |
| Colors | Color naming with high-contrast visuals | Color flashcard pages, Blippi color episodes (curated) |
| ABCs / letters | Letter recognition, phonetic sounds, not writing | StoryBots ABCs, Leapfrog letter factory clips |
| Counting / numbers | 1–10 recognition, simple quantity concepts | Numberblocks, counting songs on Super Simple |
| Animals / sounds | Early vocabulary anchored in familiar objects | Old MacDonald clips, zoo-sound flashcards |
| Nursery songs | Audio repetition is the fastest path to speech | Super Simple Songs, Cocomelon (pre-selected tracks only) |
The hard part of curation is not adding sites. It is saying no to sites that look toddler-friendly on the surface but have a surprising back door — a music video channel whose “up next” is unvetted, a colorful app that turns out to have microtransactions, a counting game buried inside an ecosystem that cross-promotes a dozen other apps. I pass on a lot of sites that would have been easy yeses with any loose criterion. It is easier to stay strict than it is to un-show a website to an 18-month-old.
The counter-intuitive detail
Everybody who builds “safe internet for kids” tools immediately reaches for machine learning — classify the content, filter the bad stuff. I tried it. It is a nightmare. Classifiers are probabilistic, they're wrong at the tail, and the tail is precisely where the edge cases you care about live. A classifier that's 99.9% accurate still lets through one thing per thousand pageviews that you really, really did not want your kid to see.
An allowlistis the only known design pattern that fails closed. Anything not on the list is blocked. If a new site shows up tomorrow that's perfect for a kid, it's blocked until I add it. That's the correct default. The cost of “they can't visit the new great kid site yet” is vastly lower than the cost of “the model mis-classified a domain and they saw something they shouldn't.”
The generalizable lesson: for anything with high-stakes edge cases, prefer an allowlist over a classifier. Allowlists are boring, maintainable, auditable, and fail in the correct direction. Classifiers fail in whichever direction their training data happened to encode, which is not a direction you chose.
What it is deliberately not
- Not a parental-control app.No app on the kids' devices. The network-level DNS wall works for every device on the LAN; the browser shell just makes the experience pleasant.
- Not a classifier.See above. Nothing infers what's “safe.” Everything on the list got there because I put it there.
- Not a walled garden with in-app purchases.Nobody's making money here. If they ask for a new site, I add it if it fits. No leaderboard, no rewards, no gamified screen-time economy.
- Not indexed by Google.The directory is not on the public internet. It only lives on devices in our house. If the kids mention Twin Talk to a friend at school, the friend can't find it. Good.
What grows with them
The directory is designed to evolve as the girls do. The current set is tuned for 12–24 months: first-words content, color naming, alphabet recognition, simple counting. The next tier adds story readalouds, simple cause-and-effect animations, early-phonics content. The tier after that (roughly 3–4 years) adds question- answering sites like DK Findout and Britannica Kids, short educational videos, and the first truly interactive learning games.
The architecture supports this by version: each age band is its own tile set, toggled by which profile is active on the tablet. A two-year-old and a four-year-old in the same household don't see the same directory. The same DNS wall protects both. The tiles just change shape.