koamishin/koamistarterkit
| Install | |
|---|---|
composer require koamishin/koamistarterkit |
|
| Latest Version: | v1.2.0 |
| PHP: | ^8.2 |
| License: | MIT |
| Last Updated: | Mar 7, 2026 |
| Links: | GitHub · Packagist |
🚀 Why This Exists?
I've tried different starter kits—including the official Laravel starter kits. They're great, no doubt about it. But every time I started a new project, I found myself doing the same ritual over and over:
- Setting up authentication and user management
- Installing and configuring Filament for the admin panel
- Wiring up roles and permissions
- Adding activity logs, notifications, impersonation
- Setting up development dependencies, linters, and CI/CD
It wasn't a huge deal, but it added up. Hours lost on configuration instead of building actual features.
So I built Koamishin Starterkit for myself. One command, zero friction, and I'm straight into shipping features instead of fighting config files.
Note: This starter kit is configured for specific applications rather than SaaS products. I don't primarily build SaaS applications, so the architecture and features reflect that use case. If I start working on SaaS-based projects in the future, I'll update this to support those needs.
🎯 Who Is This For?
This starter kit is for developers who:
- Want to skip the initial setup phase and get straight to building features
- Work on custom applications rather than multi-tenant SaaS products
- Appreciate having authentication, admin panels, and user management ready out of the box
- Prefer a curated, opinionated setup over making endless configuration decisions
Use it as-is, fork it, or cherry-pick the parts you like—whatever gets you coding faster.
✨ Features
Battery-included, but not bloated. Everything you need to ship.
- 🔐 Complete Authentication: Powered by Fortify. Login, Registration, 2FA, Email Verification, and Profile Management ready to go.
- 👥 Roles & Permissions: Built-in Spatie Permissions. Manage Admins (Filament access) and Users (Inertia access) out of the box.
- ⚙️ System Settings: Powerful settings management with spatie/laravel-settings. Configure application details, features, and security through a beautiful Filament interface.
- 🎨 Auth Layout Switcher: Choose between 3 beautiful authentication layouts (Simple, Card, Split) directly from the admin settings panel.
- ⌨️ User Activity Logs Included with Activity Logs filament plugin to monitor user activites on the application
- 🕵️♂️ User Impersonation: Admins can easily impersonate users to troubleshoot issues, with a visible banner and quick "Leave" action.
- 🔔 Database Notifications: Built-in notification system with a bell icon in the sidebar header. Shows unread count, dropdown list, and mark as read functionality.
- 🎛️ Admin Panel: Pre-configured Filament admin dashboard with User Management.
- 🎨 40+ UI Components: Beautiful, accessible components from Shadcn Vue, plus dark mode and multiple layouts.
- 🛠️ Type-Safe Routing: Wayfinder ensures your frontend knows your backend routes. No more broken links.
- ⚡ High Performance: Laravel Octane + Inertia.js v2 + Vite for instant page loads.
- 🚢 Production Ready: Docker support, GitHub Actions CI/CD, and strict code quality tools (Pint, PHPStan, Rector) pre-configured.
🏁 Getting Started
Prerequisites
- PHP 8.2+
- Composer
- Node.js & NPM/Bun
Installation
You can create a new project using Composer:
composer create-project koamishin/koamistarterkit my-app
cd my-app
Or use laravel new command:
laravel new my-app --using=starter-kit=koamishin/koamistarterkit
⚙️ Setup & Configuration
Once installed, personalize the starter kit with your own project details using our setup wizard:
php artisan setup:starter-kit
This interactive tool will:
- 🎨 Personalize
composer.jsonwith your author and package details. - 🐳 Configure Docker settings (Docker Hub vs GHCR).
- 🤖 Update GitHub Actions workflows to use your repository and registry.
Development
Start the development server with one simple command:
composer run dev
This runs both the Laravel server and the Vite development server concurrently.
📦 What's Inside?
UI Components (Shadcn)
This starter kit includes a comprehensive suite of UI components to jumpstart your development:
Click to view all included components
- Form Elements: Input, Select, Checkbox, Radio, Switch, Slider, Textarea, Form, Combobox
- Feedback: Alert, Badge, Progress, Skeleton, Sonner (Toast), Spinner, Tooltip
- Overlay: Dialog, Drawer, Sheet, Popover, Hover Card, Context Menu, Dropdown Menu
- Layout: Card, Aspect Ratio, Resizable, Scroll Area, Separator
- Navigation: Sidebar, Navigation Menu, Breadcrumb, Tabs, Menubar, Pagination, Stepper
- Data Display: Table, Avatar, Accordion, Collapsible, Carousel, Calendar
- Charts: Extensive charting library support
🔔 Using Notifications
This starter kit includes a database notification system integrated into the sidebar header. Users can view and manage their notifications from the bell icon.
Sending Notifications
Send notifications to users using Laravel's notification system:
use App\Models\User;
use App\Notifications\YourNotification;
$user->notify(new YourNotification());
Creating Notifications
Create a new notification class:
php artisan make:notification YourNotification
In your notification class, define the database channel:
public function via(object $notifiable): array
{
return ['database'];
}
public function toArray(object $notifiable): array
{
return [
'title' => 'Notification Title',
'message' => 'Your notification message here',
'action_url' => '/optional-action-url',
];
}
⚙️ System Settings
This starter kit includes a comprehensive settings management system powered by spatie/laravel-settings with a beautiful Filament interface.
Settings Sections
The settings are organized into three logical sections accessible from the admin panel at /admin/settings:
Application Details
Configure your application's identity and display settings:
- Site Information: Name, description, logo URL, favicon URL
- Date & Time: Timezone, date format, time format
- Contact: Contact email, support URL
Application Features
Toggle application features on or off:
- Authentication Features: User registration, email verification, 2FA, password reset
- User Management: User impersonation, default role for new users
- System Features: Activity logging, notifications
- Auth Layout: Choose between Simple, Card, or Split layout for authentication pages
Application Security
Configure security policies:
- Password Policy: Minimum length, require uppercase/lowercase/numbers/symbols
- Session Settings: Session lifetime, single session per user
- Login Protection: Rate limiting attempts, lockout duration
Auth Layout Switcher
Choose from three beautiful authentication layouts directly from the settings panel:
| Layout | Description |
|---|---|
| Simple | Clean, centered layout with minimal styling |
| Card | Form wrapped in a card component with shadow |
| Split | Side-by-side layout with branding panel |
The layout selection is instant and applies to all authentication pages (login, register, password reset).
Accessing Settings in Code
use App\Settings\ApplicationFeaturesSettings;
// Get settings instance
$settings = app(ApplicationFeaturesSettings::class);
// Access individual settings
if ($settings->registration_enabled) {
// Allow registration
}
// Update settings
$settings->auth_layout = 'card';
$settings->save();
🤝 Contributing
This is a community-friendly project. If you find a bug or have an idea for an improvement, please feel free to open an issue or submit a pull request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
📄 License
Distributed under the MIT License. See LICENSE for more information.
Built with ❤️ by Koamishin