r.

Sc 00 — Sutoori ProductionIndependent / Agency Website & CMS · 2026

All work

Sutoori Production — a studio site the team runs itself.

A cinematic portfolio and an authenticated content studio for Sutoori Production, the photo and video agency I co-founded.

Role
Co-Founder · Designer & Full-stack Developer
Year
2026
Status
Live
Stack
NuxtVue.jsTypeScriptSupabaseGSAP
Work shown through Instagram posts and a pitch deckA scroll-driven portfolio the team updates from its own dashboard

01 · Overview

What the project is

Sutoori Production is the student-founded creative team I co-founded and run as COO, covering photography, film and creative production for schools, campuses, communities and events around Bogor. The team needed a home for its work beyond Instagram — one that feels as cinematic as the photographs and that the team can keep current without a developer.

02 · Approach

How I approached it

The public site tells the agency's story in one scroll: an oversized opening that resolves into a photograph, stacked portfolio cards, services and a four-step process, then a direct WhatsApp conversation. The gallery uses filters and an accessible lightbox instead of one page per project, and a practical, minimally animated dashboard sits behind it for the team.

03 · Implementation

From interface to system

Built on Nuxt 4 and Vue 3 in TypeScript, with GSAP for the pinned and scroll-driven scenes and static fallbacks for reduced motion and short screens. Supabase provides authentication, a Postgres schema with row-level security and admin membership, and private and public storage buckets. Server routes enforce sessions and strict validation, check uploads by type and size, and generate real image derivatives with Sharp; publishing rolls back and cleans up when a step fails.

04 · System flow

How the pieces connect

A simplified view of the implemented product flow, not a claim about infrastructure that is not public.

  1. 01

    Showcase

    Pinned, scroll-driven storytelling over the team's own photography

    NuxtGSAP
  2. 02

    Upload

    Batch uploads checked by type and size, with real image derivatives

    Supabase StorageSharp
  3. 03

    Publish

    Drafts, signed previews, ordering and publish or unpublish

    SupabaseRLS
  4. 04

    Inquire

    Visitors reach the team on WhatsApp; Instagram stays the outbound feed

    WhatsApp

06 · Outcome

What changed

The site is live with the team's own photography, nine services, the process and contact scenes, and a filterable gallery with a lightbox. The admin studio supports batch uploads, drafts, signed previews, focal points, ordering, and publish, unpublish and delete.

07 · Learning

What I learned

Designing for people who are not developers changed the priorities: clear upload feedback, safe defaults and rollback mattered as much as the motion on the public side.