← all workVisit →
2026– · Co-Founder & BuilderBuilding now

The Swedish candy cart

Little cart. Big joy.

What it is

Nectar is a mobile candy business built on a vintage Italian Ape Piaggio, painted Ferrari Rosso, full of imported Swedish pick-and-mix at $1.25 an ounce. I co-founded it with Natalie LaRosa and we launched February 13, 2026 — sold out the first day. Everything underneath the cart — booking, a live find-the-cart map, crew shifts, the boost system that pays crew more for high-demand events, payroll cron, gift cards, Candy Club subscriptions, shipping and fulfillment, and the SOP playbooks the crew runs at every event — was built in conversation with vyb. As the cart has grown, so has the ops stack: a rotating monthly candy menu, ingredient transparency for every variety, and a single admin hub that runs the whole back office.

Why it exists

Natalie and I had a strong feeling that Pittsburgh needed more joy, and that a beautiful cart full of imported Swedish candy at a popup was the way to deliver it. No market research. Just a red Ape and a bet on the idea.

How it's built

Next.jsSupabaseSquareResendShippoGoogle MapsRailwayTypeScriptvyb

What's inside

shop

Pick & Mix Shop

Order Swedish candy online by weight. 50+ varieties, $1.25/oz, Square-powered checkout with real-time cart.

Candy Club

Monthly subscription box with handpicked Swedish candy. Custom-labeled, Shippo-shipped, auto-billed.

Gift Cards

Digital gift cards delivered by email. Any amount, redeemable online or at the cart, powered by Square GAN.

Ingredient Transparency

Every variety has a public ingredient page and printable allergen label. What's in the candy is never a mystery, online or at the cart.

events

Event Booking

Book the cart for birthdays, popups, and private events. Google Places venue autocomplete, deposit, Square invoice for the balance.

Find the Cart

A live Google map of where the cart will be — upcoming popups, times, and pinned locations across Pittsburgh.

crew

Crew App

Shift claiming, schedule visibility, and earnings tracking for the Nectar crew. Claim your shift in one tap.

Crew Playbooks

Database-backed SOP runs walk the crew through setup, service, and close — with photo evidence captured at every step.

Boost System

Dynamic pay multiplier for high-demand events. Crew earns up to 1.5x on private bookings, 1.25x on popups.

ops

Admin & Fulfillment

One hub for the whole back office: orders, Candy Club, finance, crew sync, events, newsletter, and Shippo shipping labels — no separate apps.

The story
01

Day one

October 4, 2025

Natalie and I had the concept, a Piaggio on order, and Sweetish as the candy supplier. I started needmynectar.com in Next.js the same day. The roadmap was live before the website was.

Proof of work

610a2a4Refactor website structure — Next.js setup, package.json, README with deployment instructions
fb50457Update roadmap to replace Swedish candy supplier research with an order from Sweetish
7f1ea5cfeat(website): add responsive mobile navigation header with hamburger menu
02

The Ape arrives

October 8, 2025

I picked up the Piaggio. Tesla hitch installed. First meeting with Fulton Commons scheduled. I logged 164 reference images from Tukxi to the repo for brand direction. The physical cart was real.

Proof of work

990ba65Piaggio pickup complete. Tesla hitch installed. Initial meeting with Fulton Commons.
799ee90Add Tukxi inspiration gallery with 164 images organized by color/aesthetic
933b277Update README: LLC formed, Piaggio acquired, Mercury bank account opened
e954290Update: Ape is home, Sweetish pricing confirmed, Natalie working on moodboard
03

Permits

October 28, 2025

I filed the commissary permit application as FSP-MFC-25-017. The regulatory path was in motion. The cart could not operate without it.

Proof of work

7a12a5cUpdate COMMISSARY_PERMIT.md — successful submission FSP-MFC-25-017 on October 28, 2025
353d78cRevise permit checklist with action items and next steps following commissary permit submission
d43b2cdUpdate LAUNCH_PLAN.md with revised target launch date — permit submission milestone
04

The website

December 3, 2025

I rebuilt the full website in the Hester design system. Booking page, Find Us with map, gummy bear favicon, candy-themed animations. The headline: Catch me if you candy. The site went from placeholder to real.

Proof of work

384413bBuild Nectar website in Hester design system style
0ef0ac2Add Find Us page with interactive map for cart locations
6c78a2cAdd event booking page with availability calendar
331dc62Update hero: Catch me if you candy + new Ape cart event image
1068e1fAdd gummy bear favicon
c7799c0Complete Nectar website with Cart component and final polish
05

Approved

December 27, 2025

ACHD approval landed. The cart was legal. I did another round of UI polish — rounded hero, Our Story section, wavy marquee, Pittsburgh skyline cart image.

Proof of work

