Skip to Content
Taeho Kim

Summary

A commerce platform where brands and influencers sign contracts and run group buys; I handled the front end in a startup team. After joining in July 2026, I took over and extended the existing consumer app, partner center and admin console, and built the influencer studio web app from the partner center’s setup. I implemented the contract and group-buy flows across the brand, influencer and admin screens, messaging on the brand and influencer screens, and the order, payment and return flows in the consumer app.

What I Did

  • Built the influencer studio web app on the partner center’s setup, covering four social logins, messaging, contracts, group buys, posts and showroom settings
  • Implemented contract and group-buy management in the partner center, the studio and the admin console
  • Implemented messaging, order and claim screens, product inquiries and account settings in the partner center
  • Implemented change-request review, inquiries, terms and notices, and consumer member management in the admin console, and rewrote the existing onboarding review, product and FAQ screens
  • Implemented the order, PortOne payment and return/exchange flows in the consumer app, and restructured its post feed, showroom and tab layout
  • Reworked 401 token refresh in all four apps so concurrent requests share one refresh, and pinned auth cookies to the root path in the admin console and partner center
  • Built the UI and development-only mocks for screens whose server APIs are not available yet, such as settlement and shipping policy
  • Fixed consumer app build settings: a splash config plugin, Pretendard fonts, social login URL schemes and TestFlight distribution settings

Screens

Partner center contract detail: signing progress, signed documents and historyView full size (new tab)
Web screen Partner center contract detail: signing progress, signed documents and history
Partner center group-buy detail: three readiness conditions and statusView full size (new tab)
Web screen Partner center group-buy detail: three readiness conditions and status
Showroom studio group-buy detailView full size (new tab)
Web screen Showroom studio group-buy detail
Showroom studio post editor with previewView full size (new tab)
Web screen Showroom studio post editor with preview

Key Features

Contract management
A brand drafts a contract and requests review, an admin reviews it, and once the brand and the influencer both sign, the signed documents are produced. Both sides can see the signing progress and the signed documents.
Group-buy management
Brands, influencers and admins each see and act on the readiness conditions (stock secured, post submitted, admin approval) and status of group buys created from concluded contracts, from their own screens.
Brand–influencer messaging
Brands and influencers exchange messages and attachments in threads, with upload progress and read status.
Order and return handling
Brands view orders by status tab and handle purchase-order downloads, bulk invoice uploads, cancellation approvals and return inspections.
Consumer checkout and payment
Consumers pay through PortOne at checkout and then view order details, track delivery and request returns or exchanges.
Post editor
Influencers write posts with photos and text, check a preview, and view insights after publishing.
Onboarding and change-request review
Admins approve or reject brand and influencer onboarding applications and change requests.

Tech Stack

Language

TypeScript
All four apps, in strict mode

Frontend

React
UI of the three web consoles and the consumer app
Vite
Dev server and builds for the three web consoles
Tailwind CSS
Styling for the three web consoles
TanStack Query
Server-state fetching and polling for sidebar summary badges
Zustand
Client state in the consumer app and the partner center

Mobile

React Native
Consumer mobile app
Expo
Runtime and config plugins for the consumer app

Infra

Vercel
Dev/QA deployments of the three web consoles

Other

PortOne
Payment modal in the consumer app
Firebase Cloud Messaging
Web push notifications in the studio

Libraries and Tools Also Used

Frontend

shadcn/ui
Base UI components in the web consoles
React Router
Routing in the three web consoles
React Hook Form
Input forms in the partner center and the studio
Axios
API clients and 401 token-refresh interceptors in all four apps

Other projects using the same technologyHello Vibe

Architecture

Three web consoles (React + Vite) and a consumer app (React Native + Expo) call one backend REST API through role-specific paths (/user, /seller, /creator, /admin). TanStack Query manages server state, Axios interceptors handle token refresh, and attachments are uploaded directly with S3 presigned URLs.

Problems & Solutions

  1. Problem

    When the token expired, concurrent requests each called refresh, and because the server rotates refresh tokens, all but the first failed with 401

    Solution

    Made all requests share one in-flight refresh promise and retry at most once per request

  2. Problem

    Auth cookies saved without a path stayed under a sub-path and shadowed the new token, causing repeated 401s

    Solution

    Wrote auth cookies to the root path and removed copies left under sub-paths

  3. Problem

    Cross-origin attachments opened in a new tab instead of downloading, losing the current screen state

    Solution

    Requested a fresh signed URL with Content-Disposition for each download and saved multiple files one after another with a short gap

  4. Problem

    Re-cropping uploaded photos failed because CORS blocked the canvas from reading the original image

    Solution

    Added a same-origin image proxy on Vercel Functions that accepts only allowed hosts over https and caps the file size

  5. Problem

    Text in the consumer app rendered smaller on iOS than on Android

    Solution

    Bundled static Pretendard fonts and mapped each font weight to its own font family

Outcomes

  • Excellence Award at LOOKIE 2026 START-UP DEMODAY, hosted by the AI-Centered University Programs of Korea, Sogang and Yonsei Universities

Related awardLOOKIE 2026 START-UP DEMODAY Excellence AwardAI-Centered University Programs of Korea, Sogang and Yonsei Universities2026.07

Learnings

  • This was my first project collaborating across separate front-end and back-end repositories.
  • I started without much knowledge of commits, PRs and merges, and learned the flow of committing on a work branch, opening a PR and merging it on this project.