Installation
Replace laravel/jetstream with sooand/turbojetstream in your composer.json:
composer require sooand/turbojetstream
Run the Jetstream installer with the --framework flag for Svelte/Vue:
php artisan jetstream:install --framework=svelte
# or
php artisan jetstream:install --framework=vue
First Use Case
resources/js/Pages/Auth/Login.svelte).resources/js/Pages/ for framework-specific files and ensure vite.config.js includes Svelte/Vue plugins.Framework-Specific Scaffolding
.svelte files for components (e.g., Login.svelte). Leverage Svelte’s reactivity and lifecycle hooks in auth/team pages.--framework=vue flag. Components remain .vue files (e.g., Login.vue), but TurboJetstream ensures compatibility with Jetstream’s auth logic.resources/js/Pages/Profile/Show.svelte to customize user profiles:
<script>
import { Head, usePage } from '@inertiajs/inertia-svelte';
let user = usePage().props.user;
</script>
<Head title="Profile" />
<div>{user.name}</div>
Inertia Integration
@inertiajs/inertia-svelte (Svelte) or @inertiajs/inertia-vue3 (Vue) for routing.Link components (e.g., <Link href="/dashboard">Dashboard</Link>).Team/Invitation Logic
TeamMemberInvitation model) by overriding resources/js/Pages/Teams/Invite.svelte or Invite.vue.InvitationsController and adapt the frontend to display invite statuses (e.g., "Pending" vs. "Accepted").Theming with Daisy UI (Future)
.svelte/.vue files with Daisy UI classes (e.g., btn btn-primary instead of bg-blue-500).app/Http/Controllers/Auth/RegisteredUserController) while customizing only the frontend.routes/api.php for custom endpoints.@testing-library/svelte or @vue/test-utils alongside Laravel’s HTTP tests.Framework Mismatch
--framework=svelte but using Vue components (or vice versa) will break builds.node_modules and reinstall if switching frameworks:
rm -rf node_modules && npm install
Missing Svelte/Vue Plugins
vite.config.js:
// For Svelte
import { svelte } from '@sveltejs/vite-plugin-svelte';
plugins: [svelte()],
npm run dev to catch missing dependencies.Jetstream Auth Logic Assumptions
Login.svelte) without preserving Jetstream’s validation/error handling.<script>
export let errors;
export let status;
</script>
Team Invitation Quirks
TeamMemberInvitation model and InvitationsController for custom logic.npm run dev -- --force.resources/js/Pages/ files match route names in routes/web.php (e.g., Profile/Show → /profile).@csrf directives in forms.Custom Frontend Frameworks
--framework flag. Contribute by:
react option to JetstreamServiceProvider..jsx files in resources/js/Pages/.// app/Providers/JetstreamServiceProvider.php
$frameworks = ['vue', 'svelte', 'react']; // Add 'react'
Daisy UI Migration
sed -i 's/btn-blue-500/btn-primary/g' resources/js/Pages/*.svelte
Multitenancy
Team model and TeamController to include tenant logic:
use Spatie\Multitenancy\Tenancy;
public function store(Request $request) {
$tenant = Tenancy::resolve();
// Custom tenant-aware logic
}
How can I help you explore Laravel packages today?