Demos.
Working software you can open right now: two demo apps with open logins, and an automation you can run from first order to repeat customer. No signup, no call required.
Live demos
Don't take my word for it — log in.
Two working demos. Real screens, fake data, open credentials, no signup. Take them for a spin — these are the floor; together we can shoot for something with much taller aspirations.

Store analytics suite
Internal toolHarbor & Pine — The shop's side of the store
The problem
Harbor & Pine sells through WooCommerce, buys ads, and emails a list — and each of those lives behind its own login. Answering "which campaign actually paid for itself?" meant exporting three reports and joining them by hand in a spreadsheet, so mostly nobody asked.
The build
One warehouse that pulls orders, ad spend, and site analytics on a schedule, and a dashboard built around the decisions rather than the sources: which campaign produced revenue, which coupon just discounted people who were buying anyway, which customers came back.
What's in it4
- Campaigns view — UTMs, coupons, landing pages, and email traffic together
- Ad spend and site analytics next to store revenue, not in a separate login
- Saved report builder with CSV export
- Nightly sync with a replay log — a failed pull retries instead of vanishing
How it's wired5
- StoreREST
- Ads + analyticsAPI pull
- Sync workercron / ETL
- WarehousePostgres
- DashboardNext.js
Data model4
orders
- id
- customer_id
- total
- coupon_code
- utm_source
- placed_at
customers
- id
- first_order_at
- lifetime_value
campaigns
- id
- utm_source
- utm_campaign
- spend
- clicks
sync_runs
- id
- source
- started_at
- status
- row_count
Built with4
- Next.js
- TypeScript
- PostgreSQL
- WooCommerce REST

Order portal
Customer-facingHarbor & Pine — The customer's side of the same store
The problem
A made-to-order piece takes weeks to build. Customers email to ask where theirs is, and the shop answers the same four questions by hand — with progress photos buried in threads and invoices re-sent on request.
The build
A portal where the order carries its own history: every stage dated, shop-floor photos attached, invoices and documents in the customer's hands. The shop updates the order once and the customer sees it immediately, so the question stops being asked.
What's in it4
- Order timeline — deposit, build, finish, delivery, each with real dates
- Two logins, two roles: the customer's view and the admin's view of one order
- Invoices and documents in the customer's hands, not in an inbox
- Auth, permissions, and an audit trail on every status change
How it's wired5
- Customer loginsession auth
- Order recordPostgres
- Stage updateadmin action
- NotificationResend
- Portal timelineNext.js
Data model4
users
- id
- role
- last_login_at
orders
- id
- customer_id
- piece
- stage
- deposit_paid
- due_at
order_events
- id
- order_id
- stage
- note
- actor_id
- created_at
documents
- id
- order_id
- kind
- storage_key
- uploaded_at
Built with4
- Next.js
- TypeScript
- PostgreSQL
- Resend
Live journey
A sample reorder journey, built and automated end to end.
This sample integration mirrors a reorder flow a business might use to turn a first-time buyer into a repeat customer. I built every step — from the purchase webhook and welcome email to click tracking, return visits, cart activity, and coupon redemption. Your flow will be different; I can connect and automate it across the platforms your business already uses.
- First orderwebhook
- Welcome emailResend
- Link clickedclick event
- Return visitUTM tag
- Add to cartcart event
- Second ordercoupon code
Problem: one-time customers. Solution: data-driven automation.

The journey, fully wired
ArchitectureHarbor & Pine — every event, every lane, and the loop it exists for
One purchase sets all of this off. Four lanes run at once — email, SMS, the CRM, and the customer's own portal — every event lands in analytics, and the coupon at the end starts the whole thing again. This is the map; the live, running version is the next increment.
- a packet on a wire — one event in flight
- feedback — the system listening to itself
- the repeat-order loop — where the money is