JPLI
← All projects

Full-stack product · Real-time collaboration

OurStrips

An online photobooth used by more than 2,000 people to create and share custom digital photostrips with friends.

OurStrips website landing page

Role

Full-stack application development

Timeline

2026–present

Stack

TypeScript · Next.js · React · Supabase · PostgreSQL · Tailwind CSS · Cloudflare R2 · Cloudflare CDN

01 / Overview

OurStrips is an online photobooth that works directly in the browser. Users can start a room, invite friends, take and retake photos, customize their strip, and download the result. Guests can join without creating an account.

02 / Problem & goals

Most online photobooths are made for one person using one device. Friends in different locations cannot easily take one photostrip together, and many tools provide only basic editing and sharing options.

  • Let guests join a shared room quickly.
  • Keep participants and room progress synchronized in real time.
  • Provide useful editing tools without making the process complicated.
  • Store and deliver photos reliably as the number of users grows.

03 / Role & users

Full-stack developer responsible for the application structure, real-time rooms, editing tools, authentication, database access, and cloud media delivery.

Primary users

  • Friends in remote locations
  • Couples and small groups
  • Template creators

04 / Core features

  • Real-time rooms with guest participation
  • Camera capture, countdowns, and photo retakes
  • Photo positioning, filters, text, and drawing tools
  • Customizable photostrip templates
  • Saved strips and browser-based export
  • Supabase authentication and creator workflows
  • Cloudflare R2 storage with CDN delivery

05 / Architecture & decisions

The Next.js application handles the public website, creator tools, and server endpoints. Supabase provides authentication, PostgreSQL data, and real-time room updates. Uploaded and generated media is stored in Cloudflare R2 and delivered through a CDN.

Technical decisions

  • Allow invited guests to join without an account while keeping creator actions protected.
  • Store room data in PostgreSQL and media files in R2 so the database stays efficient.
  • Process editing in the browser for faster feedback and less server work.
  • Check ownership and validate requests on the server for sensitive room and template actions.

06 / Challenges

Real-time rooms

Participants use different devices and network connections. The room must keep working when someone disconnects and joins again.

Photo processing in the browser

Camera capture, previews, editing, and downloads must use memory carefully, especially on mobile devices.

Secure guest access

Guests need a simple way to join while owner and creator features remain protected.

07 / Results

  • Served more than 2,000 users.
  • Allowed friends in different locations to complete one photobooth session together.
  • Combined photo capture, editing, storage, download, and sharing in one application.
OurStrips website landing page
OurStrips template browser and featured photostrip collection
OurStrips template details, color options, usage statistics, and ratings