Skip to content

sahaj-b/versus-type

Repository files navigation

Versus Type Logo

Versus Type

A real-time typing app where you can practice solo or battle friends/randoms in PvP matches.


image image image image

Features

  • 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

Tech Stack

  • 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

Development Setup

Using Docker

  1. Make sure you have Docker and Docker Compose installed.

  2. Clone the repo:

    git clone https://github.com/sahaj-b/versus-type
    cd versus-type
  3. Set up environment variables.

  1. Push database schema:

    cd backend
    pnpm install && pnpm db:push
  2. Start the application using Docker Compose:

    docker compose up

Manual Setup

  1. Make sure you have Node.js and pnpm installed.

  2. Clone the repo:

    git clone https://github.com/sahaj-b/versus-type
    cd versus-type
  3. Install dependencies:

    pnpm install
  4. Set up environment variables.

  1. Push the database schema:

    cd backend
    pnpm db:push
  2. 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

About

Realtime PvP typing racer with live cursors and chat

Topics

Resources

License

Stars

Watchers

Forks

Languages