cd ~/projects/blitzcode
A competitive coding platform with single-player quizzes, real-time multiplayer matches, an in-platform DSA editor, and personalized coding profile integrations.
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.
// what BlitzCode is built withconst stack = {frontend: ["React", "TypeScript"],backend: ["Next.js API Routes", "TypeScript"],queuesCache: ["BullMQ", "Redis", "localStorage"],api: ["gemini", "deepseek", "mistral", "judgeO", "codeforces", "leetcode"],database: ["Postgresql", "Drizzle ORM"],tools: ["NextAuth", "Bun", "WebSockets"],} ; export default stack;
Select single-player to practice on your own, or multiplayer to compete against another player in a real-time match.
In single-player mode, BlitzCode fetches questions from the backend based on your selections and displays them for you to play.
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.
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.
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.
Fetch questions based on your selected options and practice at your own pace.
Compete live with another player through WebSocket matchmaking that pairs players with the same selected quiz options.
When the question bank is short for a selected combination, workers can generate and store new questions using an LLM.
Practice with nearly 3,000 problems, rated by Codeforces difficulty and covering different concepts.
Write and run solutions without leaving BlitzCode. Test against public cases, then submit against private test cases.
After submitting a problem, view a graph of your solution’s time and space complexity.
Connect your profiles to bring your coding activity and BlitzCode progress together.
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.
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.
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.
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.