Kostuma

Inspiration

I am a screenwriter and software engineer, and I love horror movies. I am particularly fascinated by the creation of horror characters—the lore behind them, the costumes, and the makeup actors use to transform themselves into haunting monsters that stay with us.

Halloween season is a celebration of these characters. In 2026, the National Retail Federation expects Americans to spend $4.4 billion on Halloween costumes, including $2 billion on adult costumes.

What It Does

Kostuma is built for horror fans, like myself. It lets users browse popular costumes, try them on, and explore every makeup step they need before buying anything.

We currently offer 82 characters, from Count Orlok (1922) to Nikki “Freaky Nikki” Freeman (2026).

  1. Fans browse characters and add their favorites to their Pumpkin Basket.
  2. They enter the fitting room and upload two photos: a face photo and a full-body photo.
  3. YouCam’s AI Clothes Try-On places the outfit on the body photo, then on the face photo—so makeup is rendered on a face that is already in costume.
  4. A step-by-step guide, powered by YouCam Makeup VTO and Hair Color, teaches users how to apply the look themselves while showing the transformation at every stage.
  5. Kostuma provides links to stores where users can buy the costume and every makeup product they need.

Kostuma currently supports English, Spanish, and Chinese. Each account receives one free costume, while additional costumes will be available through Kostuma Pro.

How We Built It

Kostuma runs on Next.js 16 and React 19, built in TypeScript with Tailwind CSS, shadcn/ui, Base UI, and next-intl for three-language support.

Accounts, data, and photos are managed through Firebase Auth, Firestore, and Firebase Storage. The server accesses Firebase through the Admin SDK, and the site is hosted on Vercel.

Every YouCam request runs server-side, so API keys never reach the browser. A single try-on chains together YouCam’s AI Clothes, Makeup VTO, and Hair Color APIs, supported by its file and task APIs.

Challenges We Ran Into

Some horror makeup effects cannot yet be rendered well. Makeup VTO does not draw lines through the eye, stitches, blood, or fangs.

We tried drawing these elements over the renders ourselves, and we also tried YouCam’s image editor. However, its AI Replace feature classifies blood as NSFW. Both approaches looked pasted on next to Makeup VTO’s rendered makeup, and neither showed visitors something they could realistically reproduce in a mirror.

Makeup VTO appears calibrated to beautify. Even smeared mascara is difficult: instead of looking smudged, it often appears cleanly applied—pretty rather than horrifying.

Accomplishments We’re Proud Of

  • 82 makeup guides containing 509 individual steps
  • Every step is makeup a person can apply at a vanity
  • Every image is rendered directly by YouCam
  • A finished MVP now being tested with real users
  • Positive early feedback and users already joining the Kostuma Pro waitlist

What We Learned

A beauty engine is designed to flatter: smoothing is enabled by default, and foundation remains natural even at full strength.

Getting horror out of it required layering effects—using five categories in one color, applying two coats, turning smoothing off, and setting every strength to 100. Even then, we see room to improve support for the customized makeup looks that cosplay fans love.

What’s Next for Kostuma

  • Kostuma Pro, offering more than one costume per account; the waitlist is open.
  • More characters, beginning with the costumes visitors request through Request a Costume.
  • Support for more costume-centered events and fandoms, including anime fans, Disney fans, and many more.

Built With

  • base-ui
  • firebase
  • firebase-auth
  • firebase-storage
  • firestore
  • next-intl
  • nextjs
  • perfect-corp
  • react
  • recaptcha
  • shadcn
  • sharp
  • standard-webhooks
  • tailwindcss
  • typescript
  • vercel
  • vitest
  • youcam-ai-clothes
  • youcam-api
  • youcam-hair-color
  • youcam-makeup-vto
  • zod
Share this project:

Updates

Submission history