DEV Community

Cover image for How I Built a SaaS with Laravel + React + Inertia.js (Full Stack Breakdown)
Zakir Hossen
Zakir Hossen

Posted on

How I Built a SaaS with Laravel + React + Inertia.js (Full Stack Breakdown)

I've been building JuggleHire—a hiring tool for small teams—for 2.5 years. Here's the stack and why I chose it.

The Stack

Backend:

  • Laravel 12 (PHP 8.3)
  • MySQL
  • Redis (queues + caching)
  • Laravel Horizon for queue management

Frontend:

  • React 19
  • Inertia.js v2 (the glue)
  • Mantine UI components
  • Tailwind CSS v4

Infrastructure:

  • DigitalOcean
  • Laravel Forge
  • GitHub Actions for CI/CD

Why Inertia.js?

I wanted SPA-like speed without building a separate API. Inertia lets me:

  • Use Laravel routing and controllers
  • Return React components instead of Blade views
  • Get client-side navigation without managing API endpoints
  • Keep authentication simple (session-based)

It's not perfect for every use case, but for a B2B SaaS with authenticated users, it's ideal.

The AI Features

Using OpenAI's API (GPT-4o-mini) for:

  • Candidate summaries
  • Match scores
  • Job description generation
  • Interview questions
  • Email templates

I built a credits system so users don't get unlimited API calls. 50,000 credits = ~500 candidate summaries.

Lessons Learned

  1. Livewire → React migration was painful but worth it. The UI is way more responsive now.

  2. Inertia v2's deferred props are game-changing. Load the page fast, fetch heavy data after.

  3. AI features are table stakes now. Users expect them.

  4. Solo founder = ruthless prioritization. I can't build everything.

Just Launched on Product Hunt

If you want to see it in action:

Happy to answer questions about the stack or the build process.

Top comments (0)