Development
Contributing to the Lux Explorer
Backend Development
cd explorer
mix deps.get
mix compile
mix phx.serverRunning Tests
mix test --no-startUses ExUnit with Mox for mocking and Bypass for HTTP stubbing.
Frontend Development
cd explore
pnpm install
pnpm devCode Style
ESLint enforces strict design system rules:
- Import from
toolkit/chakra/**before native Chakra UI - No hardcoded colors — use semantic tokens
- Use
toolkit/chakra/linkinstead ofnext/link - Use
lib/date/dayjs.tsfor dates - Time via
TimeorTimeWithTooltipcomponents
Running Tests
pnpm test:vitest # Unit tests
pnpm test:pw # E2E tests (all 3 projects)GitHub Actions
The CI pipeline runs on every PR:
- Type checking (
tsc --noEmit) - Linting (ESLint)
- Unit tests (Vitest)
- E2E tests (Playwright — desktop, mobile, dark mode)
- Docker build verification
GHA Deploy
The build-lux.yml workflow builds and pushes Docker images to GHCR. On deploy, all 5 frontend instances are restarted (not just mainnet).