Skip to contentSkip to main content

Yuktisutra

A platform where developers can practice DSA problems, track their progress, and follow structured roadmaps.

Yuktisutra

Overview

Yuktisutra is a DSA learning platform I built from scratch. Most coding platforms feel dull and slow, so I wanted to build one that actually feels good to use. It has a Monaco code editor (same one VS Code uses), problems sorted by company and topic, progress charts, and a full docs site. It's built to handle real users with proper auth, rate limiting, and a sandboxed code runner.

What I Did

I built everything from the UI to the backend. I set up the Supabase database with Row Level Security so user data stays safe. I built the code execution flow using a Node.js backend and Docker so submitted code runs in a container and can't touch the server. I also added Algolia search and Google login so users never get redirected to a third-party page.

Tech Stack

ReactViteTailwind CSSSupabaseRedux ToolkitMonaco EditorNode.jsDockerAlgoliaRedis

Technical Decisions

I used React and Vite because they are fast to build with and the output is snappy. Supabase handled auth and the database so I didn't have to build a full backend from scratch. Monaco was the obvious pick for the code editor since it's what VS Code uses and users already know it. Docker was needed for code execution because running user code directly on the server is a security risk. Algolia was used for search because building a search engine from scratch is complex and Algolia just works.

Architecture

Yuktisutra Architecture

What I Learned

I learned how to write proper RLS policies in PostgreSQL, which took a lot of trial and error. I figured out how to split a large React app into lazy-loaded chunks for faster load times. I also made a mistake of shipping source maps to production which exposed my full source code — fixed that. And I learned how to use Redis to rate-limit an API so it doesn't get abused.