koamishin/koamistarterkit
Composer 安装命令:
composer create-project koamishin/koamistarterkit
包简介
KoamiStarterKit - A modern Laravel 13 starter kit with Vue 3, Inertia.js, Tailwind CSS, Fortify authentication, and Wayfinder routing. Production-ready with Octane, comprehensive testing setup with Pest, and automated CI/CD workflows.
关键字:
README 文档
README
Koamishin Starterkit
The Opinionated Laravel Starter Kit for Modern Artisans
🚀 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, Passkeys, and Profile Management ready to go.
- 🔑 Social Login: Login with GitHub, Google, or Facebook via Laravel Socialite. Configure credentials through the admin panel (stored in DB or
.env). - 📦 Modular Architecture: Built on nwidart/laravel-modules — extend with self-contained modules that register their own routes, Filament resources, and Inertia pages.
- 👥 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, social login, 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 activities 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 themes (Default, Rose, Ocean, Sage Garden, Claude).
- 🛠️ 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=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 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
Social Login
Configure OAuth providers for social authentication:
- GitHub: Enable/disable, client ID, client secret, redirect URI
- Google: Enable/disable, client ID, client secret, redirect URI
- Facebook: Enable/disable, client ID, client secret, redirect URI
Each provider shows whether it's using environment variables or database-stored credentials.
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).
Social Login
Social login is managed through the Social Login settings page in the admin panel (/admin/settings). Supports GitHub, Google, and Facebook.
Configuration
Credentials can be set in two ways, with .env taking precedence:
- Environment variables (recommended for production):
GITHUB_CLIENT_ID=your-id GITHUB_CLIENT_SECRET=your-secret GOOGLE_CLIENT_ID=your-id GOOGLE_CLIENT_SECRET=your-secret FACEBOOK_CLIENT_ID=your-id FACEBOOK_CLIENT_SECRET=your-secret
- Database settings (via the Filament admin panel) — stored in the
social_loginsettings group. Falls back to these when.envvalues are empty.
Linking Behavior
| Scenario | Behavior |
|---|---|
| New provider ID | Creates a new user and social account. Email is auto-verified. |
| Existing social account | Logs in the linked user, updates profile data. |
| Matching verified email | Auto-links the social account to the existing verified user. |
| Matching unverified email | Returns 409 — user must verify their email first. |
| Disabled provider | Redirects to login with an error message. |
Code
use App\Enums\SocialLoginProvider; use App\Settings\SocialLoginSettings; $settings = app(SocialLoginSettings::class); // Check if a provider is enabled if ($settings->isProviderEnabled(SocialLoginProvider::Github)) { // Show GitHub login button } // Resolve credentials (env wins over stored settings) $creds = $settings->resolveCredentials(SocialLoginProvider::Google);
Passkeys (WebAuthn)
Passkey authentication is available on both the admin panel (Filament) and the frontend (Inertia login page). Users can register passkeys from their profile settings.
Passkeys are device-bound ("phone-as-passkey" style) and use the browser's native WebAuthn API. Login with a passkey requires only biometrics or device PIN — no password needed.
Frontend Usage
The passkey sign-in button appears automatically on the login page when the feature is enabled. Users can manage passkeys from their security settings.
Configuration
# Config is handled via the admin Application Features settings page # and the config/passkeys.php file
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();
📦 Modular Architecture (nwidart/laravel-modules)
This starter kit supports a modular architecture via nwidart/laravel-modules. Modules live in the Modules/ directory and are self-contained units with their own models, controllers, routes, Filament resources, frontend pages, and tests.
Included Module: Blog
A fully-functional blog module is included as a reference implementation. It demonstrates:
- Filament Resource — CRUD for blog posts in the admin panel
- Inertia Page — Public blog post listing at
/blog - Module Routes — Registered automatically when the module is enabled
- Module Tests — Feature, unit, and Filament tests packaged with the module
Creating a New Module
php artisan module:make MyModule
This scaffolds a new module in Modules/MyModule/ with providers, routing, and configuration files. The module's Inertia pages are auto-discovered (place them in resources/js/pages/) and Filament resources are registered via a plugin class:
class MyModulePlugin implements Plugin { public function register(Panel $panel): void { $panel->discoverResources( in: __DIR__.'/Filament/Resources', for: 'Modules\\MyModule\\Filament\\Resources', ); } }
Modules are enabled/disabled in modules_statuses.json and via php artisan module:enable / php artisan module:disable.
🤝 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
koamishin/koamistarterkit 适用场景与选型建议
koamishin/koamistarterkit 是一款 基于 Vue 开发的 Composer 扩展包,目前已累计 14 次下载、GitHub Stars 达 3, 最近一次更新时间为 2026 年 01 月 29 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「framework」 「boilerplate」 「laravel」 「starter-kit」 「vue」 「pest」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 koamishin/koamistarterkit 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 koamishin/koamistarterkit 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 koamishin/koamistarterkit 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
PHP Framework HLEB2 is the foundation of the web application. Provides ease of development and application performance.
PHP class to extend when building a WordPress plugin allowing you to follow smart plugin setup standards.
Anax htmlform module.
Laravel 5.7 Boilerplate based on Bootstrap 4 and Tabler for Backend.
WordPress Plugin Framework
A Laravel 6 API Boilerplate to create a ready-to-use REST API. User Authentication using JWT.
统计信息
- 总下载量: 14
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 4
- 点击次数: 35
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-29