Rostera
A weekly rota that catches double bookings, and a login for each person to see their shifts.
For cafés, shops, clinics and small teams. Often replaces Homebase, When I Work, Sling, Deputy or 7shifts.
Single license $69 · Extended license $149 · paid once, yours for good
What it does
An overlapping shift for the same person is refused, even overnight. Clean back-to-back hand-overs are allowed.
Each person can have their own login. They see their published shifts on their phone, nothing else, and you see what they see.
Staff ask and you approve. After that, nobody can put them on a shift on those days, by any route.
Staff ask to take an open shift, or offer one of theirs to a colleague. You decide once; approval re-checks double bookings and time off.
Move or reassign a published shift and the person sees it marked on My rota. With staff emails on, everyone it touches gets one email.
Times are whole minutes, never floats, so each weekly total is exact. Overnight shifts and clock changes count the real time.
Each person marks their days and hours. The rota shows it, and you can lock availability while you plan.
Save any week as a template and apply it to another as drafts. Double bookings, leavers and time off are skipped.
See scheduled hours against your weekly budget as you build the rota. Hours only, never money.
Staff subscribe once to a private calendar feed and published shifts appear in their own calendar. Revoke it and the feed goes dark.
Publish a week and each person with an address gets their own shifts through your own SMTP. Off by default.
Connect Clockora and the Hours report shows each person's clocked hours beside their rota.
Also: hours on every shift, a rota PDF and hardened CSV, an hours report over any dates, UK dates by default, and a phone install from the browser.
What Rostera deliberately doesn’t do.
- Not a time clock: it plans and publishes shifts; it does not capture attendance.
- No pay rates, ever — hours and coverage, not wages.
- Swap requests exist; approving a swap is always a human act — there is no automated swap engine.
- Email goes through your own SMTP server; telling staff about a published rota is off until you switch it on.
- Single-tenant: one business per installation.
What renting costs instead
3 months of Homebase costs what Rostera costs once.
Read Sep 3, 2026 · source10 months of When I Work costs what Rostera costs once.
Read Sep 26, 2026 · source12 months of Sling costs what Rostera costs once.
Read Sep 3, 2026 · sourceThe full comparison: every rival, what each does better, and who should stay with them →
Replacing one of these? Homebase alternative · When I Work alternative · Sling alternative · Deputy alternative · 7shifts alternative
Release history
For Rostera, 4.1 adds shift texts to staff who ask for them, through your own SMS gateway. What’s new in 4.1 →
For Rostera, 4.0 means updates from inside the app: the Updates page checks for a new release with your license key, verifies Ownware's signature, takes a backup and… What’s new in 4.0 →
3.3 makes a change to the rota reach the person it affects. What’s new in 3.3 →
3.2 put the rota in each person's hands.
The 3.1 wave gave the catalog a way to reach the other side of the transaction: counterparty email through your own SMTP server, calendar feeds your own calendar…
Shift swaps run offer, accept, decide once — approval re-checks the overlap rule for whoever takes the shift at the moment it is granted, so a swap can never create a…
Rostera 2.0 adds the 2.0 owner layer.
What’s in the zip
The tree as the zip ships it — the working leftovers the packager deletes are not listed
- .htaccess
- API.md
- Dockerfile
- LICENSE.txt
- QUICKSTART.txt
- README.md
- assets/
- bin/
- config.sample.php
- controllers/
- deploy/
- import-maps/
- index.php
- install/
- manifest.json
- offline.html
- router.php
- src/
- sw.js
- tests/
- views/
src/Shift.php: a real module, the first 24 of 305 lines
Chosen as the largest module in src/ that is not one of the shared cores — this product's own logic, not a file every product carries.
<?php /** * Shift.php — THE shift-scheduling core Rostera stands behind (fully covered by tests/run.php, * offline). Nothing here touches the database or the network. Every rule the product enforces — * clock-time parsing, shift DURATION (integer minutes, midnight-crossing, DST-safe), weekly totals, * overlap / double-booking detection, week-boundary maths for a configurable week-start day, and the * CSV export hardening — lives here as pure, deterministic functions so it can be proven in isolation * and reused identically by the web UI, the seeder and the exporters. * * UNIT: every time is an INTEGER of MINUTES. * - A clock time is minutes-since-midnight (0..1439): "09:30" -> 570. * - A duration is a whole number of minutes: an 8-hour shift is 480. There is no float anywhere in * the duration/total path, so weekly totals are exact and never drift. * * DST (the moat): a shift's REAL duration is computed in the business timezone with real calendar * instants, so a shift on a spring-forward / fall-back day counts the true elapsed time — e.g. a NY * shift 01:00->05:00 on the March spring-forward day is 180 real minutes, not the 240 wall-clock * minutes, because the 02:00 hour does not exist. Overlap/booking maths, by contrast, run on a * wall-clock day-ordinal timeline (double-booking is about the clock the roster is written in), which * is DST-immune because it is anchored at UTC midnight. * * Positioning: Rostera plans SHIFTS ONLY — who is scheduled, when, and for how long. It is NOT * payroll: it holds no pay rates or wages, touches no money/cards/bank rails, has no time-clock or * biometric capture, and initiates no payments. It records planned shifts and their hours.
Runs on: 2-minute web installer, plain PHP 8.1+ with MySQL (or SQLite for a trial), no Composer or build step — Docker image included. Tested on PHP 8.3. Or run it in Docker: the Dockerfile is in the zip.
Technical owners can install it with one line and their license key: curl -fsSL https://ownware.io/install.sh | sh -s -- rostera <your license key>
Nothing is obfuscated or encoded; what you read is what runs. Manual · API · the test run
Which license do I need?
It comes down to how many installations you need. Running your own business on one site is the Single license. A second domain of your own, or sites you build or run for other people, is the Extended license.
- Install it on one domain or subdomain you own or operate
- Change the source however you like for that installation
- Run your own business on it commercially, client work included
- Re-download the current build any time from your buyer portal
- A second site, or an installation you hand to a client as theirs, needs the Extended license
- No reselling, redistributing or sublicensing the source
- Not for offering it to other people as a hosted service
- Everything the Single license grants
- Install it on as many domains as you own or operate — no cap on the number
- Up to ten client installations, one per client project, handed over or hosted for each client; for more, buy another Extended license
- White-label: remove or replace the product name and logo in the screens of client installations
- Still no reselling or redistributing the source itself
- Running it as a multi-tenant service others sign up for needs a SaaS agreement
Every download carries the full terms as LICENSE.txt. The complete wording is on the terms page.
After you buy
The app’s Updates page installs a new release with your license key, with the release’s signature checked and a backup taken first. Your download link always serves the current build. Download again any time from your order page or the buyer portal; there is no renewal fee.
Email support for installation and for defects in the code as delivered: a person reads and answers every message. It does not cover custom development or server administration. What support covers
Refunds are handled by Lemon Squeezy as merchant of record, case by case. EU consumers keep the statutory 14-day right until delivery starts. Refund terms
It keeps running: your server, the full PHP source, no license check that can fail. If no stable release is published for 365 days, the domain limit lifts; after three such years your copy becomes MIT-licensed. The terms have the exact wording: continuity.
Questions
Is Rostera payroll?
Is it a time clock?
How exact are the hours?
MySQL or SQLite?
What if the developer disappears?
Does the price go up as I add staff?
What happens to hours across a daylight-saving clock change?
Will a clean hand-over show up as a double-booking?
Can staff publish the rota or approve their own swap?
How do staff see the published rota?
Covered in these guides
- What's new in Own It 4.1
- What's new in Own It 4.0
- What's new in Own It 3.3
- What's new in Own It 3.2
- EU-hosted scheduling: the questions to ask
- PWA-installable booking on your own server
Also covered in: Staff leave and PTO software you own · Rent versus own: the method behind the sums · Scheduling software and EU data residency · Booking software for multiple providers · Self-hosted appointment booking for multiple staff · The workforce stack, bought once: rota, timesheet, leave, onboarding and training records that agree with each other, and 11 more in the guides.
More about Rostera
Self-hosted staff shift scheduler — a weekly rota, exact hours, double-booking caught.
The problem it solves
Cafés, shops, clinics, and small ops teams build the weekly rota in a spreadsheet or a group chat — and every week it goes wrong the same ways: two people booked for the same shift, someone quietly pushed past their hours, an overnight shift counted wrong, and no clean copy to hand the team. Scheduling SaaS fixes it but charges per employee every month, and usually tries to bolt on payroll and a time clock you didn't ask for.
- Double-bookings and gaps nobody spots until the shift
- Weekly hours that don't add up, and overnight shifts counted wrong
- Per-seat monthly SaaS, bundled with payroll/time-clock you don't want
Every feature
- Publishing a rota can tell the staff. Publish a week and each employee with an address gets their own shifts — just theirs — through your own SMTP. Off by default; an invalid address is stored blank rather than wrong.
- Rota feeds calendars subscribe to. Per-employee and whole-roster token-guarded .ics feeds: staff subscribe once and published shifts appear in their own calendar. Revoke a token and that feed goes dark.
- Weekly rota grid. Staff down the side, the seven days of the chosen week across the top; navigate week to week with a configurable week-start day.
- Assigned or open shifts. Each shift has a date, start/end time, role or location, and a draft/published status — assigned to a person or left open for anyone to pick up. Shifts that cross midnight are handled correctly.
- Exact weekly hours. Times are stored as integer minutes, never floats, so each person's weekly total is exact to the minute, shown against an optional weekly-hours target.
- Double-booking detection. An overlapping shift for the same person is blocked; clean back-to-back hand-overs are allowed; correct even for overnight shifts that spill into the next day.
- DST-safe shift lengths. A shift on a spring-forward or fall-back day counts the true elapsed time — a lost hour in spring, a gained hour in autumn.
- Publish, PDF & hardened CSV. Publish a week (or one shift) in a click, print a dependency-free PDF of the rota grouped by person, and export a spreadsheet-formula-injection-hardened CSV; plus an hours report over any date range.
- Installable mobile app (PWA). Add it to a phone or tablet home screen straight from the browser — a full-screen app served from your own server, with no app store involved. Business data is not stored offline on the device; what you see is read live.
- My rota for every person. Each person can have their own login: their published shifts on their phone, nothing else. You see exactly what they see.
- Open shifts, asked for. Publish an open shift; staff ask to take it; you approve. Approval re-checks double-booking and time off.
- Swaps without the group chat. Staff offer a shift, a colleague picks it up, you decide once.
- Time off that sticks. Staff ask, you approve, and nobody can put them on a shift on those days: by hand, by drag, by copying last week, through the API, an import or an AI tool.
- When they can work. Each person marks their days and hours; the rota shows it and "who's free" lists them last when a shift falls outside it.
- Save a week, reuse it. Save any week as a template and apply it to another as drafts; double-bookings, leavers and time off are skipped.
- An hours budget for the week. See scheduled hours against your weekly budget as you build the rota. Hours only, never money.
- Clocked vs rostered, with Clockora. Connect Clockora and the Hours report shows each person's clocked hours beside their rota.
- Lock availability while you plan. Staff see theirs; changes wait for you.
- A changed shift reaches the person on it. When a published shift moves or goes to someone new, the person on it sees it marked on My rota. With staff emails on, everyone it touches gets one email saying what changed, including someone whose shift was deleted or given away.
- Hours on every shift. Each shift on the rota shows its length beside its times, readable on a phone.
- UK dates by default. New installs show dates the UK way (26 Sep 2026, 14:05); switch to the US style in Settings if you prefer.
- Updates from inside the app. The Updates page installs a new release with your license key: Ownware's signature is checked, a backup is taken first, and the app puts the previous version back by itself if the update is interrupted or the database step or start-up check of the new version fails. It never checks by itself.
- Backups by themselves. Automatic backups, an optional copy to S3-compatible storage you own, and a weekly check that the latest backup reads back. The Health page names anything that needs attention.
- Switch from Deputy. Upload Deputy's team member export and schedule export. A switch report checks every row with Rostera's own rules before one Import button brings them across, and importing the same file again adds nothing.
- Shift texts to your staff. Through your own SMS gateway, for staff who ask on their own My rota page: a text when their shifts are published or change, and, if they choose, when open shifts are up for grabs. Every text has a stop link.
- Own It 4.0.1 — fixes and an up-to-date manual. For Rostera, 4.0.1 fixes an installer and its sign-in, two-factor, invite and not-allowed pages that had lost their styling, a rollback that a page opened during an update could stop and a command-line update that ended in an error after putting the previous version back. Its manual, FAQ and QUICKSTART now cover everything 4.0 added, including two Nginx rules that keep the data folder private. Your license covers it: press Check for updates on the Updates page, or download it from your order page.
- Own It 4.0.2 — the installer opens on every host. For Rostera, 4.0.2 fixes a fresh install on an Apache host: the one-page setup at /install/ looped back to itself and never opened, and now it opens. Your license covers it: press Check for updates on the Updates page, or download it from your order page.
Release notes in full
- Own It 4.1: shift texts to your staff. For Rostera, 4.1 adds shift texts to staff who ask for them, through your own SMS gateway. An Extended license bought from October 4, 2026 covers up to ten client installations, one per client project: hand each one over to the client or host it for them, with the client's logo and colors from the app's branding settings. The API reference now shows how to connect Rostera to Zapier, Make or n8n, using its own webhooks and API key. Your license covers the update: press Check for updates on the Updates page, or download it from your order page.
- Own It 4.0: it updates and backs itself up. For Rostera, 4.0 means updates from inside the app: the Updates page checks for a new release with your license key, verifies Ownware's signature, takes a backup and puts the previous version back by itself if the update is interrupted or the database step or start-up check of the new version fails. A new install can start with a sample business and remove it in one click; backups run by themselves, with an optional offsite copy and a weekly check that the latest one reads back; and the Health page says whether the install is looking after itself. It also switches you over from Deputy: the team and the schedule.
- Own It 3.3: a changed shift reaches the person on it. 3.3 makes a change to the rota reach the person it affects. When a published shift moves or goes to someone new, it is marked on their My rota and, with staff emails on, everyone it touches gets one email saying what changed. Each shift also shows its hours beside its times, and new installs show dates the UK way.
- Own It 3.2: the rota in every person's hands. 3.2 put the rota in each person's hands. With their own My rota login, staff see their published shifts on their phone, ask to take an open shift, offer a swap, ask for time off and mark when they can work, and every decision stays with you. For you it added week templates, an hours budget for the week, an availability lock while you plan and, with Clockora connected, clocked hours beside the rota.
- Own It 3.1: it writes to the people you serve. The 3.1 wave gave the catalog a way to reach the other side of the transaction: counterparty email through your own SMTP server, calendar feeds your own calendar subscribes to, attachments filed where the paperwork belongs, and export presets other people's software imports. Each outbound feature ships switched off and runs on your own credentials; a failed send is recorded, and the action that triggered it stands. What this app gained is listed at the top of this section.
- Own It 3.0: works for your AI, not just for you. Shift swaps run offer, accept, decide once — approval re-checks the overlap rule for whoever takes the shift at the moment it is granted, so a swap can never create a double-booking. Over MCP, assigning a shift hits the same guard and refuses a conflict by name. The weekly roster PDF is the print-and-pin artifact.
- Own It 2.0: API, 2FA, backups, dark mode. Rostera 2.0 adds the 2.0 owner layer. Upgrade by replacing the files — the database migrates itself, and it is still the same one-time purchase.
Browse self-hosted: Workforce management software · Gym & studio software · Salon & clinic software · Restaurant & café software · School & training-provider software · Charity, club & association software · Event & venue software · Cleaning & facilities-management software · Hotel & hospitality software