Work

Receipts, not claims.

Everything here is built and running, or happened on the day it was meant to. Where you see software, the money is blurred and private names are hidden — looking after client information is half the job.

Why the software exists

The 75% problem.

Every small organization has had this exact conversation. You need software. You find something close — Asana, Monday, Slack, or something built for your industry at a few hundred a month. It does about 75% of what you actually need.

So you pay for all of it, forever. You bend your process around the quarter it got wrong. And you hand your team one more login to remember, one more tool to learn, one more place where information goes to hide. None of those products are bad. They just weren’t built around your business, because they were built around ten thousand businesses at once.

That’s why WagsWorks got its own software, and why Boulder Waldorf did too, instead of another monthly subscription. The way a sponsorship agency chases paperwork, and the order a preschool takes families through enrollment, aren’t generic problems — they’re that business, written down. Software built to match the real job disappears into the day. Software you have to work around never does.

Custom software used to mean a six-figure budget and a year of discovery meetings. It doesn’t anymore. Boulder Waldorf went from nothing to a full public site plus a working admissions and paperwork platform in a matter of months, by one person, for a fraction of what the 75%-fit subscription would have cost over the same period.

Internal platform · 2025–present

WagsWorks OS — the agency’s entire back office in one app.

WagsWorks sells and delivers sponsorships for festivals and concert series across the US. That business used to live in spreadsheets, inboxes, and memory. Now it lives in one system — designed and built by me, used by the team every working day.

It isn't an off-the-shelf to-do app with sponsorship words pasted over it. A deal knows which show it belongs to, what paperwork it still owes, which invoice it turns into, and how many tickets that client has left. Nothing generic gets that far, because nothing generic knows that a missing insurance certificate can stop a truck at the gate.

  • Every deal in one place, sorted by client and by show, with a colored bar for what's been pitched, what's in progress and what's done — so a hundred-odd live deals make sense at a glance
  • Paperwork that chases itself. Leave something a week and it gets flagged; leave it two and it becomes somebody's urgent job, with their name on it. When the paperwork finally arrives, the reminder disappears on its own
  • Tasks you type the way you'd say them out loud — “Call Sarah tomorrow, Scott, urgent” — and it works out the date, who it's for, and how urgent it is
  • Invoices, with anything late showing up before a client has to ask
  • What each event is actually earning — what was pitched, what is expected, what has been paid — next to last year
  • Guest lists, and how many tickets each sponsor has left
  • A team chat, so questions about a deal stay with the deal
  • Connects to your email, so a deal carries its own history
  • Change something and everyone else sees it straight away
  • Sits on your phone like any other app, and works with no signal
13sections, from deals to guestlists to Drive backups
149deals tracked through the pipeline to date
1person designing, building and using it

Skip this bit unless you have a developer who'll ask: it runs on Cloudflare and Supabase, with no framework and no dependencies to keep patched, and it's tested automatically before anything ships.

Before

  • Deals tracked across spreadsheets and inboxes
  • Paperwork status living in somebody’s head
  • Overdue invoices found by accident
  • Generic tools that fit about 75% of the job

After

  • One pipeline, every deal, every show
  • Stale paperwork flags itself and assigns the chase
  • Overdue invoices surface before anyone asks
  • Built to the actual process, not around a product
Role
Design & build, solo
Status
In production daily
Built with
Cloudflare Workers · Supabase · PWA
Access
Internal — walkthrough on request
The WagsWorks OS dashboard: headline numbers, guestlist, overdue actions, and revenue by event
Monday morning, one screen. What the year is worth, what is overdue and whose name is on it, and which events are earning. The red items escalated themselves.
The deal pipeline: a card per client with counts, values and a red/amber/green stage bar
Every client, every deal, one glance. A card per property with its own stage bar — red needs attention, amber is moving, green is done. Roughly 150 deals live in here.
The to-do list, with tasks created automatically from deals and overdue dates in red
Type it the way you’d say it. “Call Sarah tomorrow @scott urgent” becomes a task with a due date, an owner and a priority. The rest arrive on their own when a deal needs paperwork or an invoice.
Relationship management: days since last email per client, with per-client nudge thresholds
The one no product sells you. It reads how long each client has actually been quiet — from real email history — and nudges when they cross a threshold you set per client. Some relationships need a month; some need three.
Ticketing: guest list spots, ticket banks per sponsor, and confirmation emails
Tickets, which are their own small hell. Who asked, for which show, out of whose allocation, and how many that sponsor has left — with the confirmation email one button away.

Real screens from the running platform. Money is blurred, and so are the names of individual guests — the client and festival names are the roster, and they stay.

Full site + admissions platform · 2026

Boulder Waldorf — a school’s web presence, and the software behind its front office.

Boulder Waldorf Kindergarten & Preschool needed more than a new website. Admissions, enrollment paperwork, and family records lived in separate tools that didn’t talk. The rebuild put the public site and the office software in one system the staff run themselves.

  • The whole public site — programs, admissions, summer camp, FAQs, and a search box that actually finds things
  • Parents apply online and can stop halfway and come back, which is how people with small children actually fill in forms
  • Enrollment paperwork signed in the browser, with somewhere to upload the documents that have to be scanned
  • Private forms for a child's doctor or therapist, opened by a link only they receive, and never visible to the family
  • One page per family, from first enquiry to enrolled — where they are, what's missing, and reminders that send themselves
  • Newsletters and automatic emails the office writes itself
  • Staff change the website by clicking on the words and typing. No monthly subscription, and nobody to phone
