Skip to content

feat: Phase 3 — community, desktop, themes, and expanded content - #4

Merged
iagommendes merged 2 commits into
mainfrom
cursor/phase3-community-8eb5
Jun 29, 2026
Merged

iagommendes merged 2 commits into
mainfrom
cursor/phase3-community-8eb5

Conversation

@iagommendes

Copy link
Copy Markdown
Owner

Summary

Implements Phase 3 — Comunidade e Escala from the architecture roadmap.

3.1 App Desktop (Tauri 2)

  • src-tauri/ wrapper around the Vite build
  • pnpm tauri:dev / pnpm tauri:build scripts
  • GitHub Actions workflow .github/workflows/desktop.yml (Linux build)
  • rust-toolchain.toml pins Rust 1.88 for reproducible builds

3.2 Sistema de Temas

  • ThemeSchema in @coderkeys/schemas
  • 3 built-in themes: default-dark, default-light, dracula
  • Settings page: appearance (light/dark/system) + color palette selector
  • Dexie migration v2 for colorTheme persistence

3.3 Contribuição Automatizada

  • CONTRIBUTING.md + docs (ADDING-LOCALE, ADDING-THEME, ADDING-TRACK)
  • GitHub Issue Forms (new lesson, new locale)
  • PR template with content checklist
  • Content preview bot on PRs (.github/workflows/content-preview.yml)

3.4 Novos Tracks

  • devops — Docker, kubectl, Terraform, shell
  • data-science — Python, SQL, pandas, numpy
  • legal-translators — bilingual legal vocabulary
  • 60 lessons total (en-US + pt-BR)

3.5 Internacionalização

  • es-ES UI locale (full i18n parity)
  • Track metadata in es-ES
  • RTL CSS readiness ([dir='rtl'] rules)

3.6 Performance e Qualidade

  • Playwright E2E: catalog → lesson → complete flow
  • Engine benchmark test (< 1ms per keystroke)
  • CI job for E2E tests
  • Fix: Enter key maps to \n in lesson sessions

Verification

pnpm typecheck
pnpm test
pnpm validate-content   # 60 lessons
pnpm check-i18n         # en-US, pt-BR, es-ES
pnpm build
pnpm test:e2e
pnpm tauri:build        # requires Rust 1.88+

Phase 3 completion criteria

  • Desktop app (Tauri)
  • Contribution documentation
  • 50+ lessons in 2 languages (60 lessons, en-US + pt-BR)
Open in Web Open in Cursor 

Deliver Phase 3 of the CoderKeys roadmap: Tauri 2 desktop wrapper,
theme system with three built-in palettes, es-ES UI locale, contributor
infrastructure (CONTRIBUTING.md, issue forms, PR template, content preview
CI), three new tracks with 30 lessons (60 total), Playwright E2E tests,
and engine keystroke benchmark.

Co-authored-by: Iago Mendes <iagommendes@gmail.com>
@iagommendes
iagommendes marked this pull request as ready for review June 29, 2026 19:20
- Run pnpm build before Playwright E2E so vite preview finds dist/
- Write content preview to a file instead of interpolating markdown
  into github-script (backticks in lesson tables caused SyntaxError)
- Pin desktop workflow to Rust 1.88 matching rust-toolchain.toml

Co-authored-by: Iago Mendes <iagommendes@gmail.com>
@github-actions

Copy link
Copy Markdown

CoderKeys content preview

Total lessons in repo: 60

Changed content files: 36

Lessons in this PR

ID Track Locale Difficulty Preview
001-pandas-read data-science en-US 2 import pandas as pd df = pd.read_csv('data.csv', parse_dates=['created_at'])
002-sql-select data-science en-US 2 SELECT user_id, COUNT(*) AS events FROM analytics.events GROUP BY user_id;
003-list-comprehension data-science en-US 2 values = [x * 2 for x in range(10) if x % 2 == 0]
004-numpy-array data-science en-US 2 import numpy as np arr = np.array([[1, 2], [3, 4]], dtype=float)
005-matplotlib-plot data-science en-US 3 import matplotlib.pyplot as plt plt.plot(x, y, label='trend') plt.legend()
001-pandas-read data-science pt-BR 2 import pandas as pd df = pd.read_csv('dados.csv', parse_dates=['criado_em'])
002-sql-select data-science pt-BR 2 SELECT usuario_id, COUNT(*) AS eventos FROM analytics.eventos GROUP BY usuario_i…
003-list-comprehension data-science pt-BR 2 valores = [x * 2 for x in range(10) if x % 2 == 0]
004-numpy-array data-science pt-BR 2 import numpy as np arr = np.array([[1, 2], [3, 4]], dtype=float)
005-matplotlib-plot data-science pt-BR 3 import matplotlib.pyplot as plt plt.plot(x, y, label='tendencia') plt.legend()
001-docker-run devops en-US 2 docker run -d --name web -p 8080:80 nginx:latest
002-docker-compose devops en-US 2 docker compose up -d --build docker compose logs -f api
003-kubectl-get devops en-US 2 kubectl get pods -n production -l app=api --watch
004-terraform-plan devops en-US 3 terraform init terraform plan -var-file=prod.tfvars
005-shell-pipeline devops en-US 2 curl -s https://api.example.com/health
001-docker-run devops pt-BR 2 docker run -d --name web -p 8080:80 nginx:latest
002-docker-compose devops pt-BR 2 docker compose up -d --build docker compose logs -f api
003-kubectl-get devops pt-BR 2 kubectl get pods -n production -l app=api --watch
004-terraform-plan devops pt-BR 3 terraform init terraform plan -var-file=prod.tfvars
005-shell-pipeline devops pt-BR 2 curl -s https://api.example.com/health
001-contract-clause legal-translators en-US 3 The parties agree that liability shall be limited to direct damages arising from…
002-privacy-term legal-translators en-US 2 Personal data shall be processed lawfully, fairly, and in a transparent manner i…
003-notary-term legal-translators en-US 3 The notary public certifies that the signatory appeared in person and acknowledg…
004-litigation-term legal-translators en-US 3 Plaintiff moves this Court for summary judgment on the grounds that no genuine d…
005-ip-term legal-translators en-US 2 Licensee shall not sublicense, assign, or transfer any rights granted under this…
001-clausula-contrato legal-translators pt-BR 3 As partes concordam que a responsabilidade será limitada a danos diretos decorre…
002-termo-privacidade legal-translators pt-BR 2 Os dados pessoais serão tratados de forma lícita, leal e transparente em relação…
003-termo-cartorio legal-translators pt-BR 3 O tabelião certifica que o signatário compareceu pessoalmente e reconheceu a exe…
004-termo-litigio legal-translators pt-BR 3 O autor requer julgamento antecipado sob o fundamento de inexistência de controv…
005-termo-pi legal-translators pt-BR 2 O licenciado não poderá sublicenciar, ceder ou transferir quaisquer direitos con…

Metadata changes

  • content/manifest.json
  • content/tracks/data-science/_meta.json
  • content/tracks/devops/_meta.json
  • content/tracks/legal-translators/_meta.json
  • content/tracks/programmers/_meta.json
  • content/tracks/technical-writers/_meta.json

@iagommendes
iagommendes merged commit be7f4f7 into main Jun 29, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants