If you've searched the App Store for a reliable third-party QWERTY keyboard on iOS, you know how that ends. Some are abandoned. Some are ad-riddled. Some feel like they were ported from Android and never touched again. The good ones are the ones that don't ship features so much as they don't crash.
The system keyboard is fine. It's fine because Apple has been iterating on it for fifteen years. Nobody else has. Third-party keyboards on iOS are a graveyard.
I'm building one that isn't. It's called Diction. Most people know it as a voice keyboard, and that's what I lead with, but under the hood it's a serious low-level QWERTY project too. This post is about that half of it, because that's the half nobody talks about.
Why third-party QWERTY on iOS is a graveyard
Building a good keyboard extension on iOS is hard. There's a strict memory ceiling. There's a permission dance the user has to opt into. There's no keychain access, no meaningful background work, and the extension can be killed the moment iOS decides it needs the RAM. Most keyboard makers ship a first version to check the box, then abandon it once they see how much work maintaining it takes.
The result is what you see on the App Store today. Every third-party keyboard I've tried on iOS fails on at least one of these:
- Speed. You type a letter, the letter arrives. That's it. If there's a hitch you can feel, the keyboard is broken. Half the ones I've tried have a visible delay on every keystroke.
- Predictability. If you correct the same word back three times, that word should be yours. The keyboard should stop fighting you. Most never do. You fight the same wrong correction for a year.
- Recovery. iOS keyboard extensions are memory-constrained. Bad ones freeze under pressure. When you rapid-switch between apps, half the third-party keyboards on the store will lock up until you kill and reopen the host app.
- Autocorrect that isn't from 2014. Fix the obvious typos. Split words that ran together. Complete contractions. Get accents right in Spanish, Portuguese, French, and German. Don't rewrite proper names.
- Learning. The keyboard should learn how you type. Every keyboard I've used treats every user the same forever.
Most third-party keyboards nail one of these. A few nail two. None I've found nail all five. And that's before you get to the smaller stuff: callout jitter, suggestion strips that reset after every backspace, stuck spinners with no cancel button, iPad layouts that look like a stretched iPhone.
Diction as a QWERTY project
I started Diction as a voice-first keyboard. The pitch was "tap the mic and skip the typing". But the moment I shipped it, I hit the obvious problem. Sometimes you can't dictate. You're on a train, in a meeting, holding a coffee. And when that happens, you fall back to typing. If the typing side is bad, the whole app is bad.
So I stopped treating the QWERTY as a fallback and started treating it as a first-class project.
Nothing off the shelf. No third-party autocorrect library. No open-source engine wrapped in a thin layer. Not the built-in text checker Apple ships. Every part of the QWERTY side, the autocorrect engine, the learning layer, the correction logic, the suggestion pipeline, is written from scratch. In C++. Inside the keyboard extension.
Thousands of hours of engineering have gone into it. Months of building, tearing down, rebuilding. Real user typing patterns measured, argued with, and worked into the engine one commit at a time. Ten major releases so far. And I'm not close to done.
I'm not going to walk you through the internals. Two reasons: it's not the interesting part for a reader, and I'd rather keep a working autocorrect engine on iOS as a moat than watch it get cloned. What matters for you is what it does.
The comparison
Here's what I mean by "better experience" in specifics. On the left is what most third-party QWERTY keyboards on iOS do. On the right is what Diction does.
| Situation | Most third-party keyboards | Diction |
|---|---|---|
| You type "dont" | Leaves it as "dont", or worse | Completes it to "don't" |
| Your thumbs collide and you type "helloworld" | Autocorrects to "hello" or leaves the mash | Splits it into "hello world" |
| You keep correcting the same word back | Keyboard changes it back every time forever | After three corrections, the word is yours |
| You type in Spanish, Portuguese, French, German | Accents land in the wrong place or not at all | Accents land where they belong |
| You rapid-switch between apps ten times | Keyboard freezes; you kill the host app | Keyboard stays responsive |
| A background operation gets stuck | Spinner forever, no cancel | You can cancel it |
| You type fast | Key callouts flash and jitter | No flash, no jitter |
| iPad | Stretched iPhone layout, wrong-sized emoji | Proper iPad layout, globe key, right-sized emoji |
| Suggestion strip after backspace | Suggestions vanish or reset randomly | Suggestions stay coherent |
| Voice-to-text | Not there, or bolted on | First-class, built into the same keyboard |
None of these are big alone. Together they're the difference between a keyboard you tolerate and a keyboard you actually use.
What "intelligent" means in practice
Some concrete things the keyboard does that the ones you've tried probably don't:
- If you type two words that ran together because your thumbs collided, it splits them.
- If you type a contraction with the apostrophe missing, it completes it.
- If you're typing in Spanish, Portuguese, French, or German, accents land where they belong.
- If Diction autocorrects a word wrong and you correct it back, it remembers. Correct it back three times and that word is yours forever.
- The suggestion strip sits above the keys. Tap one to accept. Don't tap and the top suggestion goes in on space.
That last one is the piece I care about most. Every typing keyboard I've used will fight you on the same wrong correction forever. Diction stops fighting.
What "fast" means in practice
Fast is invisible until it's not. When you feel a keyboard, something is wrong.
The keyboard doesn't jitter as you type. The key callouts don't blink or flash. When you rapid-switch between apps, the keyboard doesn't freeze the way most extensions do. If a background operation gets stuck, you can cancel it instead of watching a spinner.
Every improvement had to earn its place on device. If a change made autocorrect smarter but the keyboard slower, it didn't ship. If a fix worked in English but broke Portuguese, it didn't ship.
That's a slow way to build. It's also the only way you get to a keyboard that stops annoying you.
Why I care so much about a keyboard
There's a bigger picture here that I think about a lot.
The keyboard is the layer between you and everything you write. It's the layer between you and every message you send. And increasingly, it's the layer between you and every AI you talk to. Every prompt you type into ChatGPT or Claude goes through your keyboard first. Every voice note you dictate to an AI assistant goes through some form of input. That layer matters more every year.
Every voice AI tool right now treats the keyboard as an afterthought. They build clever AI features and bolt them onto whatever keyboard the user already has. The keyboard itself, the thing you actually touch, gets no attention.
I think that's the wrong bet. The keyboard is the thing. If you own the keyboard, you own the moment where a human decides what to say. You own the moment where intent turns into text. That's what I'm building Diction to be.
QWERTY that stays out of your way. Voice that works the moment you want to talk instead of type. AI features that live inside the keyboard, not in a separate app you have to switch to. All the same product, all the same tap.
That's what the thousands of hours are for. Not for a keyboard that types letters. For the keyboard you want in your pocket for the next decade.
The voice half
Since most people show up expecting a voice keyboard, here's the short version. Tap the mic. Talk. Text lands in whichever app you're in. On-device works offline forever, cloud is faster and handles seven European languages up to six times faster than what I had before. Self-hosted works if you run your own server.
The voice and the QWERTY are the same app. Whichever you feel like using in the moment, Diction has that side taken care of.
The pitch
If you've been searching the App Store for a third-party QWERTY keyboard that actually feels reliable on iOS, this is the one I'd try. Free trial, on-device mode is free forever, cloud is a subscription if you want the fast dictation.
I've been building this for four months, ten major releases in. The typing side is finally at a place where I use it every day without wishing it were better.

Top comments (0)