Visitora
A reception kiosk and one evacuation list naming everyone inside, kept on the device when the network dies.
For reception desks and site safety. Often replaces Envoy, Greetly, Sign In App or Vizito.
Single license $79 · Extended license $179 · paid once, yours for good
What it does
Staff, contractors and visitors, newest first, with each host's phone number. One tap marks a person accounted for, with a running tally.
The evacuation page is kept on the device. If the network goes, it still shows the list as of the last load.
A personal link each, no account. Several wardens tick people off at once, and it keeps working when the network drops.
A printed muster sheet with a tick box per row, and a CSV, are one click each.
A full-screen reception page where visitors sign themselves in and get a badge number. Nothing else to wander into.
Staff tap in and out at the kiosk with a personal code, or from their phone. Presence only: no timesheets.
By email, or in Slack, Microsoft Teams, Google Chat or Discord. Off until you switch it on.
Numbers come from the badges you own and return on sign-out. The kiosk prints on any printer, and visitors scan out.
Visitors accept your safety rules or NDA before signing in, and expected visitors arrive already on the list.
Write an induction or permit-to-work summary once. Every contractor accepts it at the kiosk, and the exact text stays on their visit.
Couriers sign parcels in and the recipient hears by email or chat. Reception is told when someone on the watchlist signs in.
Name your entrances and put a kiosk at each. Every visit records the door it came in by.
Also: staff names kept off the kiosk, contractors listed apart, and a list that can never drift.
Self-hosted without the assembly
The other answer to “self-hosted” is a repository: clone it, read the compose file, provision a database, wire up mail, then keep it patched yourself. That is a fair answer when running infrastructure is already your job, and we would rather say so than pretend otherwise. This is the other kind. It is bought once at $79.00, the full PHP source is in the download, and the web installer finishes on ordinary shared hosting in about two minutes. No Composer, no Node, no build step, nothing to compile, and nothing that phones home.
What Visitora deliberately doesn’t do.
- **A sign-in book, not a security system.** It records what people tell it — no ID scan, no passport read
- **No door access, no turnstiles, no badge encoding** — it does not unlock anything
- **No photo capture, no ID upload** — deliberate: neither is needed to answer "who is inside", and both are data you then have to protect
- **Single-tenant: one site per installation**
- Email through your own SMTP server and texts through your own SMS gateway, both off until you switch them on — no push, and Visitora sells no credits for either. A host gets arrival texts only if they ask for them, and arrivals can also be posted to your team's Slack, Teams, Google Chat or Discord channel
- **The visitor is never emailed a copy of their visit** — only the host arrival notice and the pre-registration link
- **Not legal advice** — the right retention period, and whether your site rules are adequate, are your decisions
What renting costs instead
1 month of Greetly costs what Visitora costs once.
Read Sep 3, 2026 · source1 month of Envoy costs what Visitora 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? Greetly alternative · Envoy alternative · Vizito alternative · Sign In App alternative
Release history
For Visitora, 4.1 adds a text to the host when their visitor signs in, through your own SMS gateway, for hosts who ask for it. What’s new in 4.1 →
For Visitora, 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 →
For Visitora, 3.3 gives contractors their own document: an induction or permit-to-work summary that every contractor reads and accepts at the kiosk, with the exact… What’s new in 3.3 →
For Visitora, 3.2 put everyone on the fire roll call: staff tap in beside visitors and contractors, and wardens tick people off on their own phones.
Visitora was built after the 3.1 wave.
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
- QUICKSTART.txt
- assets/
- bin/
- config.sample.php
- controllers/
- cron/
- deploy/
- index.php
- install/
- manifest.json
- offline.html
- router.php
- src/
- sw.js
- tests/
- views/
src/Visit.php: a real module, the first 24 of 584 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 /** * Visit.php — THE core: who is inside the building, right now (fully covered by tests/run.php). * * Four properties, all provable, all tested: * * 1. ON SITE IS DERIVED, NEVER STORED. A visit is on site when it has a sign-in time and no * sign-out time. There is no `is_onsite` column to go stale, no nightly job to forget, and * no way for the evacuation list to disagree with the visit log. Everything else — the * dashboard count, the CSV, the badge check, the API — reads the same one rule. * * 2. SIGNING OUT IS IDEMPOTENT AND CANNOT BE UNDONE BY A RACE. `signOut()` is a conditional * UPDATE (`WHERE signed_out_at IS NULL`), so two taps, two devices or a double-submitting * kiosk produce exactly one sign-out at one time. It reports whether it was the one that * did it, so callers never announce an event that did not happen. * * 3. WHAT A VISITOR AGREED TO IS SELF-CONTAINED. When a visitor accepts the site rules, the * exact text and its SHA-256 are stored ON the evidence row, not a pointer to a settings * field somebody can edit afterward. Changing the rules tomorrow cannot rewrite what * somebody accepted today, and proving it needs no join. * * 4. BADGE NUMBERS ARE REUSED, NOT EXHAUSTED. A badge is physical: it comes back and goes out * again. The allocator hands out the lowest number in the configured range that nobody on * site is holding — so a reception desk with 50 badges never runs out on visitor 51, and
Runs on: Web installer in about two minutes; plain PHP 8.1+ with MySQL/MariaDB (or SQLite for a trial), no Composer and no build step — Docker one-liner 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 -- visitora <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
Does it unlock doors or print encoded badges?
Does it verify identity?
What happens when the wifi drops during an evacuation?
Can it text a host instead of emailing?
Can one install cover several sites?
Is it priced per site, or per visitor?
Can the evacuation list ever disagree with the sign-in log?
Could a data purge remove somebody who is still in the building?
Can an AI agent sign a visitor in?
Covered in these guides
- What's new in Own It 4.1
- What's new in Own It 3.3
- What's new in Own It 3.2
- The Studio Suite: booked, signed, current, counted
- The Front-Desk Suite: the counter nobody budgets for
- Self-hosted booking, simple to use, with an API — the direct answer
Also covered in: What a Reception Sign-In Book Rents For — Visitor Management Priced Per Site, Per Year.
More about Visitora
Self-hosted evacuation list for reception and site safety: one page naming everyone still inside — staff, contractors and visitors — derived from the sign-in log and kept on the device for when the network dies.
The problem it solves
A self-hosted visitor sign-in system for reception is rare: most are cloud SaaS billed monthly per location — Envoy being the best-known — and the visitor log lives on their servers. Visitora is the self-hosted version: $79 one-time, full PHP source, a front-desk sign-in screen any tablet browser can run, and a visitor log that stays on your own server.
A paper sign-in book fails at exactly one moment: the one it exists for. Somebody carries it outside, half the names are illegible, and nobody can say whether the contractor who arrived at eleven has left.
The cloud products that replace it charge per site, per month, and put the name of every person who visited you on somebody else's server. Then the wifi goes down during the fire drill and the tablet shows a spinner.
- A book that cannot be searched, cannot be counted, and cannot survive the walk to the car park
- Per-site monthly fees for what is a list of names and two timestamps
- Visitor personal data, including who they came to see, sitting in a jurisdiction you did not pick
Every feature
- One page, every visitor on site. Newest arrival first, with their host and their host phone number. One tap marks a person accounted for, and the tally reads on site / accounted for / still missing. It is the screen you open in the car park.
- It survives the network dying. The evacuation page is kept on the device. If the network is gone it still shows the list as of the last load — because the fire alarm and the router failing are not independent events.
- Paper beats both. A print muster sheet with a tick box per row, and a CSV, are one click each. When the tablet is at 2% the sheet is already printed.
- The list and the log can never disagree. On site is not a column that could go stale — it is derived from the sign-in and sign-out entries themselves. There is no second source of truth to drift.
- Kiosk mode. A full-screen page for a tablet at reception: big targets, no admin chrome, and nothing a visitor can wander into. They sign themselves in and get a badge number. Their host is told by email, or in your team's chat channel, when you switch it on, and the screen says so only when it went. Reception prints the badge from the visit record in one click.
- Badges that come back. Numbers are handed out lowest-first from however many badges you own, and returned to the pool on sign-out. Sign out by badge number or by name, with a disambiguation step when more than one person matches.
- Site rules and pre-registration. Optional text a visitor accepts before signing in — safety rules, an NDA, a site induction — and a pre-registration link so an expected visitor arrives already on the list.
- Everyone on the roll call. Staff tap in and out at the kiosk with a personal code, or from their phone. The evacuation list shows staff, contractors and visitors, with one tally. Presence only: no timesheets.
- The host hears about it where the team is. Arrivals posted to Slack, Microsoft Teams, Google Chat or Discord, as well as the host's email.
- Contractors apart. Visitors and contractors sign in as what they are, and the list keeps them apart.
- The roll call on your wardens' phones. A personal link each, no account; several wardens tick people off at once, and it keeps working when the network drops.
- Badges from any printer, with a sign-out QR. The kiosk prints the badge on whatever printer it uses; visitors sign out by scanning it as they leave.
- Watchlist. Reception is told when someone on it signs in; the visitor sees nothing different.
- Deliveries. Couriers sign parcels in at the kiosk; the recipient hears by email or chat, and reception tracks it until collected.
- Contractors sign their own document. Write an induction or permit-to-work summary once. Every contractor reads and accepts it at the kiosk, and the exact text is kept on their visit, beside the site rules.
- Every entrance covered. Name your entrances, put a kiosk at each, and every visit records the door it came in by. It shows on the roll call, in the exports and in the API.
- Keep staff names off the kiosk. Visitors and couriers type the name of the person they are here for instead of choosing from a list, and the thank-you screen names nobody.
- 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.
- A text when their visitor arrives. A host who asks for it gets a text when their visitor signs in at the kiosk, through your own SMS gateway: the visitor, their company and the badge, never the purpose of the visit. Every text ends with a stop link, and a daily cap keeps made-up sign-ins from becoming paid texts.
- Own It 4.0.1 — fixes and an up-to-date manual. For Visitora, 4.0.1 fixes an installer that had lost its 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 Visitora, 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: a text when the visitor arrives. For Visitora, 4.1 adds a text to the host when their visitor signs in, through your own SMS gateway, for hosts who ask for it. 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 Visitora 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 Visitora, 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.
- Own It 3.3: contractors sign their own document. For Visitora, 3.3 gives contractors their own document: an induction or permit-to-work summary that every contractor reads and accepts at the kiosk, with the exact text kept on their visit beside the site rules.
- Own It 3.2: everyone really means everyone. For Visitora, 3.2 put everyone on the fire roll call: staff tap in beside visitors and contractors, and wardens tick people off on their own phones. The host hears about arrivals where the team already talks, badges print on any printer with a sign-out QR, deliveries and a watchlist sit at reception, each entrance can have its own kiosk, and staff names can be kept off the screen.
- Own It 3.1: it writes to the people you serve. Visitora was built after the 3.1 wave. Its outbound path is the host notice: with email switched on, a visitor's host gets an email through your own SMTP, and the kiosk tells the visitor only when it went. Off until you switch it on.
Browse self-hosted: Front-office software · School & training-provider software · Charity, club & association software · Event & venue software · Coworking & workspace software