Jobora
Quotes that turn into jobs, a schedule board that refuses double-booking, and invoices customers can pay by card.
For field-service firms with technicians on the road. Often replaces Jobber, Housecall Pro or Tradify.
Single license $129 · Extended license $259 · paid once, yours for good
What it does
A week per screen, a lane per technician. Drag a visit to another day or person; a double-booking is refused in plain words.
Line items, per-line tax and a discount. The customer accepts from a link with no login, and the quote becomes a job once.
Switch on card payment with your own Stripe account. The card goes to Stripe, never to Jobora, and the invoice records the payment itself.
Labor, materials and subcontractors logged against what was quoted. A job nobody quoted shows an unknown margin, never zero.
Payment reminders, quote follow-ups and a visit reminder the day before, through your own email server. Each kind is off until you tick it.
Customers pick a free morning or afternoon over the next two weeks. Each request waits for you to accept or decline it.
Set a plan once and each visit appears on the board eight weeks ahead. A clash is flagged, never forced.
Switch it on and technicians get the jobs, schedule and checklists, but no price, rate or margin.
A signature captured on a phone, stored with the job and printed on the PDF. A blank pad is refused.
The technician answers each check done or not applicable. A job with a check left open cannot be closed.
Each technician's stops for the day in order, with one directions link through them all.
Your issued invoices, line by line with tax, and your customers, ready for QuickBooks Online's Import data screen.
Also: before-and-after photos, quote and invoice PDFs, a phone home-screen app and eight MCP tools for your AI.
What Jobora deliberately doesn’t do.
- One business per installation. Your team shares it with viewer / member / admin roles. Two trading companies means two installations.
- Jobora never processes a card. Card payment happens on your own Stripe account's page and Jobora records what Stripe reports. A refund made in Stripe is not mirrored back.
- No stock control. A material line is a cost against a job, not a draw from an inventory.
- Repeat work places visits eight weeks ahead and invoices each visit on its own; there is no monthly bundled invoice.
- No customer accounts: customers use their own document link, and, if you switch it on, the booking page.
- Email is off until you switch it on, and it goes through your own SMTP server. No relay.
- A signature is captured, not verified. Not identity verification, not eIDAS-qualified. On a server without GD the blank-pad check falls back to a size floor, so a very small signature could be refused.
- The margin is only as honest as what you log.
- No offline mode.
- English only.
- Automatic follow-ups run when someone opens the dashboard, or from a daily cron call; on a host with no cron where nobody opens Jobora that day, nothing goes that day.
What renting costs instead
5 months of Jobber costs what Jobora costs once.
Read Oct 9, 2026 · source3 months of Housecall Pro costs what Jobora costs once.
Read Sep 24, 2026 · source1 month of Tradify costs what Jobora costs once.
Read Aug 22, 2026 · sourceThe full comparison: every rival, what each does better, and who should stay with them →
Replacing one of these? Jobber alternative · Housecall Pro alternative · Tradify alternative · Service Fusion alternative · Kickserv alternative · ServiceTitan alternative · FieldPulse alternative · FieldEdge alternative · Workiz alternative
Release history
For Jobora, 4.1 adds texts to customers who agreed, through your own SMS account: visit reminders, "on my way", and quote and invoice texts if you tick them. What’s new in 4.1 →
For Jobora, 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 →
The customer import's preview used to count a customer who already exists, a name twice in the file or a bad email address as ready, and the import then skipped them. What’s new in 3.4 →
3.3 is the detail that decides whether a tool fits a working day.
The 3.2 wave let the people you serve do things for themselves.
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…
Eight MCP tools over the same guards a person faces: an agent can read the board, quote, and book — and every read-only tool says so in its own annotation.
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/Chaser.php: a real module, the first 24 of 665 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
/**
* Chaser.php — 1.1: the follow-ups a crew owner otherwise types by hand, on a schedule the owner
* approves once. Three kinds, each with its own switch, all off by default:
*
* invoice payment reminders, steps in days from the due date (default -3, 0, 7, 14). This is
* Invora 3.2's released reminder engine (01-invora/app/src/AutoRemind.php) on the same
* money engine; its rules are kept as they are.
* quote follow-ups on a quote nobody has answered, steps in days after it was sent
* (default 3 and 10). A quote that is accepted, declined or past its valid-until date
* is never chased.
* visit "we are with you tomorrow", once, the day before each planned visit.
*
* Every rule errs on the side of NOT sending:
*
* 1. Armed only when the kind's own switch, customer email (the master switch every customer mail
* already needs) and the owner's own SMTP all agree. A demo install records in the outbox and
* opens no socket (ClientMail's rule).
* 2. A step goes at most once per document. The outbox row is CLAIMED before anything is sent
* ("auto:<day>:<kind>:<id>:<step>", UNIQUE), so two page loads running the schedule together
* cannot both mail the customer, and a daily cap counts every claim of the day.
* 3. A step owns the days from its own day until the next step's day, never more than WINDOW_DAYS:
* a customer first seen long after a date gets at most one message, never the whole schedule.
* A visit reminder is only ever sent on the day before the visit.Runs on: Web installer sets up in about two minutes; PHP 8.1+ with MySQL/MariaDB or SQLite, standard shared hosting compatible. 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 -- jobora <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 the invoice math really the same as Invora's?
What happens if I drag a job onto someone who is already out?
Does it take payments?
Will this run on shared hosting?
Is the signature legally binding?
Is it charged per engineer, per month?
If I edit a quote after it was accepted, does last month's margin change?
Will it start emailing my customers as soon as it is installed?
Can I reopen a completed job?
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.4
- What's new in Own It 3.3
- What's new in Own It 3.2
- Leaving ServiceTitan? Contracts, add-ons and switching
Also covered in: The field-service stack, bought once: the quote that becomes a job, the van's service date, the kit that goes out, and the checks that come due · Jobora 1.0.1 — a numbering fix after "Load demo data" · A buyer's AI agent vetted us before they bought. Here is what it fetched, what 404'd, and what we changed. · What Field-Service Software Costs to Rent — and What Changes the Day You Own the Schedule.
More about Jobora
Self-hosted field-service software: quotes that turn into jobs, a drag-and-drop schedule board, real job costing and invoices — bought once.
The problem it solves
A small trade business runs on four things that never live in the same place: the quote you sent, the day it is booked for, what it actually cost you, and whether the customer has paid. The quote is in email. The schedule is a whiteboard or a group chat. The costs are in a shoebox. The invoice is in a spreadsheet — and the margin is a feeling you get at the end of the month.
- Field-service SaaS is sold per user, per month, and the tier that includes scheduling is rarely the cheap one
- The one-time scripts in this niche are usually job lists — a title, a status, a date, and nothing that tells you whether the work made money
- The two screens that decide whether the software gets used are the ones most often missing: a schedule you can drag, and a margin you can see
Every feature
- The schedule board. A week per screen, a lane per technician, a block per visit, positioned by real time. Drag a block to another day or another person and it moves on the server — refused, in plain words, if it would double-book somebody. No JavaScript? Every block carries a plain move form, so the board still works on a locked-down machine.
- One conflict rule, four doors. The drag, the booking form, the REST API and the AI tool all call the same function. A rule that lives in one place cannot disagree with itself, and a test asserts that no second copy of it exists.
- Quotes that become jobs. Line items with quantity, unit price, per-line tax and an invoice-level discount. Send it, the customer opens a tokenized link with no login, accepts, and the quote converts to a job exactly once — from the button, the public page, the API or an agent, all through one conversion function.
- Job costing with a real margin. Labor, materials and subcontractor costs logged against the job, against what was quoted. A job nobody quoted shows a margin of unknown — never zero, because zero is a claim and unknown is the truth.
- Invoices from Invora's money engine. Not a second money engine: the totals and status functions are byte-identical to Invora's, proven by a test that diffs the two function bodies and by Invora's own published reference case reproducing to the cent on both SQLite and MySQL. Integer cents throughout.
- Sign-off at the door. A canvas signature captured on a phone, stored with the job and printed on the PDF. A blank pad is refused — a blank filed as a signature is worse than none.
- Before-and-after photos. Byte-sniffed image uploads against the visit, so a file that claims to be a photo has to actually be one.
- PDFs that leave the building. A customer-facing quote PDF, a customer-facing invoice PDF, and an internal job sheet that carries the margin — the one document you do not send out.
- On the phone in the van. Add Jobora to a phone's home screen from the browser: the board, the job, the photos and the signature pad, served from your own server. It needs a connection; there is no offline mode.
- Built with the owner layer. The Own It cards below describe the catalog-wide owner layer; Jobora 1.0 was built with all of it included.
- Get paid from the invoice. Switch on card payment with your own Stripe account and your customer's invoice page shows a "Pay by card" button for what is still owed. The card is typed into Stripe's page, never into Jobora, and the money goes from Stripe to your bank. When Stripe reports the payment, the invoice records it by itself, once, in part or in full. Off until you switch it on.
- The chaser. Payment reminders around the due date, a follow-up on a quote nobody has answered, and a reminder to the customer the day before a visit, through your own email server. Each kind is off until you tick it, never sends the same step twice or a backlog in a burst, and can be paused per job, per quote or invoice, or per customer. A preview shows exactly what goes out today.
- Repeat work. Cleaning rounds, service contracts and gardens: set a plan once (every week, every few weeks, or every month on a day) and each visit appears on the board eight weeks ahead, through the same double-booking check. A clash is flagged, never forced, and each visit is invoiced at the plan's price.
- Job checklists. Write the checks a kind of job always needs once. The technician answers each one done or not applicable on the job, the job cannot be closed with a check left open, and the job sheet prints the answers.
- Book online. Switch on a booking page and customers pick a morning or afternoon that is actually free over the next two weeks. Each request waits for you to accept it onto the board or decline it, and nothing is double-booked.
- The day's route. See each technician's stops for the day in order, with one directions link through them all, and the unbooked jobs grouped by area.
- QuickBooks Online import files. Download your issued invoices, line by line with tax and discounts, and your customers, ready for QuickBooks Online's Import data screen.
- Field staff see no prices. Switch it on and technicians get the jobs, the schedule, the checklists and the sign-off, and no price, rate or margin. Quotes and invoices stay with the office, on the page, in the PDF and through a technician's API key.
- 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 Jobber. Upload Jobber's client export. A switch report checks every row with Jobora's own rules before one Import button brings your clients across, and importing the same file again adds nothing.
- Texts to your customers. Through your own SMS account, only to customers who agreed: a visit reminder before a planned visit, an "on my way" text from the job page, and, if you tick them, a text when a quote is ready or an invoice falls due. Your provider bills you; Jobora sells no credits.
- Own It 4.0.1 — fixes and an up-to-date manual. For Jobora, 4.0.1 fixes an installer that had lost its styling 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 Jobora, 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: texts to your customers. For Jobora, 4.1 adds texts to customers who agreed, through your own SMS account: visit reminders, "on my way", and quote and invoice texts if you tick them. 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 Jobora 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 Jobora, 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 Jobber: your clients, checked before they come across.
- Own It 3.4: the customer import preview tells the truth. The customer import's preview used to count a customer who already exists, a name twice in the file or a bad email address as ready, and the import then skipped them. Now the preview names each of them before you import.
- Own It 3.3: prices stay with the office. 3.3 is the detail that decides whether a tool fits a working day. For Jobora, it is a switch for your technicians: they get the jobs, the schedule, the checklists and the sign-off, and no price, rate or margin. Quotes and invoices stay with the office, on the page, in the PDF and through a technician's API key.
- Own It 3.2: the customer books, the invoice gets paid. The 3.2 wave let the people you serve do things for themselves. For Jobora, that meant customers who ask for a free morning or afternoon on your booking page and pay the invoice by card through your own Stripe account, while the chaser sends payment reminders, quote follow-ups and visit reminders in your name, each kind off until you tick it. Behind it came repeat work placed on the board eight weeks ahead, checklists on the job, each technician's route for the day and QuickBooks Online import files.
- 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. Jobora was built after the 3.1 wave, so it shipped with its outbound paths already in place: a quote emailed to your customer with an accept link, and your schedule as a calendar feed. Both are off until you switch them on.
- Own It 3.0: works for your AI, not just for you. Eight MCP tools over the same guards a person faces: an agent can read the board, quote, and book — and every read-only tool says so in its own annotation. Signing, deleting and taking payments are deliberately not on the list.
Browse self-hosted: Field, stock & service software · Trades & field-work software · Construction & building-trade software · Garage & vehicle-service software · Cleaning & facilities-management software