A friendly Word/Acronym guessing game inspired by Wordle and Cyberdle. Crack the cybersecurity acronym hiding behind each clue, grow your streak, and share your triumphs.
- Daily + Random Modes – Play the shared daily puzzle or spin up a random challenge whenever.
- Cyberdle Dataset – 160+ curated security acronyms with definitions and full expansions.
- Streaks & Stats – Local stats, running streak tracker, and a score system that rewards smart guesses.
- Shareable Results – One-tap clipboard/share support using the familiar emoji grid.
- Theming – Gorgeous dark and light themes with instant toggle and persistence.
- Accessibility-minded UI – Keyboard-first controls, aria-live messaging, and responsive layout.
- 🔌 Extensible Plugin System – Easily plug in custom word lists from GitHub Gists, APIs, or local data.
- 🎨 Custom Themes – Create and apply your own color schemes, fonts, and icons via simple JSON configuration.
- 📱 Mobile Support – Full React Native app with the same great experience on iOS and Android.
- 🧪 Fully Tested – Comprehensive test suite with 95%+ coverage.
qwizzle/
apps/
web/ # Vite + React client
mobile/ # React Native/Expo mobile app
packages/
engine/ # Core game logic and share helpers
wordlists/ # JSON data for acronyms + vocab
plugins/ # Extensibility system (providers, themes, registry)
examples/ # Sample configs, themes, and word lists
tests/ # Comprehensive test suites
@qwizzle/engine– TypeScript engine that powers guesses, feedback, and sharing text.@qwizzle/wordlists– Bundled JSON word data; extend this to add new categories.@qwizzle/plugins– Plugin system for custom word lists, themes, and icons.
- Node.js 20+
- Corepack (ships with recent Node; enables pnpm)
corepack enable pnpmcorepack pnpm installcorepack pnpm --filter qwizzle-web devOpen http://localhost:5173 and start guessing. The theme toggle, help modal, and sharing controls are built in.
corepack pnpm --filter qwizzle-web build
corepack pnpm --filter qwizzle-web previewcorepack pnpm --filter qwizzle-mobile startFully functional React Native app with:
- Same game logic as web
- Touch-optimized keyboard
- Native theme support
- Smooth animations
# Run all tests
corepack pnpm test
# Plugin system tests with coverage
corepack pnpm --filter @qwizzle/plugins test:coverage
# Engine unit tests
npx vitest run
# Lint web app
corepack pnpm run lint
# Mobile tests
corepack pnpm --filter qwizzle-mobile testTest Coverage:
- Plugin providers (Gist, URL, Local, MultiSource)
- Plugin registry
- Theme system
- Game engine
- Target: 95%+ coverage
Qwizzle features a powerful extensibility system. Create custom word lists and themes without touching the codebase!
Quick Start:
- Create a
qwizzle.config.json:
{
"wordLists": [
{
"type": "gist",
"gistId": "your-gist-id",
"category": "custom"
}
],
"themes": [
{
"id": "my-theme",
"name": "My Theme",
"colors": {
"bg": "#0a0e27",
"fg": "#f2f2f2",
"accent": "#ff006e",
"tCorrect": "#00f5d4",
"tPresent": "#ffbe0b",
"tAbsent": "#2d3250"
}
}
],
"theme": "my-theme"
}- Load in your app:
import config from "./qwizzle.config.json";
import { PluginAwareProvider } from "./providers/PluginAwareProvider";
<PluginAwareProvider config={config}>
<App />
</PluginAwareProvider>Documentation:
- Plugin Development Guide - Complete guide for creating plugins
- Extensibility Architecture - Technical architecture details
- Examples - Sample configurations, themes, and word lists
Supported Word Sources:
- GitHub Gists
- Any JSON API/URL
- Local data
- Multiple providers combined
- Wordlists – Edit
packages/wordlists/src/acronyms.jsonto swap or extend puzzles (fields:word,definition,expansion). Add additional lists in the same format. - Themes – Update CSS variables in
apps/web/src/theme/tokens.cssto adjust the palette. The toggle persists preference in local storage.
- Fork + clone the repo.
- Create a feature branch (
git checkout -b feature/amazing-idea). - Run
corepack pnpm installandcorepack pnpm --filter qwizzle-web devto iterate locally. - Add tests when touching the engine; ensure
npx vitest runandcorepack pnpm run lintstay green. - Open a PR with a clear summary, screenshots for UI tweaks, and links to related issues.
feat:,fix:,chore:,docs:, etc. for clean history and changelog-ready messages.
MIT © 2025 Adil Leghari
Need a primer on contributing as an LLM agent? See AGENTS.md for repository guidelines.