GrowKind World · Plataforma editorial e de cursos · 2026
Publicar um método educativo como produto digital pago, em dois idiomas.
Plataforma educativa e editorial dedicada à infância neurodivergente: livro digital com paywall, cursos por módulo, loja e conteúdo completo em dois idiomas.
- Produto
- Conteúdo pago
- Multilingue
- Cliente
- GrowKind World
- Estado
- Em produção, Stripe em modo live.
- 30
- capítulos no leitor com paywall
- 433+
- chaves de tradução PT/EN

Leitor do livro — navegação por capítulos com paywall a partir de um ponto definido.
Contexto
Um autor e educador queria publicar o seu método (RDF) e um livro de 30 capítulos como produto digital, com cursos separados para famílias e para profissionais, em português e inglês desde o primeiro dia.
O problema
Conteúdo pago tem de ficar realmente protegido — os PDFs dos cursos não podem estar num URL público — e ao mesmo tempo o leitor tem de ser agradável de usar num telemóvel à noite.
i18n "a sério" significa duas cópias editoriais completas, não etiquetas traduzidas.
O meu papel
Único developer: arquitetura, leitor, paywall, integração Stripe, entrega protegida de conteúdo, i18n e SEO.
Restrições
- Conteúdo pago realmente protegido: nenhum PDF acessível por URL público.
- Duas cópias editoriais completas, não etiquetas traduzidas.
- Leitor agradável num telemóvel, à noite, para pais cansados.
Solução
Next.js com rotas por locale (next-intl, 433+ chaves), leitor de livro com navegação por capítulos e paywall, módulos de curso servidos por rota protegida e consciente do idioma, checkout Stripe e whitelist de administradores.
O que foi construído
- BookReader com 30 capítulos, vista de leitura e ChapterNav.
- Ficheiros de curso fora de /public, servidos por /api/curso/[curso]/[modulo] após verificação de compra.
- Página do método RDF com diagrama SVG animado.
- SEO nativo do Next.js: metadata por idioma, JSON-LD, sitemap e robots.
- Loja com Printful (print on demand) e Stripe; captura de email com Brevo.
Decisões-chave
Conteúdo privado fora do bundle
Os módulos vivem numa pasta private/ lida apenas pelo servidor. O URL nunca aponta para o ficheiro; aponta para uma rota que verifica a sessão e a compra antes de responder.
Resultado
Plataforma em produção, bilingue, com vendas reais via Stripe.
O que mudaria
Servir ficheiros privados por rota autenticada foi simples e robusto; a parte cara foi manter as duas cópias editoriais sincronizadas — numa próxima versão o conteúdo viveria num CMS com fluxo de tradução.
Stack
Next.js 15 · TypeScript · MongoDB · NextAuth · Stripe · next-intl · Cloudinary · Resend · Vercel
