Blog Mar 19, 2026 2 min read

Why lmachine is a Laravel monolith, not a pile of side-project repos

The lmachine portfolio is starting as one Laravel monolith because shared identity, entitlements, and publishing matter more than pretending every app needs its own backend.

Author

Lucas Machine

Lucas builds operator software, self-hosted systems, and practical AI products with real business constraints.

The obvious move is wrong

The default builder move is to create a new repo for every app.

That feels clean in the first week and becomes expensive by the third or fourth launch.

You duplicate:

  • auth
  • OAuth setup
  • user tables
  • billing glue
  • blog and publishing logic
  • deployment work

That is not leverage. That is overhead pretending to be architecture.

What actually matters for this portfolio

The lmachine portfolio needs a shared spine:

  • one account
  • one identity model
  • one activation path
  • one entitlement model
  • one place to publish notes and docs

That is why the right starting point is a monolith.

Why Laravel fits

Laravel gives enough convention to keep the codebase fast without making the system stiff.

The stack is opinionated in the right places:

  • Blade for public surfaces
  • Livewire and Volt for interactive server-driven UI
  • Fortify for auth
  • Passport for first-party OAuth
  • Horizon and Redis for queue visibility
  • Boost for agent-aware development

The result is one deployable system with room for many surfaces.

What this does not mean

A monolith is only good if the internal boundaries are real.

So the repo is being shaped around capabilities, not vibes:

  • Identity
  • Access
  • Billing
  • Launch
  • Feedback
  • Publishing
  • Apps
  • Admin

That is how you keep a monolith from turning into a junk drawer.

laravel monolith multi app multi domain