The Build Ledger

We shoot the film.
Then we build
the machine that runs it.

Rouge Media is a video production studio in Etobicoke, Toronto. We shoot commercials, brand films and music videos. This page is everything we built when the camera was off.

Most studios rent their software — booking, invoicing, client portals, mail. We wrote ours instead. Three people, sixteen weeks, seven products, and every line of it in-house.

255,405

Lines of source, shipped

7

Products built

3

People who built them

Oldest first — the dated work spans 15 May to 6 September 2026

Act I

Three People, No Agency

Most video studios are creatives who hire the technical work out. Most software shops are engineers with no eye. Rouge Media is one creative director and two engineers in the same three-person room — a director who left a degree behind to start this, and two who finished theirs. It means the film and the thing the film lives on are made by the same people, and nothing gets lost in the handoff, because there is no handoff.

001

Tenzin Tsering

Creative Director · Story Architect

Decides what it should feel like. Every frame, every palette, every cut.

002

Jean Granato

Systems Director · BEng Mechanical Engineering

Builds the machine underneath. Every product on this page is his code.

003

Nathan Roorda

Technical Director · BEng Electrical Engineering

Runs the set like a control system. Nothing on a Rouge shoot is left to chance.

Act II

What We Shipped

Seven products, oldest first. It opens with the first website Jean ever built — one HTML file, long since retired — and ends with a client running their entire business on software we wrote. Four are live and taking real money. Two are concept builds made on spec, to show an owner their business instead of describing it. Watch the scale climb.

01Before the ledgerRetired
RECDrawing on the extruder demo

Maker Mentors

The first one

Before any of it, there was this: a single-page site for an in-home 3D printing and STEM tutoring program for ages 8–14 — the thing two engineering students taught on weekends. It is the first website Jean ever built, it went up on Netlify, it is one HTML file, and it is not running any more.

Why that matters

Everybody starts somewhere. This is where we started, and we left it on the page on purpose.

The hard part, for the curious

Nothing in it was hard. Inline SVG, a scroll observer, one file, no build. The hard part was not knowing any of that yet. Everything below on this page is what came after — it is kept here because a ledger that only shows the wins is a brochure, not a record.

1,943

Source lines

1

Files

0

Dependencies

HTMLInline SVGVanilla JS

Discontinued — kept on the ledger because it is where this started

02May 2026Live
RECReading the studio site

rougemedia.net

The studio, and the machine that runs it

Not a template. The site you are reading is a full production platform — booking, quoting, contracts, e-signature, invoicing, payments, client dashboards, a media drive, and a sixteen-surface admin portal — built from scratch and run by the three people who shot the films on it.

Why that matters

Hire us and you never get a Calendly link, a PDF invoice, and a Dropbox folder from three different companies. You get one login. Your quote, contract, signature, payment and finished footage all live in the same place — because we own every part of it.

The hard part, for the curious

The theming system. Every surface and ink colour is a bare RGB triplet behind a semantic name, which is what later made a complete rebrand possible without touching a single component.

75,956

Source lines

16

Admin surfaces

118

Commits

Next.js 15TypeScriptPostgresStripeCloudflare WorkersVisit →
03June 2026Live
RECBrowsing the learning tracks

MakerLearn

In-home STEM tutoring, with a whole platform behind it

A tutoring business and the software it runs on, in one product. The front door books in-home 3D printing and STEM sessions across the GTA; behind the sign-in sits a full learning platform that teaches FDM printing, CAD, and slicing in the browser — three age-scaled tracks, a lesson engine, XP and levels, certificates, and an admin CMS.

Why that matters

A kid can learn 3D printing without a 3D printer. The slicing, the CAD, the prints that fail and why — all simulated in a browser tab, so a family can find out whether it is a real interest before spending hundreds on a machine.

The hard part, for the curious

Fifteen working simulators. A slicer emulator that recomputes print time, strength, and detail live against layer height, walls, infill, supports, and temperature. A clickable 3D printer in Three.js. Tinkercad-style and Onshape-style CAD tools. A print-failure lab that diagnoses stringing, warping, under-extrusion, layer shifts, and clogs.

41,343

Source lines

15

Interactive labs

283

Commits

React 18Three.jsZustandPostgresDrizzleVisit →
04August 2026Live
RECThe pitch to Airbnb hosts

HEARTH

Booking infrastructure that refuses to double-book

A multi-tenant booking and property-management platform: three applications, eleven shared packages, and four background workers in one monorepo. It runs the studio’s own shoot scheduling and, deployed for a client, runs their entire rental business.

Why that matters

Two guests cannot book the same night. Not ‘unlikely to’ — the database physically refuses, even if they tap the button in the same millisecond. That sounds obvious until you find out most booking sites just check first and hope.

