CREATOR BUSINESS setsunafilms.com ↗

Setsuna Films

Full-stack bilingual creator platform and merchandise store built with Flask, Stripe, and Supabase.

Setsuna Films website

Problem

YouTube alone is a rented platform — monetisation is gated behind ad revenue, the algorithm controls distribution, and there is no direct relationship with the audience. The channel needed its own home: a place to showcase the work, sell physical products to fans in both Japan and abroad, and operate independently of any platform's terms.

Approach

Built a custom full-stack web application from scratch rather than reaching for a Shopify template. The site needed to be bilingual in English and Japanese throughout — not as an afterthought but as a structural requirement from day one. Every product, description, shipping policy, and email is authored in both languages and served based on the visitor's preference. Payments are handled by Stripe Checkout with pre-configured JPY and USD shipping rates. Orders are persisted in PostgreSQL hosted on Supabase, product images are stored on AWS S3 with per-image framing controls, and the full order lifecycle — confirmation, shipping, cancellation — is handled by automated transactional emails via ZeptoMail.

Features

  • Bilingual interface in English and Japanese throughout
  • Stripe Checkout with JPY and USD shipping rates
  • Webhook-driven order writes to PostgreSQL on Supabase
  • AWS S3 image storage with per-image zoom and offset framing
  • Automated lifecycle emails — confirmation, shipping, cancellation
  • Admin dashboard for product management, order handling, and visitor analytics
  • Country-level visitor tracking with bot filtering
  • Rate limiting, SSL, and ProxyFix for production hardening

Technologies

  • Python / Flask
  • PostgreSQL
  • Supabase
  • Stripe API
  • AWS S3
  • ZeptoMail
  • Gunicorn
  • Nginx
  • Jinja2

Outcome

A live e-commerce store generating direct revenue from physical merchandise — independent of ad platforms and algorithm changes. The admin panel handles the full operational workflow without touching code: list products, upload and frame images, accept orders, add tracking numbers, and send shipping emails in a single interface.

Key Learning

Webhook reliability is the foundation everything else depends on. If the Stripe webhook fails silently, orders are lost and customers are charged with nothing in the database. Getting idempotency right — ensuring a replayed webhook does not double-write an order — required more care than the payment integration itself. Internationalisation at the data layer (storing EN and JA content per field, not as a translation layer on top) made everything downstream simpler at the cost of more disciplined data entry from the start.

Let's build something together.

Whether it's a new product, a film project, or digital strategy consulting.

Get in touch