Portfolio

The systems
behind the work.

Applications with a sign-in, a workflow and consequences. The firm runs on these every day.

Screens from systems in daily use.

The same portfolio, served in full on both TNAADO domains. Nothing here redirects you. portfolio.tnaado.ca portfolio.tnaado.com

The work

Web software, 13 in the record.

Screens from systems in daily use.

The Shoot showing every production across the team 01 Internal tooling · Live, staff only The Shoot TNAADO Inc. The firm's productions were running across a calendar, a spreadsheet and a group chat. This is one place for the booking, the crew, the gear, the vendor and model payments and the payroll, posting straight into central billing. Built with React TypeScript Supabase Postgres Stripe Open the entry
TNAADO Equip showing the equipment inventory 02 Internal tooling · Live, staff only TNAADO Equip TNAADO Inc. Production gear goes out in cases and comes back short. Every unit carries a QR label that opens its own record, and a shoot cannot close until each piece has been counted back in. Built with React TypeScript Vite Supabase Postgres Swift Open the entry
The newsroom editorial review queue 03 Internal tooling · Live, staff only Newsroom CMS TNAADO Inc. Everything filed, whether an article, a journal entry or an episode, moves through one review queue and a compliance checklist that has to be signed before it can publish. Publishing is a decision with a name on it. Built with Next.js React TypeScript Supabase Postgres Open the entry
The socials planner showing a week of scheduled posts 04 Internal tooling · Live, staff only Socials TNAADO Inc. Every account connected through its own official API, with one publishing calendar, one media library and email-driven approvals. The same layer is extended to the firm's clients under their own sign-in. Built with Next.js React TypeScript Supabase Postgres Open the entry
The client portal showing a client's projects and budgets 05 Internal tooling · Live Client Portal TNAADO Inc. Where a client sees their own work without emailing to ask: projects, the shoots booked inside them, the budget agreed, the invoices raised against it, and a card payment on the invoice itself. Built with Next.js React TypeScript Supabase Postgres Stripe Open the entry
The reader portal account and membership page 06 Internal tooling · Live Reader Portal TNAADO Inc. The self-serve account face of the newsroom. A reader signs in with Google or Apple, and there is no password anywhere in the product to lose, reset or leak. Built with Next.js React TypeScript Supabase Postgres Stripe Open the entry
The reporter portal showing contributor earnings and payout history 07 Internal tooling · On hold with Dispatch Live Reporter Portal TNAADO Inc. Where field reporters see what their footage earned and get paid for it. Commission accrues per accepted pickup against a named pay period, clears a review hold, then settles on a fixed schedule. Built with Next.js React TypeScript Supabase Postgres Stripe Open the entry
The store admin panel showing orders and fulfilment status 08 Internal tooling · Live Store Admin TNAADO Inc. It follows an order from checkout through payment, print partner and shipping, and isolates the ones that were paid but never dispatched so a person has to deal with them instead of a customer discovering it. Built with Next.js React TypeScript Supabase Postgres Stripe Open the entry
The events console showing an organiser's events 09 Internal tooling · Live Events and Ticketing TNAADO Labs Ticket types and inventory per event, hosted checkout, a QR ticket on every sale and a door scanner that checks it against a live admitted count, with a manual fallback for when the room has no signal. Built with React TypeScript Vite Supabase Postgres Stripe Open the entry
The photo licensing store gallery 10 Internal tooling · Retired Photo Licensing Store TNAADO Inc. Everything the public could see was a watermarked preview. The clean original sat in private storage with no public address and was released on a short-lived signed link only after payment cleared. Built with Next.js React TypeScript Supabase Postgres Stripe Open the entry
A Labs admin backend dashboard 11 Internal tooling · Live, staff only Labs Admin Backend TNAADO Labs One administrative backend across the Labs products. Access is scoped per product and per function, so adding a product does not quietly widen anybody's existing reach. Built with Next.js React TypeScript Supabase Postgres Open the entry
The payroll portal showing an invented employee's most recent take home pay beside their year to date total A pay stub in the payroll portal, listing gross earnings, each deduction and net pay in a column for the period and a column for the year to date 12 Internal tooling · Live, staff only Workforce and Payroll TNAADO Inc. Built to replace a paid payroll provider. It holds employment records and Social Insurance Numbers, so it was given its own database from the first commit rather than a table inside the billing system. The screens here are the real portal run against a local stand-in database: the employee, the addresses and every pay figure on them are invented. Built with Next.js React TypeScript Supabase Postgres Open the entry
The booking desk console showing the owner desk, who answers it, which calendar is read, and the hours and days it takes calls The booking desk console listing the day's bookings, each with the call type, who booked it, the member of staff it landed on and whether it is confirmed 13 Internal tooling · Live, staff only Booking Desk TNAADO Inc. Decides which member of staff answers which kind of call, holds the availability windows and the blackout days, and writes the accepted booking into a real calendar. The screens here are the real console run against a local stand-in database: the staff, the callers and every booking on them are invented. Built with JavaScript Supabase Postgres Google Calendar API Open the entry

Work with the firm

We build these for other companies.

TNAADO sells two things: technology, and media. Everything on this page is one of them, built either for a client or for the firm itself.