Skip to content

Brands & Ventures · E-commerce · US Manufacturing

SignzArt

Co-founded a US commercial-signage company and single-handedly built its full technical stack — storefront, custom-quote commerce, CRM and order ops.

Co-founder, CTO & Sole Developer/2026/Live (In Development)
signzart.com
LIVE
018Product categories, 6 self-serve pricing calculators
025Typed background-job queues
0310Headless CMS collections
042 hrsQuote turnaround, stated
01

THE WORK

The Situation

A signage company is two businesses wearing one coat: a storefront that quotes, and a factory that builds.

SignzArt is a US commercial-signage venture — American design, overseas manufacturing, UL-certified. I am one of three co-founders and the sole developer. The company needed an end-to-end commerce and operations system built from zero. American navy and red. USD only.

The Job-to-be-Done

THE JOB TO BE DONE

When a customer needs custom commercial signage,

I want to quote, sell and route each order into manufacturing and CRM automatically,

So I can run the business without manual glue between tools.

The brief was premium commercial signage, transparently priced. Most signage buying is opaque — a form, a wait, a phone call. The job was to remove the glue between those steps.

The Approach

I started from the seam, not the screen. Custom signage does not have a single price; it has a pricing function. So I separated the pricing engine from the pricing data — pure functions over range-based tables, with cost-floor validation so no configuration can quote below margin, and weight-slab shipping derived from carrier rates. Eight product categories, six self-serve calculators, all reading from the same tables.

The second decision was to treat commerce and operations as one system, not two integrations bolted together later. A quote, a checkout, a manufacturing handoff and a CRM record are the same order at different moments. I built the whole thing as a Turborepo monorepo so the web app, the worker and the database share one typed contract.

The third was to keep the request path thin. Anything that talks to a third party — Stripe, HubSpot, Resend, inbound email — happens off the request, on a queue. The storefront stays fast; the slow, failure-prone work runs where it can retry.

The System

The monorepo runs a Next.js 16 and Payload CMS 3 web app alongside a dedicated long-running BullMQ worker, both sharing a Drizzle/Postgres database package and ten headless CMS collections. Between them sits a decoupled async pipeline: five typed BullMQ queues — email, webhook, order, CRM and sequences — on Redis, with a scheduler and graceful shutdown. Webhook ingestion for Stripe, HubSpot, Resend and inbound email lands on the webhook queue rather than the request path; Stripe handles checkout and Resend handles transactional mail.

On top of the order spine, a lead-scoring service pairs a pure scoring engine with DB persistence — time-decay, tier derivation — firing hot-lead alerts and syncing to a HubSpot custom property. A full B2B/wholesale portal API covers products, orders, quotes and invoices with balance and pay, behind NextAuth on the Drizzle adapter. Media moves through S3 presigned uploads fronted by a private media proxy. The stack is containerized on Dokploy/Hetzner with health checks.

Quote turnaround is stated within two hours. The architecture is built so that target is a calculation, not a queue of manual work.

Status

Live, and in active build. The storefront, pricing calculators, queues, CRM sync and wholesale portal are running; the platform continues to grow alongside the business it serves.

02

GALLERY · 05 FRAMES

NEXT EXHIBIT

Building something like this?

Start a Conversation →