- Go 92.6%
- JavaScript 1.9%
- Astro 1.8%
- HTML 1%
- CSS 0.9%
- Other 1.6%
|
|
||
|---|---|---|
| .github/workflows | ||
| .husky | ||
| assets | ||
| backend | ||
| deploy | ||
| frontend | ||
| packages/contracts | ||
| samples | ||
| scripts | ||
| .editorconfig | ||
| .env.example | ||
| .gitignore | ||
| AGENT.md | ||
| AGENTS.md | ||
| LEEEEEEEME_SI_LLEVAS_MUCHO_SIN_TOCARME.md | ||
| Makefile | ||
| nvim.log | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| turbo.json | ||
Ludus
Ludus is a fictional iGaming SaaS monorepo built for portfolio work and technical experimentation. It is not intended for production use or real-money gambling.
Monorepo Structure
backend/api Main Go backend service
frontend/public Public-facing Astro application
frontend/admin Private SvelteKit admin application
deploy Local development environment assets
packages/contracts Shared contracts, types, and validation primitives
scripts Repository automation and guardrails
Initial Stack
pnpmworkspacesturbohusky- Go for the backend API
- Astro for the public frontend
- SvelteKit for the admin frontend
Main Commands
pnpm install
pnpm dev
pnpm build
pnpm lint
pnpm test
pnpm check
pnpm format
Database Migrations
The PostgreSQL schema is now managed with versioned SQL migrations in backend/migrations.
Ludus uses golang-migrate with pure SQL and remains compatible with pgx.
Runtime queries use DATABASE_URL, while the migrations CLI should use MIGRATIONS_DATABASE_URL.
First-time local setup:
docker compose --env-file deploy/.env.local -f deploy/docker-compose.yml up -d
make migrate-up
Schema changes:
make migrate-create NAME=add_example_table
make migrate-up
Notes
.env.exampleis tracked as a template.- Real
.envfiles are ignored and checked by repository guard scripts. - The current setup is intentionally minimal to keep future iterations easy.
Security Guardrails
pnpm check:no-real-envblocks commits or pushes that include real.envfiles such as.env,.env.local, or.env.production.AGENTS.mdlimits assistants to.env.exampleand.env.sampletemplates only.- In GitHub, enable required status checks for the repository validation workflow before merging.
- Enable secret scanning and push protection when available for the repository or organization.
- If you use assistant tooling such as Copilot, exclude sensitive paths from assistant context where the platform supports content exclusions.
JJ-CLI as client Git
jj git fetch jj rebase -d main@origin
trabajo
jj st jj diff
guardo
jj describe -m "mensaje"
limpio si hace falta
jj restore archivo
subo
jj git push --bookmark main
Flow
jj new main
1
...cambios... jj commit -m "feat: market"
2
...cambios... jj commit -m "test: imports"
3
...cambios... jj commit -m "feat: wallet"
If you want push to main
jj bookmark set main -r @- jj git push --bookmark main --remote origin
If you want push to a new branch
jj bookmark create feature/wallet-stack -r @- jj bookmark track feature/wallet-stack jj git push
