Software for work that happens live.
Downstage is a creative software company in Johannesburg. We make Cue for film crews and Clear to Air for live broadcast, free for anyone to use, and we build the systems creative businesses run on.
Scenes
- 1INT. STUDIO FLOOR - NIGHT
- 2EXT. LOADING BAY - CONTINUOUS
- 3INT. GREEN ROOM - LATER
- 4EXT. ROOFTOP - DAWN
- 5INT. GALLERY - DAY
12.
INT. STUDIO FLOOR - NIGHT
The CREW waits along the downstage edge. A RUNNER sprints in, pages held over her head.
RUNNER
Pages are in. They match.
STAGE MANAGER
(into the headset)
Standby, lights one. Standby, sound two.
Nobody breathes.
STAGE MANAGER (CONT'D)
Go.
CUT TO:
Shoot day
- Call
- 06:30
- Pages
- 12 to 18
- Scenes
- 1, 2, 4
Breakdown
Rundown
- DoorsDone
- Opening packageDone
- Map threeOn air
- Analysis deskNext
- Map four
Seats
- PRProducerAll controls
- SCScorerScore only
- VWViewerWatch
Stream keys stay on the rig
Two products.
Built for the moment it's happening.
Cue
In buildFree to start, open source soonScript and production software for film crews.
A screenplay editor that works on real A4 pages, ruled by the same pagination the PDF exporter uses. What a writer sees on screen is the page the crew holds on set. Imports Fountain, exports PDF, and keeps the script, the scenes and the day's work in one place instead of three.
Came out of scripts that didn't match the pages a crew was holding.
Code opens after Clear to Air at github.com/downstagehq
Page view governed by the exporter, not an approximation
Fountain import and PDF export
Built for the shoot day, not only the draft
Desktop and Android builds
Clear to Air
In buildFree and open sourceAGPL-3.0+ · packs MITA broadcast companion for live esports.
The scoreboard, the rundown and the overlays a live match needs, driven from one control room that opens in a browser. A producer, a scorer and a viewer each get their own seat and their own powers, joined by an invite link, while the keys to the streaming rig never leave the machine it runs on.
Came out of running a live esports broadcast off a rig and a spreadsheet.
cleartoair.com · coming soon
Repo opens soon at github.com/downstagehq
Hosted control room, three seat types, invite links
Producer, scorer and viewer see only what they should
Streaming credentials stay on the operator's machine
60 end-to-end checks against a live agent
R10 Arcade
LiveTwenty arcade remixes, built for players anywhere.
A web arcade of classic-arcade reworks with South African flavour: accounts, cloud saves and leaderboards behind twenty games that each run to the same contract, so a new title is a drop-in and not a rebuild. Painted covers, one shared shell, no app store.
Private beta, sign-ups closed.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
Support Downstage.
Clear to Air is free and open source, and Cue is free to start. Supporters, sponsors and paid setup keep them that way, and the code stays free whatever happens.
Become a supporter
A monthly or once-off amount, from anywhere, or in rands. Every supporter keeps the work on the free tools moving.
Sponsor a project
For esports orgs, leagues, venues and hardware brands. Your logo on this site, the project README and the app's About screen.
Hire us to set it up
We set up and run Clear to Air for your league or event, train the crew, and build custom overlay packs for your brand.
5 company sites running, R0 a month in hosting. 2 festivals taking entries on one portal. 344 gear units under one back office. 20 games in the arcade. 216 tests and a 59-step run behind the entries portal. 108 tests behind the rentals back office. 60 end-to-end checks behind Clear to Air in build.
Every number comes off a system that's running today, and everything is marked live or in build.
Built for other people.
Portals, back offices, apps and sites that carry real operations for creative and live businesses. The owner keeps the product, the data and the domain. Clients stay unnamed until they say otherwise.
Festival entries, judging and productionA submissions platform a festival owns outright, instead of renting one.Live
Entrants make an account with an emailed code, submit against the festival's own categories, and get a real reference number. Judges score inside the same portal and never see an entrant's phone number, date of birth or guardian details. They see the work. Behind it sits an office with the entries, the scores and the flags, and a private production side carrying the money and the people: budget, spending, a crew ledger of seventy jobs, tasks, logistics, a run sheet, and access granted person by person.
Built for two festivals, one film and one theatre
- Entrant accounts by emailed code, no passwords to lose
- Reference numbers per entry, per festival
- Judges see the work, not the entrant's personal details
- Two festivals, film and theatre, on one portal
- Production office: budget, spending, 70-job crew ledger, run sheet
- Access per person, per festival, at view / edit / manage
Rentals and studio back officeTwo businesses, one office, one inventory that can't be double-booked.Live
A rentals company and a studio that share gear, running from a single back office with a switch between them. Both draw on the same inventory, so a studio shoot can't quietly take a camera already out on a rental. The clash is refused in both directions and names who is holding it. Quotes and invoices print on the real templates, continue the numbering from the books that came before, and download as a PDF that comes out the right way up.
Built for a rentals and studio group
- One switch between two businesses, access set per business
- Bookings, gear out and gear back, 344 units tracked
- Shared inventory refuses clashes both ways and names the holder
- Quotes and invoices on the existing templates and numbering
- A studio room booked by time slot
- 108 automated tests before it met a customer
Event sites with real enquiriesA site that doesn't drop the one email that mattered.Live
Fast static pages with an enquiry form that writes into a database you own, spam-screened, acknowledged automatically, and visible to the team on a dashboard, instead of a mailto link and a hope. Campaign links are tagged, so you can see which poster or which post actually brought the person in.
Built for an education event
- Enquiries stored, not emailed into a void
- Spam screening and automatic acknowledgement
- A team dashboard instead of a shared inbox
- Tracked campaign links, first touch kept for 60 days
Company websitesFive company sites that cost nothing a month to run.Live
Prerendered pages that arrive complete before a single script runs, with each site's content in one editable file, so a price or a date is changed in one place. Hosted so static requests are free and unlimited: the hosting bill for a marketing site is zero.
Built for a studio, a rentals company and three production companies
- Content in one file, no CMS to log into
- Pages arrive complete: good for search, good on bad signal
- R0 a month in hosting
- Video served with real byte ranges, so it plays on an iPhone
A wellbeing app for a podcastBuilt around a podcast and its listeners.Live
Four pillars, a daily practice and four small games that make a check-in feel like less of a form. Built for the founder of the podcast it grew out of, and shipped as a first release she can put in front of real listeners.
- Four pillars and a daily practice
- Four built-in canvas games
- First release live
Rider and fleet ops for a mobility startupBookings, riders and a small fleet in one operations view.Live
A public site with an operations back end behind it. Built through a pivot: the product followed the business down from a fleet plan to the bikes actually on the road, rather than pretending the plan hadn't changed.
- Public site and operations back end
- Rider and booking records
- Rebuilt to match a smaller real fleet
Attendance for a national internship programmeMany learners, many sites, one register.In build
Attendance a site supervisor can actually complete on a phone, and timesheets that survive an audit at the other end.
- Attendance by site and by day
- Timesheets built for audit
- Phone first
Boring stack. Tested. Yours.
Nothing here runs on a platform that can change its mind about us. The stack is chosen so a client can be handed their own system, and so the monthly bill doesn't grow teeth.
How we buildOne platform, edge to database
Cloudflare Workers for the code, D1 for the data, Turnstile against the bots, R2 when there are files. One bill, one dashboard, one place to look when something breaks.
Static where it can be, dynamic where it must be
Marketing pages are prerendered and free to serve. A Worker is added only when a feature genuinely needs one: a login, a booking, an office. That line is where most of the cost of a website usually hides.
Tested before it meets a customer
The entries portal went live behind 216 automated tests and a 59-step run through the whole entrant journey. The back office behind 108. The broadcast control room behind 60 end-to-end checks against a live agent.
Less data, on purpose
Judges can't see an entrant's contact details, because they don't need them. Streaming credentials never leave the machine they belong to. Test data is wiped before real people arrive, not after.
Yours, not ours
The database, the domain and the deploy sit in the client's name where they should. No lock-in, no hostage data, no platform we have to sign for on your behalf.
Tell us what has to work.
The useful first message isn't a brief. It's the thing that keeps going wrong: the double booking, the entries arriving by email, the spreadsheet three people are editing at once. Start there.