Um currículo de inglês que respeita o aluno.
English-atelier é um app gratuito de treinamento diário de inglês, com currículo CEFR A1→C2 estruturado em dias absolutos. Sem gamificação tóxica, sem assinatura, sem freemium — porque o compromisso é com aprender, não com reter.
- Status
- Em produção
- Usuários
- 50+
- Ano
- 2025–2026
- Stack
- React · Vite · Tailwind · Vitest
O problema
O ensino de inglês no Brasil é caro, descontínuo e otimizado para aula em grupo — não para o jeito como adultos aprendem na prática. O aluno típico cancela a escola em três meses, baixa um app duolingo-like, e em algumas semanas está preso no nível A1 “avançando” em ouro virtual.
Faltava um caminho honesto: currículo claro do A1 ao C2, com tarefas diárias finitas, que recompensasse terminar o dia e não “fazer mais cinco lições por XP”.
A abordagem
Currículo ancorado no Common European Framework of Reference (CEFR). Cada dia é uma unidade fechada — gramática + vocabulário + prática + revisão SRS — calibrada para 20–30 minutos. Sem fila infinita.
A auditoria CEFR de maio/2026 redesenhou as proporções por nível:
| Nível | Atual | Alvo | Δ |
|---|---|---|---|
| A1 | 42 | 49 | +7 |
| A2 | 57 | 70 | +13 |
| B1 | 42 | 84 | +42 |
| B2 | 28 | 84 | +56 |
| C1 | 14 | 56 | +42 |
| C2 | 0 | 35 | +35 |
Volume final alvo: ~378 dias de A1 a C2.
A estrutura de cada dia
Cada dia é um objeto simples — número absoluto, nível, tópico, seções tipadas. Esse formato é a interface entre conteúdo (Markdown) e progresso (localStorage). Mudar a forma quebra usuário; mudar o conteúdo, não.
"color:#6B6B6B">// src/data/b1-completion.js
export const b1Completion = [
{
day: 91, "color:#6B6B6B">// número absoluto — JAMAIS renumerado
level: "B1",
topic: "Zero conditional vs first conditional",
skills: ["grammar", "writing"],
estimatedMinutes: 25,
sections: [
{ kind: "explanation", file: "explanations/b1/zero-cond.md" },
{ kind: "exercise", file: "exercises/b1/zero-cond.json" },
{ kind: "srs", deck: "b1-conditionals" }
]
},
"color:#6B6B6B">// ... próximo dia: 92, 93, 94 ...
];Decisões técnicas que importam
Day numbers absolutos, jamais renumerados
Cada lição tem um número global imutável. Progresso é salvo nesse identificador. Renumerar significa apagar o caminho de quem já está nele — virou lei do projeto.
Expansão de trás para frente (C2 → A1)
Quando um nível precisa de mais dias, a expansão acontece de cima para baixo. Editar A1 quebraria o progresso da maioria; editar C2 não quebra ninguém. Custo de migration ≠ custo de usuário.
Stack vanilla, foco em velocidade
React + Vite + Tailwind. Sem backend próprio, sem auth, sem banco. Progresso em localStorage. Cada decisão arquitetural diz “este app não vai morrer de manutenção”.
Vitest verde como gate de deploy
Push no master = deploy Vercel. Testes são contrato.
git revertpara rollback — nuncareset --hardem master.
O que aprendi construindo
Construir um currículo é construir uma opinião sobre o que importa. A auditoria CEFR foi quando ficou claro que B2 e C1 estavam subdimensionados — não por preguiça, mas porque o autor (eu) é desproporcionalmente confortável neles e subestimou o esforço de quem está subindo. Currículo precisa de revisor independente, sempre.
Segundo aprendizado, mais geral: a gamificação que retém é inimiga da gamificação que ensina. Quando o app começou a parecer um jogo, eu sabia que tinha falhado. A única métrica é dia concluído; o único feedback é avançar.
Próximos passos
- →Expansão C1 (14 → ~42 dias)
- →Expansão B2 (28 → ~70 dias)
- →Criar C2 do zero (~28–35 dias)
- →SRS de longo prazo cross-nível