This is a submission for the 2025 Hacktoberfest Writing Challenge: Maintainer Spotlight
๐จ QuickDoodle โ A Real-Time Drawing & Guessing Game Built for Hacktoberfest 2025
Hey DEV community! ๐ I'm UsmanDevCraft, and Iโm thrilled to spotlight QuickDoodle โ my passion project thatโs part Skribbl.io, part creative chaos, and 100% open for your Hacktoberfest contributions!
Whether you're a frontend wizard, backend ninja, or just love multiplayer games, this is your chance to jump in, fix bugs, add features, or even ship that AI bot weโve all been dreaming about.
๐ What Is QuickDoodle?
QuickDoodle is a real-time multiplayer drawing & guessing game where players compete in private or global rooms to draw secret words while others race to guess.
Think:
- โ๏ธ Smooth canvas drawing with pens, erasers, and colors
- โฑ๏ธ Fast-paced rounds with word prompts
- ๐ Scoring based on speed & accuracy
- ๐ฌ Real-time chat & player reactions
- ๐ Global public rooms or private invite-only lobbies
And yes โ AI bots are coming so you can play solo against a guessing machine!
๐ฎ The Player Flow (Step-by-Step)
Letโs walk through how a game actually works โ because nothing beats seeing the magic:
1. Landing Page โ Choose Your Adventure
- Create Room โ Youโre the Room Creator (and first Riddler)
- Join Room โ Enter a code to hop into a friendโs private game
- Join Global Room โ Instantly match with players worldwide
All powered by Socket.IO โ youโre connected in <1s.
2. Game Room โ The Arena
- Left Panel: Player list, scores, chat
- Top: Massive shared canvas
- Right Panel: Word hints (for guessers), chat box, round info
- Top Bar: Current drawer, round number, theme
3. Round Flow โ Draw, Guess, Swap!
๐ฎ Round Flow โ Draw, Guess, Swap!
| Phase | Whoโs Active? | What Happens |
|---|---|---|
| 1. Drawing Phase | Current Drawer | A random word is auto-assigned (no choices). Drawer uses pen/eraser โ strokes sync instantly via Socket.IO |
| 2. Guessing Phase | All Other Players | Players type guesses in a dedicated guess input (separate from chat). Chat is for fun, hints, or riddles from the drawer! |
| 3. Correct Guess! | First Guesser | Instant feedback: โPlayerX guessed it!โ โ points awarded based on speed. Drawer gets bonus if guessed fast |
| 4. Round End | All Players | Scores update live. Drawer rotates automatically โ next player becomes the **Drawer (Riddler) |
| 5. Mid-Round Switch | Current Drawer | Drawer can toggle between drawing & riddling anytime using a โSwitch to Riddle / Drawโ button |
| 6. Game Continues | All | No round limit โ play as long as you want! Ends when players leave or manually stopped |
๐ Room Rules
| Room Type | Player Limit | Notes |
|---|---|---|
| Private Room | No limit | Invite-only via shareable code |
| Global Room | 12 players | Auto-balanced. (3 in testing) |
Pro Tip: The creator is only the Riddler in Round 1. After that, it rotates fairly!
๐ ๏ธ Tech Stack โ Full-Stack Real-Time Power
| Layer | Tech |
|---|---|
| Frontend | Next.js (App Router), TypeScript, Tailwind CSS, Socket.IO Client, Turbopack |
| Backend | Node.js, Express, Socket.IO Server, MongoDB (Mongoose) |
| Realtime | WebSockets via Socket.IO |
| Utilities |
uuid, random-words, SRP-driven modular socket handlers |
๐ Repo Links (๐ฅน Star Them! ๐)
- Frontend: github.com/UsmanDevCraft/Quick_Doodle
- Backend: github.com/UsmanDevCraft/quick_doodle_backend
๐๏ธ Project Structure (At a Glance)
Frontend (Quick_Doodle)
/src
โโโ app/ โ Pages (landing, /game/[roomid])
โโโ components/ โ Reusable UI (Button, Modal, Canvas, Chat)
โโโ hooks/useSocket.ts โ Real-time connection logic
โโโ lib/socket.ts โ Socket instance
โโโ types/ โ TS interfaces
โโโ views/ โ Page-level components
Backend (quick_doodle_backend)
/
โโโ sockets/
โ โโโ gameEvents/ โ drawing.js, guessWord.js
โ โโโ roomEvents/ โ createRoom.js, joinGlobal.js
โ โโโ chatSocket.js
โ โโโ gameSocket.js โ Main orchestrator
โโโ models/Room.js โ MongoDB schema
โโโ index.js โ Express + Socket.IO server
๐ฅ Why I Maintain This Project
I built QuickDoodle because:
- I love real-time apps โ watching strokes appear instantly is pure magic
- I wanted a fun, social game that brings people together (even remotely)
- Itโs a perfect playground for learning WebSockets, state sync, and scalable backend design
๐ค How to Contribute (Hacktoberfest-Ready!)
Weโve got clear issues, good first tasks, and documentation โ perfect for your PRs!
๐ Quick Start
# Frontend
git clone https://github.com/UsmanDevCraft/Quick_Doodle.git
cd Quick_Doodle
npm install
npm run dev
# Backend
git clone https://github.com/UsmanDevCraft/quick_doodle_backend.git
cd quick_doodle_backend
npm install
npm run dev
Frontend connects to
http://localhost:3000โ runs on:3001(Next.js)
๐ฏ Contribution Ideas
| Area | Ideas |
|---|---|
| Frontend | Dark mode toggle, mobile canvas improvements, drawing undo/redo |
| Backend | Leaderboard persistence, vote-to-kick logic, room passwords |
| Gameplay | Themed word packs (Animals, Movies, Memes), sound effects |
| AI | Integrate a vision model to guess drawings (solo mode!) |
| UX | Confetti on correct guess, "Youโre close!" hints |
Label Alert: Look for
hacktoberfest,good first issue,help wanted
๐ง Future Roadmap
- AI Guessing Bot (solo mode)
- User accounts + stats
- Save & replay past games
- Mobile PWA support
- Leaderboards (global + friends)
๐ Final Words
QuickDoodle isnโt just code โ itโs laughter, chaos, and bad drawings shared in real time.
If youโve ever wanted to:
- Ship a full-stack real-time app
- Learn Socket.IO in action
- Or just draw a potato and call it โmodern artโ
โฆthen this is your project.
Letโs make Hacktoberfest 2025 legendary.
Pull requests, issues, ideas, memes โ all welcome.
โญ Star both repos
๐ Share this post
๐ Open a PR
And Iโll personally review it with emojis, feedback, and virtual high-fives.
Tags: hacktoberfest, hacktoberfest2025, javascript, typescript, nodejs, nextjs, socketio, mongodb, realtime, multiplayer, game-dev, open-source
Built with โค๏ธ by UsmanDevCraft letโs connect on GitHub โ see you in the canvas!





Top comments (0)