The Mexican Spanish Codex · v1.12

¡ÓRALE!

Illuminated manuscript meets Mexican arcade.

A fully local, single-file HTML app that teaches conversational Mexican Spanish in 26 weeks. No server. No accounts. No dependencies. Open one file and go.

1 HTML file 0 dependencies 968-card SRS deck 100% offline MIT licensed
The premise

Most language apps want an account.
This one wants a double-click.

¡ÓRALE! is a single ~200 KB orale.html. It runs from your disk, from a USB stick, or from GitHub Pages — with the whole 26-week course, its spaced-repetition engine, audio, games and progress-saving living inside that one file. Nothing phones home. Everything works on a plane.

0
KB, one file
0
Dependencies
0
Servers / accounts
0
Week curriculum
What's inside

A whole course, densely packed.

Feature density that rivals multi-file, multi-team apps — all authored append-only inside one script.

0
SRS cards
0
Weeks · Códice
0
Listening dialogues
0
Graded stories
0
Boss battles
0
Arena mini-games
0
Ranks
0
Conjugation verbs
The method · one hour a day

Built around a daily ritual.

The app doesn't try to be your whole study plan — it's the practice layer around a proven free audio course. Sixty minutes, four moves.

25MIN
Free audio courseLanguage Transfer, then Dreaming Spanish — spoken-only grammar, no textbook.
20MIN
In-app SRS reviewThe 968-card deck with es-MX text-to-speech and a mistake-driven repair queue.
10MIN
Shadowing boothPimsleur-style: hear the native line, record yourself, compare.
5MIN
La CantinaSlang, idioms, false friends, fun facts, and a media library to keep it alive.

170 hours to conversational B1. The month 7–12 extension reaches ~350 hours / B2.

The identity

Five zones. Five moods.
One obsidian shell.

A dark manuscript case whose accent color and typography shift as you move between zones — and flips to full parchment in the Códice. The contrast is the product: each room feels like a different room.

Panel
Cempasúchil
Estudiar
Talavera blue
Arena
Rosa mexicano
Códice
Sepia parchment
Cantina
Terracotta
Profesor Anselmo · scribe & guide

"¡Órale! You return, apprentice. The ink is fresh and the codex is open — let us conjugate a verb or two before the sun sets, ¿sí?"

Under the hood

Boringly robust, on purpose.

One file, zero build.All CSS and JS inline in orale.html. No bundler, no framework, no npm at runtime. Edit it in any text editor.
Custom SM-2 spaced repetition.A hand-written ease/interval scheduler with a repair queue built from your own mistakes and surprise "Memory Raids" for retention.
Offline-first PWA.Version-aware service worker: bump one constant and stale caches retire themselves. Installs from the address bar; still runs by double-clicking from disk.
Your data stays yours.Progress lives in localStorage, with CSV / JSON export & import. No telemetry, ever.
Gated by real tests.Two Node scripts — a data linter and a headless smoke test — must pass before any change merges. A three-model team (Opus · Fable · local Qwen) builds it session by session.
The toolkit

Everything a learner reaches for.

SRS Deck

968 cards — vocabulary, phrases, slang, idioms, trabajo — spoken in es-MX, four-grade honest self-rating.

Shadowing Booth

Record your voice, replay, and compare against the native line with speed control.

Listening Lab

20 two-voice dialogues with comprehension questions, unlocked week by week.

Story Mode

Six graded narratives — one per phase — narrated paragraph by paragraph.

Arena & Bosses

Six mini-games plus timed, mixed-skill boss battles that cap each phase.

Conjugation Trainer

12 core verbs across present, preterite, imperfect and ir-a future.

Skill Tree

A five-branch RPG character sheet that levels itself from what you've already done.

The Códice

26-week curriculum with spoken-only grammar, missions and curated free links.

La Cantina

Slang, idioms, false friends, cognates, fun facts and a full media library.

The engine, in plain ink

Memory, scheduled.

Every card carries an ease and an interval. Grade it honestly and the algorithm decides when you'll see it next — minutes if you stumbled, a month if it's yours for good.

Four grades

Otra vez — forgot, back in minutes. Difícil — barely, ~a day. Bien — the interval grows. Fácil — it grows faster.

Repair queue

Your mistakes are counted and re-served first, so study time flows toward exactly what you keep missing.

Memory Raids

Surprise checks on cards you thought were mastered — the antidote to false confidence.

Mastery = 21 days

When a card's interval crosses three weeks it counts as learned. Slowly, the deck teaches you it can be trusted.

Anselmo, in the margin

"Poco, seguido, para siempre — a little, often, forever. That is how the ink sets in the mind, apprentice."

Why you come back

The grind, made a game.

A full arcade layer wraps the study loop — earned, not bought. No leaderboards to lose to; the only opponent is yesterday's you (and, in the final battle, your own Duda — your doubt).

XP & 12 ranks

From Peregrino upward — every review, game and story feeds the bar.

Streaks & pesos

Daily missions, a streak pill, and variable-reward chests to open.

Six themed bosses

El Trabalenguas, El Tragón, La Comadre… ending in La Duda herself.

Take it

Clone it. Fork it. Learn from it.

MIT licensed and self-contained. Read the whole app top to bottom in one sitting, or just open it and start studying. Built in the open by a human and a small crew of models.

orale-project/
app/orale.html          the entire application
app/manifest.webmanifest  PWA manifest
app/sw.js               version-aware offline cache
docs/DESIGN.md            design system & data schemas
docs/CHANGELOG.md         version history
tools/smoke-test.js       headless runtime gate
tools/validate-data.js    data integrity linter
LICENSE                   MIT
Profesor Anselmo · despedida

"Ándale pues — the codex is yours now. Study a little today, and a little tomorrow, and one morning you will dream in español. ¡Órale!"

¡ÓRALE! — The Mexican Spanish Codex · single-file PWA · MIT · made with cempasúchil, talavera & a lot of ink.