Cameo is a web app for checking-in attendees at an event by scanning ticket barcodes. To put it another way, it simply cancels tickets when they are used. With internet connections, the app can co-ordinate more than one person checking tickets on the door, but the app can also be used off-line if necessary. It’s designed to run on small screens – even the smallest smartphone should be fine (indeed you may find it easier to scan barcodes with a physically smaller phone).


The workflow will be pretty familiar in principle:

  • People make a booking through a website form. Alternatively an operator may use Cameo to book tickets for someone in person or over the phone. Each booking has a reference number, and there may be several reservations, or tickets, in that booking. If the booking reference is 1024 and there are three tickets, these will be 1024-1, 1024-2 and 1024-3.
  • On completion of booking, tickets are issued by Cameo, preferably by email, but alternatively on paper. Paper tickets could be posted, collected or those remaining printed as a batch to hand on the door just before the event. Each ticket has a barcode containing enough information to identify the event, booking reference and ticket.
  • On arrival, tickets are used as proof of purchase and are cancelled by stewards on the doors. While this could be done by a simple manual inspection, properly cancelling the tickets will guard against copying and re-use, and also create a record of who actually attended the event. Cameo does those two tasks.


The app has its own URL: for example if your cameo install is at then the app may be at See installation note below.

You need to be online to get started. When you start the app it will ask permission to use the camera – it needs this to read barcodes. Once you have opened the app once, you can go off-line if need be: you don’t have to leave the page or the browser open. Ideally, save the app to your phone home screen. In iOS, then behaves like an app rather than a website (and offers more usable screen area).

Authorising your phone to check in

Check-in starts by identifying an event you are checking-in people for. You also need to do this step while you have an internet connection. As of June 2021, It is no longer necessary to be online to do this.

Click the scan button and the camera will turn on. Point it at a barcode which identifies the event. This barcode authorises your phone to talk to Cameo for the purpose of doing check-ins. You obtain it from the check-ins link for the event instance in the Reservations section in Events. If the stewards are not Cameo users, someone who is can print or email barcodes to people doing the checking in. If you use a different barcode for each person, the ticket uploads can be traced to that person, but using the same barcode for everyone will work. (If the event repeats over more than one session – like a run of performances of a play – then the event barcode will be identifying the specific instance of the event).

Then the home page will identify the event that is open (until it is over), and you can continue with that event:

Checking tickets

Once on the door, press the scan ticket button (formerly scan qrcode) to start checking people in. The camera will turn on for you to scan a barcode:

A successfully scanned barcode will confirm with a tick and the ticket number, and you can proceed to the next one.

If there is a ticket problem, the app will tell you. For example if you were to scan the same ticket a second time, you would see this:

If you are connected, the check-in will be sent straight to Cameo, so if someone copies a ticket and tries to use it with a different steward on another door, that would be detected. Otherwise, it can only check the ticket is valid and hasn’t been seen before on the same device. If you don’t have a connection, the number in the bottom right will increment; this shows you how many tickets are waiting to have their check-ins uploaded when you do have a connection. (Incidentally, if you have a very slow connection, you might want to turn it off altogether so it doesn’t keep trying).

When you are back at base, you can use the send button to upload these stored, checked-in tickets to complete the attendance record.

A note on photographing barcodes

Where the phone (strictly speaking, the operating system) is recent enough to allow it, all you have to do to scan a barcode is point the phone at it. Once it detects the barcode, it will show you the green tick, just for a couple of seconds, and then go back to the camera. (If the ticket has a problem, it will not turn the camera on again automatically). This normally means you don’t need to press any buttons at all to do the check-ins.

However, the technology that makes that possible is quite new. If your device is not quite so recent, then you will need to press the scan button each time, and then press the camera shutter button to take a still, and then confirm it is OK, so it needs three taps for each barcode in this case. In iOS and most Android phones, the physical volume control buttons also operate the shutter when the camera is on, which may be more ergonomical. You may also find it useful to have a separate, physical, bluetooth shutter button – these can be purchased very cheaply online.

And, of course, much older browsers may not be able to activate the camera at all.

Camera on iOS

iOS had a bug where a web app saved to the home screen (which behaves like a native app) was unable to ask permission to stream the camera. Therefore behaved like an old operating system, only able to take a photo rather than live scanning, when used as a home screen app. Apple only fixed this bug as recently as iOS 13.4. Earlier versions do not work.

If you are unable to upgrade, the camera streaming works fine if you bookmark the app and always run it in Safari, rather than tapping the home screen icon.


There’s no formal installation for people to use Cameo just visit the site and the web app will be available on- and off-line.

To make the URL available, someone with access to the domain name manager for your domain should add the sub-domain for the app, such as to the DNS records for your domain. This should be set up as a CNAME referencing your Cameo domain (e.g. Cameo and should normally both be subdomains of the main domain name (though this isn’t essential). Note that some domain control panels require there to be a dot after the referenced domain name to be complete, e.g.    CNAME