Skip to content

defaltadmin/donttouchpurple

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

397 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Don't Touch Purple

A fast-paced reflex grid-tapping game. Tap every color except purple. How long can you survive?

CI Pipeline Node.js TypeScript Vite React Firebase Tests License: MIT

Don't Touch Purple - Fast-paced reflex game

Play Now | Wiki | Design System | Agent Docs


Game Modes

Mode Description
Classic Race the clock. Tap every non-purple cell before time runs out. Miss a cell and time bleeds away.
Evolve Survive the endless wave. The grid evolves, speeds up, and throws new mechanics at you. How far can you go?

Features

  • 50+ achievements across 8 categories — from casual to speedrun-tier
  • Daily objectives with streak tracking and a rotating challenge seed
  • Global leaderboard powered by Cloudflare Workers + Firebase
  • Bot assist mode — toggle AI control for any player
  • 12 WebGL backgrounds — Nebula, Aurora, StarWarp, VoidTunnel, DigitalRain, Lightning, PulseField, and more (OGL)
  • Shop and currency — earn dust, unlock backgrounds, badges, and themes
  • Challenge links — share a seeded game with friends via URL
  • PWA installable — works offline, feels native on mobile and desktop
  • Accessibility — reduced motion, colorblind-safe palette, haptics toggle, screen shake control
  • Sentry + GameAnalytics — real-time error tracking and player analytics

Tech Stack

Layer Technology
UI React 18, TypeScript 5, CSS custom properties (MD3 tokens)
Build Vite 7, Rollup, PostCSS
Backgrounds OGL (WebGL), GSAP, Framer Motion, dotlottie-web
Backend Firebase 12 (Auth, Firestore, Hosting, Analytics, App Check)
Workers Cloudflare Workers (leaderboard proxy, score validation)
Testing Vitest 4, Playwright (E2E)
CI/CD GitHub Actions, semantic-release
Monitoring Sentry, GameAnalytics, web-vitals

Quick Start

git clone https://github.com/defaltadmin/donttouchpurple.git
cd donttouchpurple
pnpm install
pnpm dev          # Opens http://localhost:5173

Scripts

Command Description
pnpm dev Dev server with HMR
pnpm typecheck TypeScript validation
pnpm test Unit tests (Vitest)
pnpm test:e2e End-to-end tests (Playwright)
pnpm build Production build
pnpm lint ESLint with auto-fix
pnpm analyze Bundle size breakdown

Architecture

App.tsx (state machine)
  |- engine/           Pure game logic (zero React imports)
  |   |- GameEngine.ts    Core loop, scoring, session
  |   |- subsystems/      TickProcessor, CellLifecycle, boss events
  |   |- RNG, CellTypes
  |- components/       React UI layer
  |   |- Screens/         Menu, GameOver, Privacy, Settings
  |   |- HUD/             PlayerPanel, GameArea, PauseOverlay
  |   |- Backgrounds/     12 OGL/WebGL themes
  |   |- Shop/            ShopPanel, cosmetics
  |- hooks/            useGameEngine bridge, custom hooks
  |- services/         Firebase, Sentry, analytics
  |- workers/          Cloudflare Worker proxy
  |- config/           Balance, difficulty, patterns, powerup weights
  |- utils/            IDB queue, score-sync, privacy, achievements

Documentation

Doc Description
DESIGN.md Design tokens, palette, typography, layout rules
AGENTS.md Agent instructions, architecture, 8 domain-specific agent definitions
llms.txt AI agent project overview
llms-full.txt Full reference with APIs, config, and structure
CHANGELOG.md Auto-generated release history
Wiki Game mechanics, modes, achievements, backgrounds, bot assist, leaderboard

Contributing

See CONTRIBUTING.md for dev setup, code style, and PR process.

Security

See SECURITY.md for vulnerability reporting and supported versions.

License

MIT - Copyright (c) 2025-2026 defaltadmin

About

Game

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors