
Copy-and-Own: The Philosophy Behind Saucebase Modules
Most starter kits give you a locked box. Saucebase takes the opposite approach: when you install a module, the source code lands in your repo and it's yours to read, edit, and own.

Choosing a frontend framework used to mean committing to a stack for the life of your project. Pick Vue, and every module you install needs to be Vue. Pick React, and you're locked into that ecosystem. For a starter kit that ships with authentication, billing, settings, and a blog out of the box, that's a real constraint.
Saucebase 2.0 removes it.
Every Saucebase module ships with both a Vue 3 and a React 19 implementation. When you set up a new project, you choose your framework β and every module you install just works with it. No adapters, no workarounds, no "Vue only" footnotes in the docs.
Under the hood, each module keeps its framework implementations in resources/js/vue/ and resources/js/react/. The module installer reads your project's frontend.json and copies the right files into place automatically.
For contributors and teams evaluating the framework decision, Saucebase ships a command that makes switching non-destructive:
php artisan saucebase:stack vue --dev
php artisan saucebase:stack react --dev
In --dev mode, both framework directories are kept on disk. Entry points are thin passthroughs. You can flip between them without losing any work.
Framework-specific code only lives where it has to. Routing, backend logic, Filament admin panels, database migrations, API endpoints β all of that is shared. The only thing that differs between the Vue and React versions of a module is the frontend layer.
This means a bug fix in a controller, a new field on a model, or a Filament resource change is written once and works for everyone regardless of their chosen framework.
A starter kit's job is to get out of your way. Locking you into a framework decision on day one β before you've written a single line of product code β is the opposite of that. Saucebase 2.0 lets you start building and figure out the rest later. Or never figure it out at all, because both options keep working.
Pick the framework your team knows. Saucebase handles the rest.

Most starter kits give you a locked box. Saucebase takes the opposite approach: when you install a module, the source code lands in your repo and it's yours to read, edit, and own.

One Artisan command scaffolds a fully structured module β service provider, controller, routes, Vue pages, migrations, factory, tests, and Vite config. Here's how it works.
If you've launched more than one Laravel app, you know the feeling β two weeks gone before you write any real product code. There's a better way.