This project is an open-source technical simulation of a white-label iGaming platform. It is intended for educational and portfolio purposes only. - No real-money gambling is supported - No public access is provided - No betting activity is allowed - No financial transactions are implemented Any production use of a system like this would require proper licensing and regulatory compliance in the corresponding jurisdiction.
  • Go 92.6%
  • JavaScript 1.9%
  • Astro 1.8%
  • HTML 1%
  • CSS 0.9%
  • Other 1.6%
Find a file
Manuel Samuel Alfaro Sierra 63c031aad1
Some checks failed
Repository Guardrails / validate (push) Has been cancelled
[FEAT] You PAUSE here becouse of Collectum App
2026-04-26 11:54:03 +02:00
.github/workflows chore: initialize monorepo scaffold and tailwind setup 2026-04-15 16:29:33 +02:00
.husky [FEAT] New module settlement and test 2026-04-24 17:27:45 +02:00
assets Created assets folder with logo images. And some partial changes in bet 2026-04-22 13:06:25 +02:00
backend [FEAT] Ajusted events test for simulation module 2026-04-24 18:16:02 +02:00
deploy [FEAT] Happy path completed successful 🥳 2026-04-23 19:01:39 +02:00
frontend chore: initialize monorepo scaffold and tailwind setup 2026-04-15 16:29:33 +02:00
packages/contracts chore: initialize monorepo scaffold and tailwind setup 2026-04-15 16:29:33 +02:00
samples [FEAT] Added import endpoints tests. Added script to update dates in event mock file 2026-04-18 17:45:19 +02:00
scripts [FEAT] Added import endpoints tests. Added script to update dates in event mock file 2026-04-18 17:45:19 +02:00
.editorconfig chore: initialize monorepo scaffold and tailwind setup 2026-04-15 16:29:33 +02:00
.env.example [FEAT] Finished bets module and it tests. Added openapi, hoppschotch, pgweb and a home-dev index to access all of them 2026-04-23 17:36:54 +02:00
.gitignore chore: initialize monorepo scaffold and tailwind setup 2026-04-15 16:29:33 +02:00
AGENT.md chore: initialize monorepo scaffold and tailwind setup 2026-04-15 16:29:33 +02:00
AGENTS.md [FEAT] Added /events endpoints 2026-04-17 17:11:44 +02:00
LEEEEEEEME_SI_LLEVAS_MUCHO_SIN_TOCARME.md [FEAT] You PAUSE here becouse of Collectum App 2026-04-26 11:54:03 +02:00
Makefile [FEAT] New module settlement and test 2026-04-24 17:27:45 +02:00
nvim.log Added market module and test for handlers and services 2026-04-21 16:25:22 +02:00
package.json [FEAT] New module settlement and test 2026-04-24 17:27:45 +02:00
pnpm-lock.yaml [FEAT] Added /events/{id} endpoints. And added tests for all current endpoints 2026-04-17 19:13:55 +02:00
pnpm-workspace.yaml [FEAT] Added /events/{id} endpoints. And added tests for all current endpoints 2026-04-17 19:13:55 +02:00
README.md Created assets folder with logo images. And some partial changes in bet 2026-04-22 13:06:25 +02:00
turbo.json chore: initialize monorepo scaffold and tailwind setup 2026-04-15 16:29:33 +02:00

Ludus

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

  • pnpm workspaces
  • turbo
  • husky
  • 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.example is tracked as a template.
  • Real .env files 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-env blocks commits or pushes that include real .env files such as .env, .env.local, or .env.production.
  • AGENTS.md limits assistants to .env.example and .env.sample templates 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