$sharmavansh.3777@gmail.com

© 2026 Vansh SharmaOpen to work
~Vansh SharmaBack

$cd ~/projects/blitzcode

BlitzCode

A competitive coding platform with single-player quizzes, real-time multiplayer matches, an in-platform DSA editor, and personalized coding profile integrations.

Live demoGitHub
status
Live
concept
Queues, WebSockets, Code Judge, LLM APIs
repository
BlitzCode on GitHub

on this page

  • overview
  • stack
  • preview
  • how it works
  • features
  • problems & fixes

//overview

BlitzCode brings coding practice and competition together. Choose a single-player quiz or match with another player in real time. Multiplayer matchmaking pairs players who selected the same quiz options. If the question bank is short for a selected combination, background workers can use an LLM to generate more questions and store them for future play.

For deeper practice, solve from a collection of nearly 3,000 DSA problems, with Codeforces ratings across different concepts. Write code in the built-in editor, run it against public test cases, and submit it against private test cases. After submission, review a graph of your solution’s time and space complexity. Personalized LeetCode and Codeforces profile integrations bring your coding activity together.

//stack

stack.tsTypeScript
1
// what BlitzCode is built with
2
const stack = {
3
frontend: ["React", "TypeScript"],
4
backend: ["Next.js API Routes", "TypeScript"],
5
queuesCache: ["BullMQ", "Redis", "localStorage"],
6
api: ["gemini", "deepseek", "mistral", "judgeO", "codeforces", "leetcode"],
7
database: ["Postgresql", "Drizzle ORM"],
8
tools: ["NextAuth", "Bun", "WebSockets"],
9
} ;
10
 
11
export default stack;

//preview1 file

BlitzCode project preview

//how it works

  1. 01

    Choose how to play

    Select single-player to practice on your own, or multiplayer to compete against another player in a real-time match.

  2. 02

    Get a quiz

    In single-player mode, BlitzCode fetches questions from the backend based on your selections and displays them for you to play.

  3. 03

    Match with another player

    In multiplayer mode, BlitzCode connects over WebSockets and looks for another player who selected the same quiz options. Once matched, both players play in real time.

  4. 04

    Generate questions when needed

    If the database has too few questions for a selected combination of options, background workers can ask an LLM to generate new questions and save them to the database.

  5. 05

    Practice DSA problems

    Choose from nearly 3,000 problems, write a solution in the editor, run it against public test cases, and submit it against private test cases.

//features7 total

  1. Single-player quizzes

    Fetch questions based on your selected options and practice at your own pace.

  2. Real-time multiplayer

    Compete live with another player through WebSocket matchmaking that pairs players with the same selected quiz options.

  3. LLM-generated questions

    When the question bank is short for a selected combination, workers can generate and store new questions using an LLM.

  4. A large DSA problem library

    Practice with nearly 3,000 problems, rated by Codeforces difficulty and covering different concepts.

  5. In-platform code editor

    Write and run solutions without leaving BlitzCode. Test against public cases, then submit against private test cases.

  6. Complexity graphs

    After submitting a problem, view a graph of your solution’s time and space complexity.

  7. LeetCode and Codeforces integrations

    Connect your profiles to bring your coding activity and BlitzCode progress together.

//problems & fixes

  • Keeping multiplayer matches fair

    −Problem: Players need to compete on equivalent quizzes for a multiplayer match to be fair.

    +Solution: WebSocket matchmaking pairs players who selected the same quiz options before starting a real-time game.

  • Not enough questions for every quiz combination

    −Problem: The question bank may not have enough questions for a particular combination of selected options.

    +Solution: Background workers can request new questions from an LLM and store them in the database for use in quizzes.

  • Handling LLM failures and token limits

    −Problem: An LLM provider may fail or reach its token limit while generating a question.

    +Solution: Use three LLM API keys with fallback between providers so generation can continue when one provider fails or reaches its limit.

  • Processing many question-generation jobs

    −Problem: A burst of jobs to generate or store questions can overwhelm a single worker.

    +Solution: Run multiple concurrent workers so jobs can be processed in parallel.

KaamBazarCatchMusic