Introduction
Reshape is a full-stack SaaS starter kit that gives you a production-grade foundation for your next product. It pairs a headless Laravel API with a server-side rendered Vue 3 frontend, and ships with the features every SaaS ends up building anyway — authentication, teams, roles and permissions, subscription billing, real-time notifications, and a polished component library — so you can spend your time on the parts of your product that are actually unique.

What's included
Authentication that gets out of the way
- Passwordless login — users sign in with a one-time code sent to their email. No passwords to forget, no password resets to support.
- Social login with Google, GitHub, and LinkedIn, including automatic account linking.
- Passkeys (WebAuthn) and two-factor authentication for security-conscious users.
- Session management — users can see and revoke their active browser sessions.
Built for teams from day one
- Companies — full multi-tenancy with company switching, member management, and email invitations.
- Roles & permissions — a granular, company-scoped permission system with six built-in roles, from super administrator down to company staff.
- Billing — Stripe subscriptions via Laravel Cashier, with app-managed plans, add-ons, checkout, invoices, and a polymorphic billing model that lets either a user or a company hold the subscription.
Engagement features, ready to go
- Comments — threaded, rich-text comments that attach to any model.
- Reactions — six-emotion reactions (Like, Love, Laugh, Wow, Sad, Angry) on anything reactable.
- Announcements — global or company-scoped announcements with scheduling, banners, comments, and reactions.
- Real-time notifications — database + broadcast notifications delivered instantly over websockets, with an in-app notification panel.
A real design system
- Themes — design tokens stored in the database and compiled to CSS on the fly. Users and companies can create, share, and switch entire themes — light and dark variants included.
- Forms, tables, and panels — a documented component library built on shadcn-vue, TanStack Form, and TanStack Table, with URL-driven table state and Laravel-aware validation errors.
- Metrics — Nova-style value, trend, and partition metrics with range selection and caching, rendered as dashboard cards.
And the practical stuff
- Customers — a lightweight CRM for people and companies your tenants do business with.
- Contacts & addresses — polymorphic contact methods, social links, and addresses on users, companies, and customers.
- Admin panel — a Filament v5 back office with resources for users, companies, plans, announcements, reference data, and more.
- Deployment — ready-to-use Kamal configuration for both apps, including a Reverb websocket role and a PostgreSQL accessory.
Under the hood
Reshape is a monorepo with three applications:
| Directory | What it is |
|---|---|
api/ | The Laravel application — a headless JSON API secured with Sanctum, plus the Filament admin panel |
web/ | The customer-facing frontend — Vue 3 with SSR via TanStack Start |
docs/ | This documentation site (VitePress) |
Backend: Laravel, Sanctum (SPA session authentication), Fortify, Socialite, Cashier (Stripe), Reverb (websockets), Scout, Filament v5, and the Spatie suite — Permission, Multitenancy, Media Library, Activity Log, One-Time Passwords, and Query Builder.
Frontend: Vue 3, TanStack Start (SSR), TanStack Router / Query / Form / Table, Tailwind CSS v4, shadcn-vue on reka-ui, Zod v4, Laravel Echo, and Tiptap.
The two apps talk over a stateful Sanctum session — the frontend is a first-party SPA, so there are no API tokens to manage for your own UI, and everything works with plain cookies.
Reading these docs
Each feature page follows the same shape: a short conceptual overview, how the feature behaves for end users, how it works under the hood, and how to extend it. Code samples are taken directly from the codebase, so class and method names can be trusted.
Ready to start? Head to Installation.