typescriptNext.jsGoginpostgresqlredisdocker

Ruang Bimbel

By Yusuf Setiyawan
Picture of the author
Published on
Duration
Jun 2025 - Present
Role
Indie Maker (Solo Developer)
Website
ruangbimbel.id
Ruang Bimbel Landing Page
Ruang Bimbel Landing Page
Ruang Bimbel Dashboard
Ruang Bimbel Dashboard
Ruang Bimbel Tryout Interface
Ruang Bimbel Tryout Interface
+2

Ruang Bimbel is a comprehensive online learning platform helping users prepare for CPNS, BUMN, and UTBK exams. It provides an all-in-one space for learning, practice, and evaluation with realistic tryout simulations and personalized insights.


Tech Stack

Frontend — Built with Next.js 16, TypeScript, and Tailwind CSS v4. It utilizes ShadCN/UI for components, Zustand for state management, and TanStack Query for efficient data fetching across 4 separate applications (Landing, User App, Admin Dashboard, Super Admin).

Backend — Powered by Go (Gin Gonic) with PostgreSQL for data persistence and Redis for high-performance caching. It uses GORM as the ORM layer.

Infrastructure — Managed as a Turborepo monorepo, containerized with Docker for consistent deployment.


My Responsibilities

I owned everything end-to-end:

  • Product Design — Created the entire design system and UI/UX in Figma
  • Frontend Architecture — Built the scalable component library and 4 Next.js applications
  • Backend Development — Developed the RESTful API with Go/Gin for handling exams and scoring
  • Infrastructure — Set up the deployment pipeline with Docker and CI/CD
  • Growth — Implemented SEO strategies and analytics to track user engagement

Key Features

  • 📚 Complete Study Materials — Comprehensive content modules for CPNS, BUMN, and UTBK preparation.
  • 📝 Question Banks — Extensive collection of practice questions with varying difficulty levels.
  • 🎯 Realistic Simulations — Tryout exams that mimic the actual test environment with timer and scoring.
  • 📊 Detailed Analytics — Instant scoring, answer discussions, and performance ranking.
  • Fast & Responsive — Optimized performance using Next.js 16 and efficient backend caching.