For years I have watched AI turn ordinary people into one-person companies. Artists, shop owners, storytellers. The secret handshakes of my trade became tools anyone could pick up.
Almost anyone.
That "almost" is the whole reason AbleMakers exists. While that door swung open for the rest of us, people with Down syndrome and other disabilities were still being offered the same old thing: programs that babysit instead of build.
AbleMakers
is a free, no-login learning platform that teaches AI and maker skills to people with Down syndrome and other intellectual disabilities, built to cognitive-accessibility guidance rather than to WCAG alone.
So AbleMakers is me giving away every trade secret I have, rebuilt into small, patient, joyful quests. Real projects. Real work with their name on it. Free for every learner, forever, funded by people who believe what I believe.
This is how I built it.
How long did AbleMakers take to build?
AbleMakers went from an empty repo to a live site taking donations in about two and a half days. That budget covered a six-module curriculum, optional cloud sync, a neural-voice audio pipeline, printable certificates, and a fog-of-war adventure map, built with an agentic, test-driven workflow where every feature started as a failing test.
I am not saying that to brag about speed. I am saying it because the constraint shaped every decision.
When you build that fast, "clever" is the enemy. Boring, lean, and swappable wins. Which is why the first real story is about the stack I threw away.
The spec I threw away
The original AbleMakers design doc planned a serious stack: Clerk for auth, Neon Postgres with Drizzle for the database, Sanity as a CMS for the quests, a live AI buddy on an AI gateway, and Mux for video. Almost none of it shipped.
It was a good plan for a funded startup. Here is what replaced it, and why.
| In the spec | What actually shipped | Why the swap |
|---|---|---|
| Clerk auth and Neon Postgres with Drizzle | Firebase, and only as an optional mirror | Progress lives in the browser first. The most vulnerable learner, the one on a borrowed phone with no email, gets the full experience with no account. |
| Sanity CMS for the quests | Typed local content behind an async catalog | The quests are TypeScript files served through a deliberately CMS-shaped interface, so a real CMS can slot in later without touching a single component. |
| Live AI buddy on an AI gateway | Scripted practice chat, zero API calls in the player | For a population that trusts confident-sounding machines, deterministic and offline beat impressive every time. |
| Mux for video | Nothing yet | Real step videos are still on the list, and no shipped quest depends on them. |
Two of those swaps are instincts I keep landing on elsewhere. Serving quests through a CMS-shaped interface with no CMS behind it is the same shape-first bet as ResolveMesh, which launched with a deliberately empty catalog. And refusing to let a model improvise at the learner is the same call I made when I would not let AI write the itinerary in Ember Coast.
The lesson I keep relearning: the right architecture for a mission is the one that removes surprises, not the one that shows off.
Why is cognitive accessibility the product here, not a checklist?
Cognitive accessibility drives every design decision in AbleMakers because WCAG conformance alone is explicitly not enough for makers with intellectual disabilities. The standard I built to is W3C COGA, the cognitive-accessibility guidance, and its rules are enforced by the code rather than by a style guide.
| The rule | How the build enforces it | What it protects against |
|---|---|---|
| Grade 2 to 3 reading level, every sentence 15 words or fewer | A test in the suite fails when a quest gets too wordy | Copy that quietly excludes the exact learner it was written for |
| No login, ever | Progress sits in a local store written to never throw and to start fresh if it is ever corrupted, and signing out never deletes anything | Account walls, lost work, shared and borrowed devices |
| No timeouts, no dead ends, nothing locked | No quest can expire mid-step and no path can trap you | Getting stuck, running out of time, needing an adult to come rescue you |
| Read-aloud on everything | Audio on every spoken string, and Atkinson Hyperlegible as the body font, a typeface designed for readers with low vision | Text that is technically visible and practically unreadable |
| No emojis, custom SVG icons only, no em dashes anywhere | Reduced motion freezes every animation, sound never carries information you need, and the mute toggle is always visible | Screen-reader noise, motion sensitivity, a device that is muted or has no speaker |
Plain language is not a guideline here, it is CI.
None of that is decoration. Every rule traces back to a research finding about how this specific group of people actually uses technology. When the person on the other side is under stress or already under-served, interface friction stops being cosmetic and becomes the product itself, which is the same argument I made building DateSafe, where a millisecond of extra spinner counts.
How do you ship neural voice without a runtime API key?
AbleMakers generates every spoken line at build time instead of calling a text-to-speech API while a learner is using the app. A script walks the entire curriculum, renders one MP3 per spoken string in three voices, and commits the audio next to a manifest.
The kids see those voices as "Sunny," "Cozy," and "Storyteller." The filename is a hash of the voice and the text, so re-running only pays for strings that actually changed, and the OpenAI key is read by that one script and never touches the deployed app. Vercel builds it with no key and zero per-play cost. If the audio ever fails, the browser's built-in speech takes over automatically.
Pushing the expensive work to build time and leaving the runtime dumb is the same pattern behind the mostly-automated newsroom I built for ViralVault.
Warm voices, one-time cost, no runtime secrets. That is the kind of trade I love.
Designing for trust, and the quest where the AI is wrong on purpose
The most important quest in AbleMakers teaches that the AI is sometimes wrong, and it does it by staging the failure. In the scripted practice chat, the assistant confidently says "Spiders have six legs."
The next step tells the learner: the AI said six, spiders really have eight, ask it again. The learner types "Are you sure? Please check again," and the AI replies, "Good catch. I was wrong." The quest ends with a line I think about a lot: "You are smarter than a mistake."
That one interaction is the entire philosophy. Teach a trusting person that the confident machine hallucinates, and that checking it is a superpower, not a failure.
That self-review, by the way, is one of my favorite artifacts in the repo. I ran a brutal critique pass on my own work and it opened with "the path is a facade right now." A learner who finished the intro would fall off a cliff into a "quests are being built" notice, which is exactly the services-cliff these families are fleeing when school ends. Grading my own homework and finding it failing is how it got good.
What did fifteen disability-run businesses teach the Make and Sell module?
The Make and Sell module in AbleMakers is built on a study of fifteen real businesses run by people with intellectual disabilities, from John's Crazy Socks to Collette's Cookies. I refused to write those quests on assumptions, because getting them wrong could genuinely hurt someone.
Three rules came out of that research and shaped the whole module:
- The co-pilot model. Every step that touches money, accounts, or strangers explicitly says: do this part with a person you trust. The learner owns the product, the making, and the story. A trusted person helps with the risky edges.
- Never state benefits numbers. The disability benefits cliff is real and the numbers change yearly, so the curriculum always routes families to a free benefits counselor instead of quoting figures that could cause real harm.
- Scams are a designed-for risk. Ending a course with "now put your product on the internet" without a trusted-person checkpoint is creating exposure, so the online-shop quest sits last, behind a family gate, with a dedicated safety lesson before it.
There is a line from Mark Cronin, who co-founded John's Crazy Socks with his son, that I kept taped to the top of my head the whole time: "Without a solid ecommerce business, we would be nothing more than a cute story." Story earns the click. Reliable follow-through earns the life.
Where it is now, honestly
AbleMakers is live and taking donations, structured deliberately as gifts rather than sales. Six modules, nineteen quests, from "say hello to AI" all the way to "start your tiny business." Free for every learner, forever.
It is not a registered nonprofit yet, so I say so plainly on every page that touches money: gifts are not tax-deductible, and until it has its own legal entity, this is my personal commitment, not a charity's. The 501(c)(3) is a decision for when donations are flowing steadily.
Still on the list: real step videos, a live AI buddy for learners who are ready for it, and a public Wall of Makers so finished work can be celebrated out loud.
Making things is how human beings earn pride, and pride is not a luxury. It is a birthright. If you want to see what that looks like, try a quest or sponsor a learner. It starts with one maker finishing one thing and holding up something real.
Questions people actually ask
- What is AbleMakers?
- AbleMakers is a free learning platform that teaches AI and maker skills to people with Down syndrome and other intellectual disabilities. It runs as a set of small quests that each end in a real finished project with the learner's name on it. There is no account to create and no cost to the learner, ever. It is funded by donations rather than by fees.
- Why does AbleMakers work without an account or login?
- Progress in AbleMakers is stored in the browser first, and signing in only mirrors that progress to the cloud. The reason is the most vulnerable learner: someone on a borrowed phone with no email address of their own. If a login were required, that person would be excluded before the first quest. Signing out never deletes anything, and the progress store is written to start fresh rather than throw if it is ever corrupted.
- How do you design software for people with intellectual disabilities?
- Start from cognitive accessibility guidance rather than WCAG alone, because WCAG conformance is explicitly not enough for this audience. In AbleMakers that means a grade two to three reading level with sentences of fifteen words or fewer, checked by automated tests. It also means no timeouts, no dead ends, nothing locked, read-aloud on every screen, a typeface designed for low vision, and sound that never carries information you need.
- Why generate text-to-speech at build time instead of at runtime?
- Calling a text-to-speech API while a learner is using the app costs money on every play, adds latency, and puts an API key in production. Generating the audio during the build removes all three. In AbleMakers a script renders one MP3 per spoken line in three voices and commits them, with each filename derived from a hash of the voice and the text, so a rebuild only pays for the strings that actually changed.
- How do you teach a trusting learner that an AI can be wrong?
- Show it happening, then have them correct it. In the AbleMakers practice chat the scripted assistant states confidently that spiders have six legs. The learner is told the real answer is eight and prompted to type a challenge back, and the assistant replies that it was wrong. The lesson ends on the line that you are smarter than a mistake, so checking a confident machine reads as a superpower rather than a failure.
- Is AbleMakers a registered nonprofit?
- Not yet. AbleMakers says so plainly on every page that touches money: gifts are not tax deductible, and until the project has its own legal entity this is a personal commitment rather than a charity. Filing for 501(c)(3) status is a decision for when donations are flowing steadily. Donations are structured deliberately as gifts rather than sales, and the platform stays free for every learner either way.