Master Algorithms with Spaced Repetition & Gamification.
Smarana ("Remembrance" in Sanskrit) is a specialized spaced repetition platform for competitive programmers. It seamlessly integrates with your workflow to help you track, schedule, and master algorithmic problems from LeetCode, Codeforces, and AtCoder.
- Spaced Repetition System (SRS): Smart scheduling (1, 3, 7, 14, 30 days) based on your performance to maximize retention.
- Review Queue: A prioritized daily dashboard of problems you need to review.
- Problem Sync: Automatic history tracking from LeetCode, Codeforces, and AtCoder.
- In-Context Overlay: Solve problems directly on LeetCode with a non-intrusive floating panel.
- Focus Timer: High-precision timer that tracks solve duration and auto-pauses when you switch tabs.
- One-Click Review: Instantly save solutions, notes, and difficulty ratings to your dashboard without leaving the problem page.
- XP & Ranking: Earn XP for consistency and solving hard problems. Climb from "Novice" to "Grandmaster".
- Ember Trail: Visualize your consistency with a GitHub-style activity heatmap.
- Achievements: Unlock badges for milestones like "7-Day Streak" or "100 Problems Solved".
- Leaderboards: Compete globally or with friends.
- Community: Follow friends, view their stats, and get inspired by their activity pulse.
- Admin Console: dedicated tools for managing resource suggestions and user feedback.
- "Night Garden" Aesthetic: A premium dark UI with ember-orange accents (
#BB7331) designed for late-night coding sessions. - Developer First: optimized for keyboard navigation and speed.
- Framework: Next.js 16 (App Router, Server Actions)
- Language: TypeScript
- Styling: Tailwind CSS + Shadcn UI
- Database: PostgreSQL (via Prisma ORM)
- Auth: NextAuth.js
- State: TanStack Query
- Core: Vite + React
- Architecture: Shadow DOM for style isolation
- Communication: Chrome Runtime Messaging
- Node.js 18+
- PostgreSQL Database
- Google Cloud Project (for OAuth)
git clone https://github.com/your-username/smarana.git
cd smarana
npm installCopy the example environment file:
cp .env.example .envFill in your secrets:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/smarana"
# Auth
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-super-secret-key"
# Google OAuth
GOOGLE_CLIENT_ID="..."
GOOGLE_CLIENT_SECRET="..."npm run build # Runs prisma generate + migrate deploynpm run devVisit http://localhost:3000.
To run the browser extension locally:
cd extension
npm install
npm run buildLoad the extension/dist folder in Chrome via chrome://extensions > "Load unpacked".
src/
├── app/ # Next.js App Router
│ ├── (authenticated)/ # Dashboard, Profile, Admin
│ └── api/ # API Routes
├── components/ # React Components
├── lib/ # Utilities & Business Logic
extension/ # Browser Extension Source
│ ├── src/
│ │ ├── content/ # Content Scripts (Overlay)
│ │ └── background/ # Service Worker
└── prisma/ # Database Schema & Migrations
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes
- Push to the Branch
- Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
built with 🧡 by Jash Karangiya


