Retrospective · March 31, 2026
What a Professional Services Firm Can Learn From This
This project wasn't about t-shirts. It was about taking an intangible asset — the personality and language of a team member — and turning it into something tangible, shareable, and valuable. Here's what translates directly to professional services:
1. Your Culture Is a Brand Asset
Every firm has its "Robert." The partner who says things everyone remembers. The inside jokes that define the team. That's not just culture — it's brand material. Firm swag built on real personality beats generic "Smith & Associates" polo shirts every time. Clients notice. Recruits notice.
2. AI Amplifies Taste — It Doesn't Replace It
A traditional design agency would quote $500-2,000 per design for custom illustrated apparel. AI image generation handles the execution, but the real work is still human — art direction, brand identity, quality control, and knowing what "good" looks like. The tools are new. The taste required to use them well isn't.
3. Build Systems, Not One-Offs
The batch converter. The showcase template. The crop editor. Every tool we built on Day 1 made Days 2-7 faster. This is the same principle that makes good firms profitable: build the engagement template once, reuse it for every similar client. The firms that reinvent the wheel every engagement are the ones working nights in March.
4. QC is Non-Negotiable
One file in 46 had a defect. Automated analysis caught it in seconds. If we'd shipped that to Amazon Merch, a customer would have received a shirt with a picture of a shirt on it. In your world: one error in a 46-page return is the one the IRS sees. Build the analytical procedures. Run them every time.
5. Give People Tools, Not Deliverables
Instead of manually fixing every imperfect design, we built a crop editor and let the user fix it themselves — better and faster than we could have. In client service terms: the firms that build client portals, self-service dashboards, and interactive reports aren't being lazy. They're being smart. The client gets exactly what they want, when they want it, without waiting for you.
6. Ship Fast, Fix Forward
We deployed the page with a permissions bug, caught it in real-time from user feedback, and fixed it in 60 seconds. We didn't wait for perfection before going live. The firm that ships a "good enough" advisory report this week beats the firm that ships a "perfect" one next month. Get it out the door. Then iterate.
(Robert would say: "Get this out the door." He was right.)
🎯 The Bottom Line
A list of 13 phrases became a 21-design apparel collection with a self-service crop editor, built in 7 days. The tools, processes, and lessons apply to any firm that produces anything at volume — whether it's shirts, tax returns, or advisory reports. Build the pipeline. Automate the boring parts. Let humans do the creative work. Ship it.
Day 7 · March 31, 2026
The Crop Editor — Giving Users Control
Some AI-generated designs had traces of background artifacts. Instead of manually cleaning all 46 files, we built a self-service solution: an in-browser crop editor.
Click any design → fullscreen editor opens. Scroll to zoom. Drag to pan. Frame exactly the part you want. Hit Export → transparent PNG at full print resolution.
The Technical Trick
The editor uses two sets of images:
- Editor images (1500×1800, ~300KB-1.5MB) — loaded instantly for smooth zoom and pan
- Print images (4500×5400, ~2-8MB) — loaded only on export, with crop coordinates scaled up 3×
Editing feels snappy (you're manipulating a ~500KB image) but exporting gives you full print resolution (the same 4500×5400 file you'd upload to Amazon Merch). All client-side — no backend, no uploads, nothing leaves the browser until you save.
The Preview Background
When viewing a black design, the preview shows a white background (and vice versa) — so you always see the design clearly. But the export? Pure transparent PNG. No background baked in. Show contrast for editing, export clean for printing.
💡 Lesson
Don't do work the user can do better. The tool took about as long to build as manually fixing 3-4 files — but it works for every file, forever, for anyone. When choosing between "fix it manually" and "build a tool," ask: will anyone ever need to do this again?
Day 7 · March 31, 2026
Performance Lessons — Why File Size Matters
First version of the crop editor loaded the full print files (4500×5400, 6-8MB each) directly. Result: the user clicked a design and stared at a blank screen for 2+ minutes while a 7MB PNG downloaded.
The fix: a three-tier image system.
Three Tiers of the Same Image
- Thumbnail (400px, ~100KB) — gallery browsing
- Editor (1500px, ~500KB) — interactive crop/zoom
- Print (4500px, ~5MB) — final export & download
Each tier serves a different purpose. You never load more data than the current task requires.
💡 Lesson
This is the same principle behind materiality in auditing. You don't apply the same scrutiny to a $50 expense and a $5M acquisition. Match your resources to the task. Efficiency isn't about speed — it's about not wasting resources at the wrong resolution.
Day 7 · March 31, 2026
The Invisible Bug — Server Permissions
Everything was deployed. The page loaded. The HTML was perfect. The images… didn't show.
Files on the server. Paths correct. URLs resolved. Every image: 403 Forbidden. The page structure was fine — the images just silently failed.
The culprit: file permissions. Images uploaded as root with owner-only read/write. The web server runs as a different user and couldn't read them. A one-line fix made everything load instantly.
💡 Lesson
The most frustrating bugs are the ones where everything looks right. The code is correct. The files exist. The logic is sound. But one invisible configuration detail makes it silently fail. In accounting: this is the trial balance off by a penny because of a rounding rule nobody documented. Always check the boring stuff first.
Day 7 · March 31, 2026
Quality Control — The Eye Test
We ran a pixel analysis across all 46 print-ready files. The analysis measured what percentage of each image was transparent vs. opaque — a quick way to catch issues programmatically.
12 of 13 original designs came back clean: 85-95% transparent.
One outlier: #09 "Frankly, I Don't Give a Damn" — only 51% transparent. On inspection, it had a t-shirt mockup baked into the print file. Collar, sleeves, fabric texture. If uploaded to a print service, the printed shirt would have had a picture of a shirt on it.
Regenerated from scratch in 5 minutes. Problem solved.
💡 Lesson
Trust but verify. One bad file in 46 is easy to miss manually — but a simple analytical procedure flagged it instantly. In accounting terms: this is your analytical review. Run the numbers before you file.
Day 6 · March 30, 2026
Batch 2 — V2 Alternates & New Designs
Some of the original 13 were good but had room for a different interpretation. Second batch:
- 6 V2 alternates — same phrase, completely different art direction. "Sanity Check" went from a basic brain-on-clipboard to a tiny scientist examining it with a magnifying glass.
- 2 brand new designs — "*Quietly Closes Door*" (the universal escape move) and "We're Talkin' Mice Nuts!" (when something is absurdly small)
8 new designs, 16 new print-ready files. Same brand identity, same specs, same conversion pipeline. The infrastructure built on Day 1 made Day 6 trivial.
💡 Lesson
Invest in the pipeline, not the one-off. Day 1 infrastructure meant Batch 2 was "run the same process with new inputs." Same reason good firms build templates for recurring engagements instead of starting from scratch every year.
Day 1 · March 24, 2026
The Showcase & Order System
We needed a way for people to browse, pick colors, pick sizes, and generate an order — without a full e-commerce backend. No Shopify, no payment processing, no inventory management.
The solution: a single static HTML page with shirt mockup previews, 6 color options, size/quantity selectors, and a shopping cart that generates a copyable text order summary. Zero dependencies.
💡 Lesson
You don't need a $300/month platform to solve a simple problem. A static page with a cart-to-clipboard flow gets the job done. For internal merch, client gifts, or team shirts — build it once, share the link, collect orders.
Day 1 · March 24, 2026
From Raw Art to Print-Ready Files
Raw AI output isn't print-ready. Print-on-demand services need specific specs: 4500×5400px, 300 DPI, transparent PNG, sRGB, under 25MB.
We built a Python batch converter: upscale, ensure RGBA transparency, generate black and white variants, optimize compression. 26 files from 13 designs. All programmatic — no manual Photoshop.
💡 Lesson
A 50-line script replaced hours of manual image editing across 26 files. When you're producing volume — whether it's client reports, marketing materials, or merch — batch processing beats clicking through menus.
Day 1 · March 24, 2026
AI-Powered Design Generation
Each design was generated using AI image generation at 2K resolution. The difference between good and bad AI output? The prompts.
We didn't say "make a shirt design about eating crow." We said: "Editorial cartoon style, person at a formal dinner table, crow on a silver platter with garnish, reluctant expression, hand-lettered text reading 'Eat Crow' arching above, monocolor black ink on transparent background, vintage sign-painter typography, small Robert-Isms™ wordmark at bottom."
13 designs in about 45 minutes. Every prompt was a paragraph of specific art direction pulled from the brand identity doc.
💡 Lesson
AI doesn't replace creative direction — it amplifies it. Vague prompts get vague results. The 30 minutes spent writing the brand doc is where the real ROI lives.
Day 1 · March 24, 2026
Building the Brand Identity
Before generating a single image, we wrote a brand identity document. Not a 40-page deck — a focused one-pager:
- Visual style: Vintage Americana meets corporate satire. Hand-lettered typography, monocolor ink illustrations.
- Color system: Pure monocolor — black ink on transparent (light shirts), white ink on transparent (dark shirts). No gradients.
- Brand mark: Small "Robert-Isms™" wordmark at the bottom of every design.
- Art direction per phrase: Each saying got specific visual direction. Not "make it cool" — actual composition and scene descriptions.
💡 Lesson
A brand identity document is the difference between "random clip art" and "a cohesive collection." Same principle applies to client deliverables: a style guide up front prevents 10 rounds of revision.
Day 1 · March 24, 2026
The Origin — Where Sayings Become a Brand
Every office has that one person. The one whose phrases stick in your head long after the meeting ends. Whose metaphors become inside jokes, then company lingo, then something people say without remembering where they heard it first.
Robert is that person.
We started with a simple list — 13 phrases scribbled out, each one battle-tested in conference rooms, job sites, and family dinners. Things like "Fly at 1,000 feet" (see the big picture), "Put that puppy to bed" (close it out), and "I'm buried alive" (the universal cry of tax season).
The question: could we turn a list of sayings into a real, print-ready apparel collection?
💡 Lesson
Every business has institutional language — the phrases partners use, the shorthand clients hear. That's raw brand material. Most firms never think to capture it. The ones that do create culture you can wear.