Brand site for a hydration company · Live in production
Redwood & Water
The storefront and journal for an endurance hydration brand — built to send people to Amazon and then prove whether it worked.
Role: Site design, content system, and direction of the agents that wrote it.
Timeline: Live in production
- Kinds of information tracked
- 5
- Things it can do
- 23
- Files of code
- 204
Distinct record types in the data model, from counting the table definitions in the schema file. Counted on 21 September 2026.
Separate operations the system can perform, from counting the HTTP endpoints registered in the server code. Counted on 21 September 2026.
TypeScript files, excluding generated migrations and build output. Counted on 21 September 2026.
What was actually broken
A physical product sold on Amazon has a problem the marketplace can't solve: Amazon is a checkout, not a brand. There is nowhere to explain what the product is for, no editorial voice, no email list, and no way to know which part of your marketing actually sent someone to buy.
The site has to be the brand, and it has to be measurable, even though the transaction happens somewhere you don't control.
The flow I designed
One destination, measured. Every path through the site leads to the same place — the Amazon listing — and every outbound click is tagged with where on the page it came from. "Buy" in the hero and "Buy" at the bottom of a journal post are the same action but very different signals, and treating them as one number throws away the only attribution available.
The Supplement Facts panel is an overlay, not a page. Checking the ingredients is a detour, not a departure. It opens over the page and returns you exactly where you were — a scroll position restored is a small thing that makes a site feel like it respects your time.
The journal earns the search traffic. Editorial content with topic pages, structured data, and a generated sitemap, so the brand can be found by people who are not yet looking for it by name.
The email list is asked for once, in the right place. After the content, not over it.
An admin owns the content. Posts, scheduling, cover images, the live product price and the subscriber list are all editable without a deploy. A brand site nobody can update without an engineer becomes a stale brand site.
Interface notes
One destination, repeated
Every path ends at the same Amazon listing. No second call to action to dilute it.
The same action, counted separately
This button and the one in the nav are counted separately. Which one people use is the only clue a marketplace leaves you.
The footage is generated
Each shot written out, generated, then assembled separately — so the edit can change without paying to remake the footage.
The hard part
Making the hero video without a film crew.
The footage is generated. Each shot is described in writing, produced by video models, then assembled into a sequence. For a small brand whose alternative was a stock clip or nothing, that is the difference between looking real and looking like a template.
The lesson was about repeatability. Generating video is slow and expensive, so a version you cannot reproduce is a version you cannot improve. Describing the shots as writing, and keeping the assembly as a separate step, means the edit can change without paying to regenerate anything — and a single shot can be redone without disturbing the rest.
The pattern: when one step is slow, costly or unpredictable, put a hard wall around it and make everything downstream repeatable.
Stack
| Monorepo | pnpm workspaces, TypeScript, Node 24 |
|---|---|
| Frontend | React 19 + Vite 7, Wouter, TanStack Query |
| UI | shadcn/ui on Radix, Tailwind v4, framer-motion |
| Backend | Express 5 with structured logging |
| Database | PostgreSQL + Drizzle ORM |
| Auth | Clerk |
| API contract | OpenAPI → Orval generated client |
| AI | OpenAI for draft posts; Veo and Sora for hero video generation |
| SEO | JSON-LD brand data, generated sitemap, topic pages |
| Testing | Vitest, including a sitemap and meta-injection test |
Outcome
Published and live, with a working admin, editorial journal, email capture, structured data, and outbound click attribution running against real traffic.