Sageland — overview
Sageland 🌿
O que é: plataforma onde experts criam "Duolingos" do próprio conteúdo — trilhas de micro-lições gamificadas com XP, ofensiva e ligas — e vendem o acesso (assinatura mensal ou preço único por curso).
Modelo de receita: split 90% criador / 10% Sageland, na origem (subconta Asaas por criador). Primeira lição sempre grátis.
Links
- Prod (landing): https://sageland.app (VPS Hermes, nginx + certbot,
/var/www/sageland) - Repo: https://github.com/kodama1/sageland (privado, org kodama1)
- DNS: GoDaddy, A
@→ 187.127.24.217
Brand
Tema claro fixo (decisão do Marcus). paper #F8F7F0 · ink #20301F · moss #2E7D4F · sage #E6EFDC · honey #F2B84B · coral (só erro). Bricolage Grotesque + Figtree. Cantos arredondados, botões chunky 3D, trilha pontilhada. Logo folha aprovada.
Stack
Monorepo Bun: apps/web (Next 16, server actions), apps/api (Elysia), packages/db (Drizzle/Postgres), packages/auth (Better Auth). Postgres+Redis via compose.
Arquitetura chave: publish → snapshot imutável versionado (course_releases); scoring server-side contra snapshot; replay sem XP duplo; streak por dias SP; pagamentos Asaas com split na origem, subconta white-label por criador (apiKey AES-256-GCM no banco), checkout via invoice hospedada (sem PCI), webhook token-gated libera enrollment idempotente.
Status (2026-07-16): MVP COMPLETO 🎉
Todas as 7 issues MVP fechadas, CI verde, validado E2E no browser + sandbox Asaas:
criar conta → montar curso no /studio → publicar → /explore → visitante joga lição grátis → compra em /c/{slug}/checkout (Pix/cartão, split 90/10) → webhook libera acesso → aluno joga com XP/ofensiva → criador vê venda (R$17,10 de R$19) e saca via Pix.
Sandbox validado: subconta criador criada via UI, assinatura com split registrado na wallet, webhook → enrollment, paywall→desbloqueio, dashboard de vendas.
Pendências pra produção (issue #6 comment tem detalhes)
- Deploy do app no VPS (app.sageland.app) — hoje só a landing tá live
- Registrar webhook no Asaas com URL pública + token
- Trocar pra chave de produção (
ASAAS_BASE_URL=https://api.asaas.com/v3) - ⚠️ Gotcha env: chave Asaas começa com
$→ escapar\$no .env (dotenv-expand do Next zera silenciosamente) - Post-MVP: #8 ligas/lembretes, #9 IA gera lições, #10 analytics, #11 CI deploy landing
Pagamentos
Ver projects/sageland/payments-decision.md. Asaas sandbox ativo (conta PJ MEI do Marcus). Pix Automático futuro (CNPJ 6+ meses). Cartão D+32 — UX do criador mostra separado.
Histórico
- 2026-07-14: conceito → landing live + repo + issues + DNS + gateway decidido, mesmo dia
- 2026-07-15: auth, modelo de dados, studio, player, marketplace
- 2026-07-16: pagamentos Asaas E2E → MVP completo