CASE STUDY

Bulk Show Uploader

Visit site

CLIENT

Pulse Poetry

WHEN

2025

OUR SERVICES

Workflow Analysis

Automation

Frontend Development

Backend Engineering

SUMMARY

A high‑integrity spreadsheet‑to‑platform pipeline that let Pulse Poetry publish hundreds of shows in minutes instead of hours.

TECH STACK

Google Sheets

Python

Next.js

PostgreSQL

Supabase

The Problem 

Pulse Poetry had outgrown Instagram. Shows were curated manually, discovery depended on the algorithm and followers had no reliable way to browse events or buy tickets. The platform simply couldn’t support Pulse Poetry’s ambition to become the Eventbrite of spoken word. They needed a dedicated system that centralised events, streamlined submissions and created a clear path from discovery to ticket purchase.

Importing shows one at a time

Our Solution 

01

Spreadsheet‑Aligned Data Model

The uploader was designed around the client’s existing Google Sheets workflow. A structured CSV template mirrored their internal tracker, including complex JSON fields, helper tables, and built‑in functions for formatting. A custom Google Sheets function fetched latitude and longitude from addresses via a public geocoding API, ensuring location data was always valid.

02

Folder‑Based Upload Flow

Admins could upload a single folder containing the CSV and an optional images directory. Images were matched by filename, with support for default images when none were provided. The system validated folder structure before parsing any data, catching issues like missing CSVs or misnamed folders early.

03

Full Preview & Validation Table

A custom‑built preview table rendered every row and column with pixel‑level control. Zod powered deep validation across all fields, highlighting invalid cells in hard red with tooltips explaining the issue. Entire rows were lightly tinted to signal errors at a glance. Thumbnail previews ensured images matched correctly. Duplicate detection and organiser matching were built in.

04

Automatic Organiser Handling

Each show must belong to an organiser. If the CSV referenced an organiser that didn’t exist in the database, the system automatically created it before inserting the show — keeping the workflow frictionless for the client.

05

Atomic, High‑Integrity Uploads

Uploads were executed through a Supabase RPC to guarantee atomicity. If any show failed validation or insertion, the entire batch rolled back. A progress indicator (e.g., 1/87) kept the user informed throughout the process.

Importing shows via csv

Our Impact 

1

Hours of Manual Work Eliminated

Uploading shows one‑by‑one took ~4 minutes each. With the bulk uploader, the client could publish 100+ shows in a single batch — saving literal hours every week.

2

A Pipeline That Matches Real Workflow

Because the uploader mirrored the client’s existing spreadsheet tracker, the majority of work happened where they were already comfortable. Transposing data became trivial instead of a bottleneck.

3

Instant Platform Scalability

The site could jump from 20 shows to over 100 in minutes. The uploader unlocked a level of throughput that manual entry simply couldn’t match.

All projects