b1d7ca3Update COMMISSARY_PERMIT.md with ACHD approval and next steps
b806d63Update permit records and roadmap with ACHD approval details
321e2e4Add Our Story section, reorder candy spread, polish UI
5d6c41bUpdate hero with Pittsburgh skyline cart
5a63d4aAdd wavy scrolling marquee to hero section
06

Valentine's locked

January 12, 2026

Jules confirmed the Strip District lot for February 13-15. The launch date was set. I placed the Sweetish order: 302 lbs, 16 varieties. The cart had a date.

Proof of work

495abb0Jules confirmed Valentine lot — Strip District locked in for Feb 13-15
d55c185Lock in 16-variety candy selection for Valentine launch
460a812Add first Sweetish order (Order 001) - 16 candy varieties, 302 lbs
d797e60Lock in Valentine operating hours: Fri 10-2, Sat 10-6, Sun 10-2
07

Ready to take money

January 15, 2026

Insurance locked. I integrated the Square Web Payments SDK. The cart could legally operate and accept payment online.

Proof of work

372fd3fInsurance locked — update status and timeline
6c8a960Add insurance documents to docs/insurance/
635e080Implement Square Web Payments SDK for embedded checkout
c6ae4ebfix: resolve PaymentMethodAlreadyDestroyedError in checkout
b8f3afeFix Square sandbox API and improve checkout UI
08

Built to run

February 8-10, 2026

I rebuilt the booking flow — date-first UX, availability check, Resend confirmation emails. Branded email templates. Live Google Calendar integration for the weekly schedule. The business ran on code before it ran on candy.

Proof of work

49f89caBooking flow: date-first UX, availability check, and Resend email notifications
202d30dBranded email templates inspired by Figma brand kit
8addb6eLive Google Calendar integration for weekly schedule
e4f2df0Homepage redesign, schedule component, contact info, and nav cleanup
b67d220Update website to per-guest event pricing model
09

Sold out

February 13, 2026

First popup. Strip District. We ran out of candy.

Proof of work

dddfad4Add consolidated inspection-day checklist for ACHD pre-operational inspection
ea462f6Add full operational flow to inspection checklist
10

Real photos

March 14, 2026

Alexa's professional shots replaced the placeholders. The scalloped navbar. The cart on the homepage. The site finally matched the real experience of the cart.

Proof of work

30f8a54Swap Events Hero photos with Alexa professional shots
c0f4258Replace homepage hero cart with Alexa 4K no-bg photo
d62f810Add scalloped bottom edge to navbar
5db31e7Swap Candy Club polaroids with Alexa photos
0c0364fSwap Our Story photo with Alexa (cart with stickers + flowers)
11

Book it

March 17, 2026

Real booking form. Apple Pay. Address autocomplete. Square invoicing. The operational bottleneck between interest and commitment was gone.

Proof of work

5bc2909Enforce 10-day minimum lead time on event date picker
bd2dbd5Fix address autocomplete on mobile — custom AutocompleteService dropdown
557c353Fix Apple Pay amount; fix button text spacing
f80636cAdd Apple Pay domain verification file
e0fb3ddFlatten nested cards on /book mobile — remove inner cards, use dividers
12

Order 4

March 22-27, 2026

482 lbs of candy incoming. Five new varieties from Sweetish added to the lineup. The cart was growing faster than expected.

Proof of work

3242b63Update inventory: add Order 3, Gummy Flowers, cart container setup
a00694dSwap in 5 new subs, update order to 154 cases / 482 lbs
5b0d744inventory: mark Order 4 received (Mar 27, 2026, ~482 lbs)
144ba13ingredients: add 5 new Order 4 varieties
13

Candy Club

April 1, 2026

Monthly subscription bags with branded packed-and-shipped emails. Nectar stopped being a cart you'd see at a popup and became something that arrived at your door. The cart found a recurring model.

Proof of work

f38eae3candy club preferences — Supabase table, preference update API + landing page
a60bf50Add branded Candy Club packed + shipped emails
cca8f6eBump Candy Club to 12oz/month
b71ccddAdd Candy Club upsell to Pick & Mix order emails
14

The shop

April 1, 2026

Online candy ordering live on needmynectar.com. Pick your mix, check out, it ships. Revenue no longer required the cart to be physically present.

Proof of work

5d57ea4nav/footer/home: unhide Shop and Candy Club across all surfaces
67f4d7fAdd Gummy Flowers to online candy lineup
c1e5e72Add 5 new candy varieties with single and scoop images
15

The machine

April 7-22, 2026

Shippo labels, auto-tracking, ingredient cards with full allergen data, a packing admin UI. The fulfillment pipeline could run without manual steps.

Proof of work

30467b7feat: inventory tracker — containers, not pounds
68d404efeat: candy club monthly ship alert script
22af3f9feat: revenue panel with area chart — today/week/month/year, KPIs
d4734baAdd shipped notification email and emoji generation scripts
16

