Skip to content
Back to projects
Starrd (Co-founded)2026-PresentLive

AI Video Generator

Two of us took an AI video generator from nothing to 3,000+ registered users in about five months, shipping on iOS and on the web at once, with real money moving through it. Live at getstarrd.app.

Seedance 2.0SupabaseSwiftUI
Started
February 2026
Ships on
iOS and web, one shared backend
What users pay
1 credit per video, packs from $5.99

What the demo skips

A prompt box isn’t a product.

Most AI video tools are one API call behind a text field. That holds up right until a clip takes real minutes to render, until a second person needs to pay, until the same product has to run on a phone and in a browser at once. None of those are AI problems, and every one of them has to be solved before a stranger will hand you a card.

01

The brand

The identity and the production code came out of the same hands, which is the only reason two people could ship all of it. A four-pointed star that stands in for the A in STARRD, one electric accent on near-black, and a design system the apps are actually built from: five token files, fourteen components with typed APIs, and fifteen guideline cards.

The Starrd mark: a four-pointed chartreuse star with a small dot on either side, turning slowly and pulsing as it goes.

Sparkle = spotlight

The mark is specified as a moving thing, so it moves here. It turns through a full rotation every four and a half seconds, swelling and shrinking as it goes, and it carries a green halo the system defines as a token.

These are the design system’s own keyframes, transcribed. The same star is the app icon, the loading state, and the unit of currency: one star is one video. Green on dark, never recoloured, clearspace of at least one dot.

The primary Starrd lockup on near-black: a four-pointed star mark, flanked by two dots, followed by the wordmark STARRD set in heavy chartreuse type, where a second white star glyph stands in place of the letter A.
The primary lockup: mark, dots, wordmark. Every other cut on this page is a subtraction from this one.
The Starrd wordmark on near-black: STARRD in heavy chartreuse letters with a white four-pointed star substituted for the letter A.
The wordmark, where the substitution does the work on its own.
The outline variant of the Starrd lockup on near-black: the star mark solid white, and the wordmark STARRD drawn as thin chartreuse outlines rather than solid letters.
The outline cut, for the places the solid one would shout: over video, and anywhere the scene has to stay the loudest thing on screen.

The palette

  • #E6FF6FGreen 300Primary. The one electric accent.
  • #C4E232Green 500Deep accent, for light surfaces.
  • #0A0A0AInk 950Page base. Dark-first, on purpose.
  • #141414Ink 850Card.
  • #1A1A1AInk 800Elevated card.
  • #2E2E2EInk 600Strong border.

The type

  • DisplaySyne
  • SansManrope
  • MonoSyne Mono

Colour, type and spacing ship as tokens, so the two clients cannot drift apart.

02

The queue

Generation runs on Seedance 2.0 through a job queue, because a clip takes real time to render. The request cannot be the render.

Concept mockup of Starrd's web generation queue: a dark dashboard with a Starrd sidebar, a "Generation queue" table listing scenes against status and progress: F1 Garage rendering with a half-filled orange progress bar, Kiss Cam and Red Carpet queued with empty bars, K-Pop Idol Cam complete. On the right, a "Job detail" stepper running from Photo uploaded through Queued, Generating, Encoding to Delivered.
Concept mockup, and the only one left on this page. The queue is the one screen there is no public screenshot of, because it sits behind a sign-in. Everything else you are about to see is the shipped app.
  1. 01 Input

    • Scene templatePicked, not prompted(Source)
    • Photo uploadOne or two photos(Source)
  2. 02 Queue

    • Job queuedGeneration is long-running(Process)
  3. 03 Generate

    • Seedance 2.0The cinematic clip(Model)
  4. 04 Bill

    • Credit ledger debitOne credit per video(Store)
  5. 05 Deliver

    • iOS appSwiftUI(Output)
    • Web appNext.js(Output)

Two inputs, one queue, two clients. The credit comes out of the balance inside the job, between the render and the delivery. The queue and the ledger are one system seen from two ends.

03

Two clients, one backend

SwiftUI on iOS and a Next.js web app run on one Supabase backend. A person starts a clip on the phone and finds it in the browser, because there is one account and one job list underneath both.

Real screenshot of the shipped Starrd iOS app: a dark phone screen showing a full-bleed scene template called "Caught in the Act" under the category PETS & ANIMALS, with a chartreuse "Star In This" button. Below it, horizontal rails labelled Trending Now and Action & Adventure carry template thumbnails: Broken Ankles, Catching Hands, Slap Contest, Sitcom Star, Boxing Match. A Create, My Videos and Profile tab bar sits at the bottom.
Real screenshot: the shipped iOS app. Scenes are browsed by category, the way a store is browsed. That one decision is what the rest of the product is built around.

You pick a scene, upload a photo or two, and get a cinematic clip back. No prompt writing is asked of the person using it — the product does that part.

iOS
SwiftUI, native
Web
Next.js
Shared backend
Supabase
Generation
Seedance 2.0
04

The ledger

This is the part that has to be exactly right, because it is the part where money moves. The rest of a product can be a little wrong and survive it. A balance cannot.

Real screenshot of the shipped Starrd iOS app: the detail screen for a scene called "Broken Ankles" in the SPORTS category, showing a basketball arena still, a description, and three chips reading 1 star, 12s and Sports. Below, a "Starring" section headed "Add your photo" holds a single uploaded headshot of a man.
Real screenshot: the ledger, where a user actually meets it. One star is one credit, and the price of the clip is stated before it is spent, next to its length. The photo below is the only thing the user provides.
Real screenshot of the shipped Starrd iOS app: the finished video, showing the same man from the upload slot now airborne in a packed basketball arena, mid-dunk, under the title BROKEN ANKLES and the line "One crossover. One victim. Pure domination." Share, download and sound buttons sit on the frame, and a credit counter reads 1 in the corner.
Real screenshot: the same face from the upload slot, now starring in the scene. The photo went in and the film came out. That is the entire product, in two frames.

Where the money comes in

  • WebStripe
  • iOSRevenueCat
  • BothThe same credit ledger

The part nobody sees

Two apps, one backend, and one balance that has to be right in both: a credit spent on the phone is gone on the web a second later. Get that wrong once and somebody pays twice for the same video, and they do not come back. What it earns is not published.

Registered users
3,000+Registered users

Role

The product, the brand, and the front end are mine: the identity, the design system, and everything a user actually touches. The backend, the payments and the queue behind them we built together. Starrd is co-founded with Ian Brillantes.

Built with

Stack

  1. 01Next.js
  2. 02SwiftUI (iOS)
  3. 03Supabase
  4. 04Seedance 2.0
  5. 05Stripe
  6. 06RevenueCat
  7. 07Remotion
  8. 08ffmpeg

Start a project

What do you need built?

Tell me what the thing has to do and who has to use it after I leave. We'll get on a call, and I'll tell you what it takes.

Start a project