The hard part, for the curious

Correctness under contention. Double bookings are prevented by a Postgres exclusion constraint rather than an application check, money is integer cents end to end, every query is tenant-scoped through row-level security, and booking financials freeze as immutable snapshots the moment a guest pays.

77,266

Source lines

128

Test files

3 / 11 / 4

Apps / packages / workers

Postgres + RLSDrizzleStripe ElementsVitestPlaywrightVisit →
05August 2026Pitch Build
RECOrdering from the weekly menu

Alisa Pâtisserie

The rebrand that proved the system

A Toronto home pâtisserie, built as a complete reskin of the Rouge Media platform rather than a new codebase — dark-first to light-first, crimson to cassis, Bebas to Fraunces.

Why that matters

We changed a website’s entire personality — new colours, new type, dark mood to light — by editing one file. That is why we can build you something that looks custom without charging you for custom.

The hard part, for the curious

It took one palette file. Roughly sixty inherited components followed the new brand without a single edit, which is the entire argument for building a design system instead of a website.

56,494

Source lines

1 palette

Files edited to rebrand

~60

Components inherited

Next.js 15Design tokensCloudflare WorkersVisit →

Concept pitch — stock imagery and placeholder pricing, awaiting a shoot with the owner

06August 2026Pitch Build
RECBrowsing the collection

11 & Twelve

Finished carpentry, zero moving parts

A concept build for a finished-carpentry studio — custom cabinetry, staircases, panelling, joinery. Rather than send a deck, we built the whole site on spec, with stock footage standing in, so the owner could see their business rather than imagine it.

Why that matters

We built a carpenter their whole website before they were a client, so they could look at it instead of imagining it. That is how we pitch: you see the thing, not a deck about the thing.

The hard part, for the curious

Choosing less. No database, no server code, no build step — the deploy uploads a folder and nothing else, so it cannot fail for want of a credential. Every value the owner would want to change lives in one object at the top of one file, which is what makes handing it over trivial.

2,403

Source lines

0

Build steps

0

Ways the deploy can fail

Cloudflare WorkersStatic assetsZero dependenciesVisit →

Concept pitch — stock footage and placeholder details, built to show a prospective owner what the business could look like

07September 2026Live
RECPicking two nights — live quote, itemised

Karma BNB

A client’s whole business, running on our platform

A short-term rental brand with its own site, its own booking flow, and its own calendar — taking real reservations on HEARTH. The hero film and the property photography are Tenzin’s, shot on location in Etobicoke; the booking engine underneath is ours too. This is the whole studio in one page: the film that makes you want the room, and the software that sells you the night.

Why that matters

You see the real total on the first screen. Cleaning, HST, city tax — all of it, before you commit, instead of appearing at checkout once you have already decided.

The hard part, for the curious

Getting the money exactly right, in public. A three-night stay for two quotes as $1,700 lodging, $120 cleaning, $221 HST and $102 municipal accommodation tax — $2,143, disclosed up front, with no fee revealed at the last step. Calendars sync bidirectionally with Airbnb.

Live

Booking path

4 / 4

CI jobs green

100%

Quote transparency

HEARTHAirbnb iCal syncStripeCloudflareVisit →

Interlude

Back of House

The part clients never see. Each tile below is a screen we built to run one piece of the business — sixteen of them, so every booking, quote, contract, invoice, payment, delivery and campaign moves through software we own. Most studios this size stitch that together from Calendly, HoneyBook, QuickBooks and a Dropbox link. We replaced all four, which is why nothing about your project lives in a company we cannot call.

BookingsAvailabilityShoot ProjectsShoot ConfigInvoicesPromo CodesSubscription TiersDocumentsContent DeliveryVideo DeliveryDriveUsersOutreachNotification EmailsSettingsDashboard

Act III

Currently In Production

Not finished, not pretending to be. Here is what is on the bench right now.

Wiring providers

Rouge Reach

Outreach engine

An in-house replacement for the outreach stack most studios rent — lead discovery, email verification, sequencing, reply handling, and call scripting, built rather than subscribed to.

Pre-cutover

Rouge Mail

Self-hosted mail platform

A full webmail client and mail backend at mail.rougemedia.net, so the studio’s correspondence and its client data live on the same infrastructure as everything else.

In testing

Rouge Drive

Client media delivery

Direct-to-client footage delivery with upload, preview, and download built into the client dashboard — replacing the shared-folder link with something that belongs to the studio.

If we build this for ourselves,
imagine what we build for you.

Same crew on the camera and on the keyboard. Book a shoot, or bring us a system that needs building.

Book a ShootStart a Project