A futuristic single-player gaming platform featuring interactive minigames with a focus on the "Quick Draw Challenge" drawing game. Built with Astro, TypeScript, and Tailwind CSS.
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview# Run tests in watch mode
npm run test
# Run tests once
npm run test:run
# Run tests with coverage
npm run test:coverage
# Test UI
npm run test:ui# Lint code
npm run lint
# Fix linting issues
npm run lint:fix
# Format code
npm run format
# Check formatting
npm run format:checkThe project uses GitHub Actions for automated testing and building:
- Lint & Format: ESLint and Prettier checks
- Test: Unit tests with Vitest
- Build: Astro production build
- Coverage: Test coverage reporting (optional Codecov integration)
The CI pipeline runs on:
- Push to
mainordevelopbranches - Pull requests to
mainordevelopbranches
Issue: Playwright E2E tests may have compatibility issues with regular Bun due to memory constraints when running the full development server stack.
Workaround: E2E tests run under Bun in CI with optimized configuration. For local development, use Bun with reduced memory footprint if needed.
For local development:
- Use
bun run devfor regular development (faster builds and hot reload) - Use
bun --smol run devif you encounter memory issues with Playwright tests - Use
bunx playwright testfor running E2E tests directly
References:
Husky is configured to run quality checks before commits:
- ESLint auto-fix on staged files
- Prettier formatting on staged files
- Tests run before push
- Framework: Astro 5.10.1 with TypeScript
- Styling: Tailwind CSS 4.1.3 with custom sci-fi theme
- Testing: Vitest with JSDOM
- Graphics: PixiJS 8.10.2 for canvas-based drawing
- Database: Turso (LibSQL) with Kysely query builder
- Auth: Better Auth with Google OAuth
- Deployment: Vercel