67pages, public and admin
134page checks run automatically before anything goes live
140application questions the office can reword itself

Skip this bit unless you have a developer who'll ask: it runs on Next.js and Supabase, hosted on Vercel. Before any change goes live, every one of the 67 pages is opened automatically in a real browser at desktop and phone size and checked for things that look broken.

Role
Design, build & launch, solo
Status
Launching 2026 — see the preview
Built with
Next.js · Supabase · Vercel
Client
Boulder Waldorf Kindergarten & Preschool
The Boulder Waldorf homepage
The Boulder Waldorf site on a phone
Programs page of the Boulder Waldorf site
The public side — programs, admissions, summer camp, and a site-wide search, all editable by the office.

What changed

From forms, spreadsheets and sticky notes to one system.

Before

  • Inquiries in one inbox, applications in another
  • Google Forms and spreadsheets that didn’t talk
  • Paperwork printed, signed, scanned, emailed back
  • Someone remembering to chase each missing form
  • No single place to see where a family stood

After

  • Apply online, save halfway, come back later
  • Contracts and forms signed in the browser
  • Every family on one page, inquiry to enrollment
  • Confirmation and reminder emails send themselves
  • Staff edit the site and the email wording themselves

Thirty seconds inside the admin

A family arrives, their paperwork is tracked, their application is reviewed, and the emails that go out are edited in plain English — all by the office, with nobody phoning a developer. Recorded against an invented family that was deleted straight after.

Behind the login — what the office sees

A family profile in the admin: details, children, and paperwork status
One family, one page.Their inquiry, their child, where they are in admissions, and every form with its own status — each with an “email them this” button so chasing paperwork takes one click instead of a rummage through an inbox.
An application in review, with a suggested family match
It notices things. Families inquire from one address and apply from another, so the application page finds the likely match itself and asks before linking them — the sort of detail you only build if you have watched someone do this job by hand.
The email template editor, with fill-in names like child_name
The emails send themselves — and the school owns the words. Every automatic message is editable in plain language, with fill-in names for the child and parent. No developer, no support ticket, no waiting on me.

Screenshots use an invented family created for this page and deleted immediately after. No real record appears anywhere on this site.

Website & growth strategy · 2026

Sommeliers Academy Sweden — where the wine lane and the build lane meet.

Sommeliers Academy Sweden trains sommeliers to ASI-aligned standards. I built the website and the growth strategy behind it — bilingual, course-forward, and built to turn curiosity into enrollments.

This one is personal: I hold an ASI Level 1 certification myself, so the brief needed no translating. When the client says “blind tasting,” I know exactly what the room looks like.

A reminder that the lanes aren’t separate businesses — knowing the industry is why the website works.

Role
Website & growth strategy
Languages
English · Swedish
Sommeliers Academy Sweden homepage

Brand & site rebuild

WagsWorks — rebuilding the shop window for the shop I work in.

WagsWorks sells live-music sponsorship. Its site was an aging Squarespace template that undersold the work, so I rebuilt it: a hand-built site with an actual point of view — huge condensed type, cream paper, one red accent, and a Glengarry joke where the tagline goes.

Structured the way a sponsor actually decides: who we represent, the show calendar, brand partners, the team, and a deck one click away. Confidence without a stock photo in sight.

I do the sponsorship work at WagsWorks too — decks, packages, contracts, and partner delivery for festivals and concert series across the US. Selling the thing and designing how it’s sold turn out to be the same skill.

Role
Design & build, solo
Replaces
An aging Squarespace template
The rebuilt WagsWorks site: 'Live music sponsorship done right.'

The other decade

Brands I’ve worked on, and what that actually meant.

Before the software, this was the job — and for a lot of it, still is. Field teams, activations, campaigns, and the decks that sold them.

Subaru & Chaco Footwear

Field manager, national activations · The Field Scout

Led field teams on the road: staffing, onsite logistics, inventory, client communication, and the reporting that turns a weekend of conversations into something the brand can act on.

The ReChaco Roving Repairs bus set up at an activation, with the repair station and crew
Crew on the roof of the Chaco rig, South Congress, Austin
ReChaco Roving Repairs on the road — a converted bus that fixed people’s sandals on the spot. The kind of activation where the logistics are the whole product.

Jack Daniel’s, Red Bull & Campari

Brand manager & producer · DoStuff Media

Campaigns and events where the brand needed to show up in a bar or a venue and not feel like an ad. Programming, talent, run of show, partner communication — and often the load-in too.

Pickathon, Edgefield & Marymoor

Sponsorship · WagsWorks

Festival and venue sponsorship for properties across the Northwest — packaging what a venue has to offer, pitching it, getting it papered, and delivering what was promised once the gates open. Partners have included Kaiser Permanente, Toyota, Bulleit, Poler and Brew Dr.

Nike, Daimler & RGA

Corporate events · 503 Media

Off-sites, award ceremonies, and internal events for companies where the details are the entire point and nothing is allowed to wobble.

Cover of the WagsWorks sponsorship offerings deck
The decks are mine too. Sponsorship offerings, one-sheets, and pitch collateral — 30-odd pages that have to survive being forwarded to somebody’s boss. Same for restaurant menus, which is where I learned that design is mostly deciding what to leave out.

Before & alongside — the Portland years

A decade of doors opening on time.