OpenWord banner

OpenWord

4 devlogs
11h 41m 7s

An open source WORDLE clone with some more spice on it.

This project uses AI

Used GitHub Copilot (Student) for code completions and README polishing

Demo Repository

Loading README...

alessandro.sgattoni20

Shipped this project!

Guys, OpenWord Open Beta is live.

This is a controlled beta with a small player pool, but the core experience is now fully playable and connected end-to-end.

What’s in:

  • Solo mode with full scoring, hints, and post-game summaries
  • Persistent match saves for logged-in users
  • Personal dashboard with stats and recent game history
  • Multiplayer room flow: create, join, waiting room, live game state, leaderboard, and match finish
  • Round-based multiplayer structure with cumulative scoring
  • Improved stability and production hygiene (rate limiting, auth-guarded realtime events, graceful shutdown handling)

What this beta is for:

  • Validate gameplay balance (difficulty, hints, scoring)
  • Stress test live multiplayer with real users
  • Catch UX friction before wider rollout
  • Gather feedback on retention features (history, stats, progression)

If you’re in, jump in, play hard, and send feedback. This phase is about polishing fast and shipping better every week.

alessandro.sgattoni20

Guys, quick OpenWord update: I’ve been shipping hard. The project now has a full solo progression loop, a real dashboard system, and live multiplayer infrastructure with socket-based gameplay.
NOTE: This is my first time working with sockets, so if you notice some issues (in the code or while you play the game), please let me know.

What’s new:

Backend:

  • Multiplayer router expanded with room lifecycle endpoints: create, join, room state, start, submit guess, leaderboard, finish
  • Round-based multiplayer support added (num rounds/current round + cumulative player scoring)

Real-time / Server Runtime:

  • Socket.io multiplayer runtime implemented with authenticated connections
  • Real-time room sync events for players and room state updates
  • In-memory game state rehydration support for active rounds
  • Per-event socket rate limiting added for join/start/guess actions
  • Hardening in place: unauthorized access checks, room membership validation, safer error paths

Frontend:

  • Dashboard upgraded from placeholder to full stats + recent games view
  • Multiplayer UI flow shipped: lobby, create/join room, waiting room, and game screen orchestration
  • Shared component architecture cleaned up for better maintainability

Platform / DX:

  • Providers updated so React Query Devtools only render in development

NOTE: The screenshots show the host-side views

Attachment
Attachment
Attachment
Attachment
Attachment
0
alessandro.sgattoni20

Guys, still grinding hard on OpenWord. The project is now way beyond a basic Wordle clone, I pushed both solo progression systems and real multiplayer foundations with rounds, rooms, and live state flow.

What’s new:

Backend:

  • Solo progression complete: save game endpoint, score persistence, user game history, and stats aggregation
  • Multiplayer API live: create room, join room, fetch room state, host-only start, submit guesses, leaderboard, and finish game
  • Multiplayer runtime state: in-memory active match tracking + DB-backed room/player records
  • Round-based multiplayer support added: total score tracking and round score storage model
  • Better API context: DB is wired into protected procedures for richer server features

Frontend:

  • Solo play refactor: split into focused tabs/components for settings, active gameplay, and score results
  • Better guess UX: per-letter grid input, keyboard/backspace behavior, hinted locked slots
  • Score screen improved: richer breakdown, result summary, and auto-save flow for logged-in users
  • Dashboard upgraded: real user stats and recent game history views with loading/error/empty states
  • Multiplayer page shipped: lobby, create/join room flow, waiting room, and game screen routing state

Database:

  • Added persistent solo Game model with analytics-ready fields
  • Added user role field for future access control
  • Added multiplayer schema models: Room, RoomPlayer, MultiplayerGame
  • Added support for numRounds/currentRound and cumulative + per-round scoring structures
Attachment
Attachment
Attachment
Attachment
Attachment
Attachment
Attachment
Attachment
0
alessandro.sgattoni20

Guys, I’ve been grinding again. I put some spice on OpenWord to make it more complete in the game loop with stats, history, persistence, cleaner architecture, and way better solo gameplay UX.

What’s new:

Backend:

  • Persistent Solo Match Data: Added full game save flow for logged-in users (difficulty, word, result, guesses, score, bonuses, time, hints, attempts left)
  • Dashboard APIs: Built protected endpoints for personal stats and paginated game history
  • Hint Engine: Added server-side hint support with limits, random unrevealed-letter reveal, and validation guards
  • Expanded Game Config: Start-game now supports custom attempts, hint limits, and language selection
  • API Context Upgrade: Wired DB into tRPC context for richer protected procedures
  • Better Error Handling: Secret word fetch now throws explicit server errors instead of masking failures

Frontend:

  • Major Play Screen Refactor: Split the monolithic play UI into focused components (Settings, Game, Score)
  • Better Guess Input UX: Added grid-based per-letter input with keyboard navigation, backspace behavior, and hint-locked letter slots
  • In-Game Hint Controls: Added hint button + live usage counter with smart disable states
  • Score Screen Upgrade: Shows full scoring breakdown, revealed word, and auto-saves finished games for authenticated users
  • Word Meaning Lookup: Added post-game dictionary definition fetch for revealed words
  • Scoring Rebalance: Win/loss scoring paths now differ, with hint penalties and fairer low-score handling
  • Dashboard Revamp: Replaced placeholder content with real stats cards + recent match history
  • Shared Component Cleanup: Reorganized common UI pieces (header/footer/loader/word tiles) for maintainability

Database:

  • New Game Model + Migration: Added persistent game table with analytics-ready fields and indexes
  • User Role Support: Added role column for future access/feature expansion
Attachment
Attachment
Attachment
Attachment
Attachment
Attachment
0
alessandro.sgattoni20

Alright, been putting in serious work on this project. Built out a complete Wordle-style guessing game from the ground up with full authentication, game mechanics, and a polished UI.

What’s new:

Frontend:

  • Game Flow: Interactive play page with real-time game state management, input validation, and status tracking (playing/won/lost)
  • Animations: Letter component with smooth flip animations triggered on guess submission, dynamic letter status updates (correct/present/absent)
  • Word Display: WordWrapper component rendering word grids with color-coded feedback system (green/yellow/gray)
  • Auth System: Full sign-in/sign-up forms with email/password validation (min 8 chars), form state management with TanStack React Form, toast notifications for success/errors
  • Dashboard: Protected dashboard for authenticated users, integration with TRPC for private API calls
  • UI Suite: Beautiful shadcn/ui components (buttons, inputs, cards, labels) + dark mode toggle
  • Responsive Layout: Mobile-first design with proper spacing and TailwindCSS utility styling

Backend:

  • Game Logic: Solo game mode with word selection (random or specified length), 6-attempt limit, guess validation, comprehensive feedback system
  • Game State Management: Game state persistence with unique game IDs, attempt tracking, guess history with feedback records
  • Word System: Fallback word list (20+ words) for development/testing, word length flexibility (defaults to 5)
  • Protected Routes: User session validation, private data endpoints, authenticated game endpoints
  • API Structure: TRPC procedures for game operations (startGame, submitGuess, getGameState), type-safe client integration

Database:

  • Auth Models: User, Session, Account (multi-provider support), Verification (email verification tokens)
  • Email/Password Auth: Dual authentication support via Better Auth, session tracking with IP/user agent
  • Schema: Proper relationships and cascading deletes for data integrity

Everything is fully typed with TypeScript, running in a monorepo with Turborepo for optimized builds. Next.js front, Express back, TRPC for type-safe APIs.

Attachment
Attachment
Attachment
Attachment
Attachment
0