// case study
Kodepas Course Platform
My Indonesian programming-course platform, built with Laravel, Inertia, and React, with checkout, an admin panel, 900+ tests, CI, and Laravel Cloud deploys.
- year
- 2026
- type
- Web app
- stack
- Laravel, Inertia, React

Kodepas is my own platform for workshop-style programming courses in Bahasa Indonesia, where every course comes with mentoring. I designed, built, and run it on my own. The current version is a rebuild of an earlier Next.js app on Laravel, and it went live on kodepas.com the day the rebuild started, with features shipped in small, deployable steps after that.
Technical Implementation:
- Built the app with Laravel 13, Inertia, React 19, and Tailwind CSS 4, with Fortify for authentication
- Learner features:
- Course catalog and course pages with free preview lessons
- A learning dashboard, lesson completion tracking, and per-lesson feedback
- Video lessons that load the YouTube player only on click, in privacy mode
- A blog with tags and an RSS feed
- Checkout through Midtrans Snap with voucher codes, an emailed receipt, and a PDF invoice:
- Talks to the Midtrans API through Laravel’s HTTP client, without the vendor SDK
- Verifies webhook signatures, and handles fulfilment, refunds, and chargebacks in database transactions with row locks, so a replayed notification can’t restore revoked access
- Expires unpaid orders hourly with a scheduled job, and reconciles an order’s real status from Midtrans on demand
- Blocks duplicate pending orders with a unique index on a generated column
- Locked lessons never send their content or video ID to the browser, and tests enforce it
- Admin panel for orders, users, course access, and vouchers
- Course content lives in the repository as Markdown, with a check command that validates it in CI
- SEO: sitemap, JSON-LD structured data, and noindex on lesson pages

Delivery & Infrastructure:
- Runs on Laravel Cloud with production and preview environments, a managed queue, and the scheduler; every push to
maindeploys automatically - GitHub Actions runs a single quality gate on every push and pull request: formatting and lint, TypeScript, PHPStan at level 7, the Pest suite, browser tests, and the content check
- Pinned GitHub Actions to commit SHAs with read-only permissions
- Error monitoring with Sentry on both the server and the browser
Testing:
- 123 Pest test files with more than 900 test cases, including Playwright-powered browser tests
Tech Stack:
- Backend: PHP 8.5, Laravel 13, Fortify, MySQL
- Frontend: Inertia, React 19, Tailwind CSS 4
- Integrations: Midtrans, Resend, Sentry
- Delivery: Laravel Cloud, GitHub Actions, Cloudflare
- Testing: Pest, PHPStan
Kodepas is live at kodepas.com. The first courses cover Markdown and Python, and courses on Git, Docker, Kubernetes, and CI/CD are in the works.