Behind the Build

How I Built Spanish Spelling Test

Steve Vogt · February 2026 · 6 min read

My kids have Spanish spelling tests every Friday. The routine was always the same: I sit at the kitchen table, read a word from the list, they write it down, I read the next word, they write it down, and then we check everything together. It takes about 20 minutes per kid, requires my full attention, and my Spanish pronunciation is not great. The kids knew it too. Half the mistakes were because they could not tell what word I was trying to say.

I looked for an app that could read the words aloud and check the spelling automatically. Everything I found had one of three problems: it required a subscription, it only worked with pre-loaded vocabulary lists, or it could not handle accent marks. Spanish spelling depends on accents. "Papa" is potato. "Papa" with an accent on the second a is dad. If the app does not know the difference, it is useless for a spelling test.

Version One: Just Read the Words

The first version was laughably simple. A text box where you type or paste the word list, a Start button, and the browser's built-in text-to-speech reading each word aloud. The student types what they hear, and the app compares it letter by letter. Green for correct, red for wrong, with the correct spelling shown below.

That took maybe two evenings to build, and it immediately solved the main problem. My kids could practice without me, the pronunciation was better than mine, and the accent marks were handled correctly because the browser's Spanish TTS voices know where the stress goes.

Then the feature requests started. Not from strangers. From my wife.

PDF and Image Import

The teacher sends the word list home as a PDF or a photo of a handwritten list on the whiteboard. Typing 20 words into a text box every week is annoying. My wife pointed this out after about two weeks.

I added file import that accepts PDF, Word, Excel, CSV, images, and plain text. For images and PDFs, it uses OCR to extract the text. The tricky part was handling the messy formatting of real word lists. Teachers number them differently ("1. perro" vs "1) perro" vs "perro"), include definitions or example sentences after the word, and sometimes mix Spanish and English on the same line. The parser strips all of that and extracts just the Spanish words.

Smart accent correction was another necessity. A lot of typed word lists arrive without accent marks because the teacher typed them on an English keyboard. The import detects common words that are missing their accents and adds them. It does not always get it right, but it catches the obvious ones and saves a lot of manual editing.

Teacher Mode

A parent at my kids' school is also a Spanish teacher. She saw the app on my kid's tablet and asked if there was a way to give the same test to her whole class and see the results. There was not. So I built one.

Teacher mode generates a unique shareable link for each test. The teacher creates the word list, clicks Share, and sends the link to the class. Students open the link, enter their name, and take the test. Results stream into a live dashboard where the teacher can see each student's score, time taken, and specific words missed. Everything can be exported to CSV or printed as individual student reports.

The test results are stored on Cloudflare for 24 hours and then automatically deleted. No student accounts, no persistent data, no COPPA concerns. The teacher creates a new link for each test, and when the grading window closes, the data is gone.

Offline Support

This mattered more than I expected. The app is a progressive web app that works fully offline once installed. My kids use it on an iPad in the car, at their grandparents' house where the Wi-Fi is unreliable, and on the school bus. The text-to-speech engine is built into the browser, so it does not need an internet connection to read words aloud. Test history is stored locally and syncs when connectivity returns.

School-issued tablets often have filtered or restricted internet access. A fully offline app sidesteps that entirely. Install it once, and it works whether the network cooperates or not.

The Voice Problem

Browser text-to-speech quality varies wildly across devices. On a modern iPhone or Mac, the Spanish voices sound natural. On an older Android tablet or a Chromebook, they can sound robotic enough to confuse kids. I added multiple voice options (US Spanish, Mexican Spanish, Castilian) so users can pick whichever sounds best on their device. There is also a speed control, because the default pace is too fast for younger students who are still learning to process spoken Spanish.

I briefly considered using an external TTS API for higher quality voices, but that would break offline support and add a recurring cost. The browser voices are good enough for spelling tests, and they are free and private.

Smallest Project, Most Users

This is the smallest project in the collection by lines of code, and it is probably the most frequently used. Spelling tests happen every week in thousands of classrooms. The problem is specific, the solution is simple, and the app does exactly one thing. It reads words, you spell them, it checks your work. That focus is probably why it works.

It is also the project my kids give me the least credit for. They think it has always existed, like Google or the microwave. I consider that a compliment.

Try Spanish Spelling Test
Free. No signup. Works offline.
Open the App
More Projects
Finance
BridgeToFI
FIRE planning calculator
Rewards
Churning Hub
Credit card bonus tracker
Travel
Delta Price Tracker
Flight price drop alerts
Shopping
Amazon Price Tracker
Post-purchase price monitoring