// Full-Stack DTC
Piece Keepers, DTC ecommerce built end-to-end (Kickstarter through fulfillment)
A direct-to-consumer ecommerce operation built and run solo on Shopify. Funded via Kickstarter ($25K+, 205 backers), now running on a Forge Run pre-order model with paid-to-email as the core flywheel.
The problem
Standing up a DTC brand from zero with one operator means every layer of the operation has to be built or chosen, not bought as a service. Storefront, product detail, email automation, ad system, fulfillment, customer support, and the connective tissue between them all have to function with no team. Most “run your own DTC” stacks assume there is at least a marketing person and an ops person. There was not.
The build
Shopify as the storefront with custom theme work and Liquid customizations for product configuration. Mailchimp as the email layer, with automations driving the paid-to-email flywheel: paid traffic enters the funnel, opts in for an offer, gets nurtured by sequence, and converts on a windowed promotion. Meta Ads as the acquisition channel, with creative iteration and audience structure tuned to the AOV. A Postgres-backed content calendar coordinates campaign timing across channels.
- Kickstarter campaign as the cold-start: $25K+ raised, 205 backers, validated before storefront went live.
- Pre-order model (Forge Run) replaces “list in stock, sell, restock” with windowed pre-order drops, which lets one operator run inventory.
- Email flywheel is the core retention mechanism: paid acquisition fills the list, the list converts the next drop, the drop funds the next paid run.
- Operations stack runs on infrastructure I own: Ubuntu VPS, PM2 processes, Caddy reverse proxy, Postgres for content and campaign state.
- The agentic stack referenced elsewhere on this site (PK Command MCP server, Boxman 3000 council) is the operations layer that makes solo operation tractable.
Results
- Kickstarter: $25K+ raised, 205 backers (verified).
- Forge Run launch (17 days, blended Meta + email + direct): ROAS in the ~1.94x range across the window.
- Email list growth and recurring contribution to subsequent drops is the actual flywheel signal, not a single-window ROAS.
What I would do differently
Starting again, I would build the campaign-state model in Postgres before the first paid dollar, not after. The cost of not having structured state during the Kickstarter window was paid back in the first Forge Run by a single coherent calendar. Lesson: ops state is a day-one asset, not a day-ninety asset.