Gift cards

April 25, 2026

Square-backed digital gift cards live in a day. Purchase online, receive by email, redeem at any event. Someone else's celebration could now bring a new customer to the cart.

Proof of work

f9c8d2afeat: digital gift cards — Square GAN, Resend delivery, /shop/gift-card
a3e1c4bfeat: TREATYOURSELF promo code for gift card purchase
17

The crew

April 24-27, 2026

Jenis, Izzy, and Ella came on. I built the crew app for them — shift claiming, animated chooser, earnings per event. The cart could run without me at every event.

Proof of work

ecd86a9feat: crew chooser avatars emerge from the tapped circle
74f1153feat: staggered slide-in animation for crew chooser (80ms per person)
1de52d7feat: tap-to-select replaces WHO dropdown on crew cards
1cbab65feat: crew shift notification emails on new popup/event
8d3e15bAdd nanny selector dropdown to each shift card
18

Cart 2

April 28-29, 2026

I filed the permit application as FSP-MFF-26-059. Full documentation package — equipment disclosure, site plan, photos, application. The second cart entered the regulatory system.

Proof of work

4d1ca05feat: fill and sign actual ACHD plan review PDF for Cart 2
6d8eef3feat: final ACHD Cart 2 application - all fields complete
239cacaACHD cart 2 — disclose Jackery, add cart photos, supersede old folder
ce34ae0feat: Cart 2 ACHD permit package — signed application, communications, full documentation folder
cabba8eCart 2 ACHD plan review submitted as FSP-MFF-26-059
19

Sugar Rush

May 3-4, 2026

Boost system for high-demand events. Crew claim elevated pay rates locked at claim time. Square timecards stamped automatically at 11pm. The busiest events now reliably get the best crew.

Proof of work

2df7aa7feat(crew-boosts): boost system — API, email, Square wage override
5141e92feat(crew-app): show revenue per event card + boost/mega-boost buttons
f669256feat(crew-boost): final email template — sugar rush subject, gold CTA inside card
25966f6feat(crew-page): surface active boosts — sugar rush badge + boosted earnings
5c46fc0fix(crew-boost): wire boost rate through full claim to timecard flow
20

The booking rethink

May 5–8, 2026

The form wasn't earning trust fast enough. I ran four prototypes — native calendar input, progressive disclosure, celebratory date confirmation, anchored CTA — and chose the best of each. Crew architecture followed: unified email templates, confirm creates shift, auto-notifies. The ops event type landed the same week.

Proof of work

3cc894bfeat: 4 booking flow prototypes (proto-a through proto-d)
bc02518analytics: add booking funnel event tracking
bef5a37feat(crew): unified branded email templates
8e8e48bfeat(crew): clean architecture — crew_shifts as source of truth
92ff07dfeat(crew): confirming an event auto-notifies crew + marks shift notified
a889106feat(phase-2b): ops event type
21

The catalog

May 9–14, 2026

Order 6 went out: 285 bags, 939 lbs, due by May 14. I cleared the online catalog of out-of-stock items and regenerated product imagery with transparent backgrounds. Spicy category added. Ingredient label cards built for Candy Club boxes. New varieties live on the pick & mix.

Proof of work

ac84e52catalog: hide Malaco Swedish Fruit Chew from online
558d56dfeat: nectar blind bag — ingredients section + printable cards page
f0fd40aops: Order 6 sent — 285 bags ~939 lbs, need by May 14
8898d77feat: candy club ingredient labels in admin
c1923c0feat: add Spicy category, move Spicy Mangos from Sweet → Spicy
4840e06feat: unhide Forest Berries, Candy Kittens, Strawberry Vanilla Twists, Sour Strawberry Bricks
22

The numbers

May 14, 2026

Full business snapshot live at needmynectar.com/stats. Popup history, unit economics per channel, margin breakdown — 50–65% on popups, 35% online. Private events visible for the first time. Everything in one place.

Proof of work

d7ab693feat: add /nectar business snapshot page to needmynectar.com
df80ca31feat: add full popup history tables + summary to /nectar page
f691beefeat: update stats page — margin pills per section, private events, corrected pop-up margin
4c98aa6feat: real online unit economics — $25/bag, net $8.80 (35%)
e19454dfeat: add unit economics below each section chart
23

Request flow

May 17–18, 2026

Private events were taking too much coordination for the return. I paused live booking, raised the minimum to 75 guests, and rebuilt around a request flow — inquiry first, confirm later. The cart's time is worth protecting.

Proof of work

268e05dfeat: hide event booking from public site — pause private events
2ff3788feat: booking requests flow
e114101feat: raise minimum guest count to 75
5d8b42dfeat: remove express interest form — all dates use unified request flow
52a8f4cfix: reframe confirmation email — date available, deposit to confirm