Cohort - Laravel HR and People Management Template
hotDirectory, reporting tree, leave calendar, timesheets, hiring board and approvals, running on Laravel 13 with Eloquent tables behind every write.
What is included
- Approvals write through. Deciding a Leave ticket also settles the linked leave_requests row.
- Booking recomputes days. The server recounts working days, saves Pending, and creates the approval row.
- Pipeline drag persists. Dropping a card PATCHes the stage and resets stage_changed_on, which drives the stalled flag.
- CSV import, one transaction. validateRows flags every row in the browser, then one DB::transaction writes them, managers resolved second.
- Timesheet cells clear. Logging zero minutes deletes that day's time_entries row.
- Working week drives both. Settings writes org_config.working_days, which narrows the timesheet grid and reprices the next booking.
- Passkeys and two-factor. Fortify runs registration, reset, verification, two-factor and passkeys, with Security behind a password prompt.
- Nothing loads blank. A CSS bar in app.blade.php ramps before the bundle lands, and visits keep the current page up.
Who it is for
- Replacing an HR spreadsheet with software Leave maths, the approval trail and the reporting tree already persist to SQLite.
- A Laravel team building an HRIS 12 controllers, 16 form requests and 29 Pest files are laid out to extend.
- Shipping an internal tool this quarter One FrankenPHP Dockerfile serves PHP and assets together.
Frequently asked questions
Roster ships the same screens. Why pick this one?
Roster is the same people operations product as a React SPA reading typed mock modules, so its edits live in the browser. Cohort is Laravel 13 and Inertia over Eloquent: the directory, calendar, timesheets, board and queue are the same, but every write goes through a controller and a form request into SQLite. Golden fixtures dumped from Roster's TypeScript sit in tests/fixtures, and 53 of them are asserted against this backend, so the JSON the React components receive is identical.
Is authentication actually wired?
Yes. Laravel Fortify handles sign-in, registration, password reset, email verification, two-factor with confirmation and passkeys. Every screen sits behind the auth middleware, all of them except the profile settings page also require a verified email, and Security adds a password confirmation gate. Seeding creates one account, nick@reui.io, and the README prints its password.
What is seeded, and does the app use today's date?
Seeding builds Cohort UK: 21 people, 5 job openings, 36 candidates, 34 leave requests and four weeks of timesheets. Now is pinned to 2026-07-30 in app/Support/Today.php rather than read from the clock, because the seed and the parity fixtures were authored against that instant. Replace the seed and you swap that constant for the wall clock. The Dockerfile migrates at build time and keeps seeding behind a build arg, so a deploy does not ship the demo company.
What do I get when I download a template?
The full source of a standalone project: every page, component, route, and style, ready to run locally. Templates are built entirely from ReUI blocks and components, so the code matches the registry you already use.
Do I need a plan to download templates?
Free templates only need a ReUI account, so sign in and download. Every other template is included with the Ultimate plan, alongside all blocks and Motion Icons.
Are templates sold individually?
No. Templates come with the Ultimate plan rather than as separate purchases, so one upgrade unlocks the whole catalog, including everything added later.
How do I install a template?
Download the source, install dependencies with your package manager, add your environment variables, and run the dev server. Each template ships a README with its own setup steps.