- Live opponent cursors
- Chat, WPM updates and progress tracking
- Responsive
- Solo mode
- Quick Play(matchmaking) and Private/Public Rooms
- Customizable passages and settings
- Stats
- No sign-in required
- Frontend: Next.js 16, React 19, TypeScript, Tailwind CSS, Customized ShadCN components, Motion
- Backend: Node.js, Express, Socket.io, Drizzle ORM, LibSQL (SQLite)
- Auth: Better Auth
- Tools: Biome, pnpm
-
Make sure you have Docker and Docker Compose installed.
-
Clone the repo:
git clone https://github.com/sahaj-b/versus-type cd versus-type -
Set up environment variables.
- Copy backend/.env.example to
backend/.envand configure DB and Auth. - Copy frontend/.env.example to
frontend/.envand configure the WS and HTTP server URLs.
-
Push database schema:
cd backend pnpm install && pnpm db:push
-
Start the application using Docker Compose:
docker compose up
-
Make sure you have Node.js and pnpm installed.
-
Clone the repo:
git clone https://github.com/sahaj-b/versus-type cd versus-type -
Install dependencies:
pnpm install
-
Set up environment variables.
- Copy backend/.env.example to
backend/.envand configure DB and Auth. - Copy frontend/.env.example to
frontend/.envand configure the WS and HTTP server URLs.
-
Push the database schema:
cd backend pnpm db:push -
Start the servers:
cd backend pnpm dev # in another terminal cd frontend pnpm dev # backend production build pnpm -F versus-type-backend build pnpm -F versus-type-backend start # frontend production build cd frontend/ pnpm build pnpm start