Back to selected workCase study / 01
Academic ProjectIn development

Ruang Usaha Kita

A digital-services marketplace connecting small businesses with content creators for promotional work.

Role
Full-stack Developer
Status
Academic Project
Core stack
Next.js · TypeScript · Tailwind CSS · Supabase

01 / Overview

Context and objective

Small businesses often need accessible promotional support, while emerging creators need a clear way to package and present their services. Ruang Usaha Kita explores a two-sided marketplace designed around those distinct needs.

Design and build a coherent marketplace foundation where business owners can discover services and creators can manage their offers without the two roles becoming tangled in one generic experience.

Responsibilities

  • Mapped role-specific journeys for business owners and creators.
  • Built responsive catalogue, service detail, cart, and checkout flows.
  • Integrated Supabase authentication and relational application data.
  • Debugged state and data-flow issues across client and server boundaries.

Constraints

  • Academic scope and an evolving product definition.
  • Two user roles with different permissions and interface needs.
  • No production usage data yet; decisions are validated through flow testing.

02 / Process

A structured route through the problem

01

Separate the journeys

I began with the decisions each role needs to make, then structured navigation and screens around those moments instead of mirroring the database model in the UI.

02

Build the transaction spine

The catalogue, service details, cart, and checkout were treated as one connected system so pricing, selected services, and ownership stayed consistent across steps.

03

Tighten the data boundary

Authentication and Row Level Security rules were considered alongside UI states, making authorization a product behavior rather than a late infrastructure task.

03 / Product

Key features

  • 01Role-based onboarding and workspaces
  • 02Searchable digital-service catalogue
  • 03Cart and structured checkout journey
  • 04Supabase Auth session handling
  • 05Row Level Security for scoped data access

04 / Engineering

Decisions with consequences

Role-aware access

Authorization is enforced at the data layer with RLS, while the interface exposes only the actions relevant to the active role. This keeps the experience clearer without treating hidden UI as security.

Explicit checkout state

Cart state and order creation are handled as separate stages. That makes intermediate states visible and easier to debug when a request or session fails.

Challenge / lesson

The hardest part was keeping user role, session state, and related records aligned. It reinforced the value of tracing data from interface action to database policy and back, instead of debugging each layer in isolation.

05 / Outcome

What exists today

The project currently provides the core role-based marketplace flows and a working Supabase-backed foundation. It remains in development; usability refinement and broader end-to-end validation are the next priorities.

Next case studyOnline Bus Ticketing Database

Want to discuss the thinking behind this work?

Start a conversation Back to all work