RLRodney L. Lewis
Carrot Fertility / architecture
Information architecture tree diagram showing root navigation and stacked CMS collection cards with orthogonal connector lines for Webflow templates.

Running the marketing site like a product

The marketing site at Carrot was not short of demand. It was short of a front door. Web work arrived as hallway conversations, thread replies, and half-scoped asks, which meant scope surfaced during the build instead of before it, and the same clarifying questions were asked on every request. That is an operations problem wearing a technical costume, and no amount of faster building fixes it.

Challenge

Web work arrived from every direction and in no consistent form. Requests came in as conversations, scope was discovered mid-build, and the CMS collection pages underneath had drifted far enough from the design system that each new page was a small negotiation. Content production was slow, bogged down by heavy developer dependencies, and the slowness was operational as much as technical.

Solution

I treated the marketing site as a product with an intake, a backlog, and a template system. An Asana intake form standardized how web work was scoped across marketing, design, and engineering, so requests arrived with the information needed to size them. I then rebuilt the Webflow CMS collection pages as modular templates that enforced the design system by construction, and wired the careers section to the Greenhouse API so open roles published themselves.

Outcome

Architected modular Webflow templates that reduced marketing dev requests by 30% and returned roadmap capacity to engineering. Design system consistency became the default state of a new page rather than something reviewed into it, and the careers section stopped being a page anyone had to maintain. Carrot has since rebuilt the marketing site as an entirely new Webflow project, and the open-roles page still renders from the same Greenhouse endpoint, with the same department filtering, years after I wired it.

Webflow CMS collection schema and modular template architectureThree-stage pipeline showing how Webflow CMS collection schemas bind structured content records to modular templates. The first stage, CMS Collections, defines typed schema fields for eBooks and Careers. The second stage, Modular Engine, enforces design system tokens, native Marketo form symbols, and Greenhouse ATS API hooks. The third stage, Production Output, publishes /ebooks-guides and /open-roles automatically with a thirty percent dev dependency reduction.CMS CollectionseBooks & Guides• title: PlainText• asset: PDF file• form: Marketo RefCareers / ATS• role: PlainText• dept: Reference• job_id: ATS APIModular EngineDesign TokensEnforced type & gridMarketo SymbolEmbedded #mktoFormGreenhouse SyncATS API hookProduction Output/ebooks-guides/*Zero dev ticket/open-rolesReal-time ATS sync~30% dev reduction
Webflow CMS collection schemas bind structured content fields to modular component templates: eBooks & Guides map to gated Marketo form symbols, while Open Roles bind directly to the Greenhouse ATS API, enforcing design system constraints by construction and reducing dev requests by ~30%.

The build

So the first thing I built was not code. An Asana intake form standardized how web work got scoped across marketing, design, and engineering: what the page is for, who it is aimed at, what has to be true for it to be finished. Requests arrived comparable to each other, which made prioritization possible, and made it visible when the same request kept recurring in different clothes — which is the signal that a template is missing.

Those recurring requests pointed straight at the CMS. I rebuilt the Webflow CMS collection pages as modular templates, with the design system expressed in the components themselves rather than maintained by review. When the template carries the type scale, spacing, and component behavior, a new page is consistent because it was built, not because someone caught the drift in QA. Content production stopped being a build for each page and became an entry against a template, driving a ~30% reduction in developer dependency across marketing requests.

The careers section was the clearest case for removing a human from the loop entirely. I wired it to the Greenhouse API so that open roles rendered from the source of truth recruiting was already maintaining. Nobody mirrors a job posting onto the website anymore, and the site cannot be stale relative to the ATS, because there is no copy step where staleness could enter.

Taken together, the intake, the templates, and the API integration turned a queue of requests into a system with an operating model. The requests that still reached a developer were the ones that genuinely needed one, which is the correct residue.

The careers integration is the part I can still check. Carrot has since rebuilt the marketing site as an entirely new Webflow project, and the open-roles page on it still fetches from the same Greenhouse board endpoint, still filtered by department, on the pattern I wrote in 2022. The page moved under the company section, and the redirect from the path I built still resolves to it. Of the twenty-six routes from that era, ten are still at their original URLs, thirteen more redirect cleanly, and three are gone.

I keep coming back to this framing because it is the one that separates a marketing site that compounds from one that decays. Product rigor on a marketing site is not process for its own sake: it is intake so you know what you are building, templates so you build it once, and integrations so the parts that should never be hand-maintained never are.

Archived screenshot of the Carrot eBooks & Guides collection page from August 2021: the sage-green hero with the intact Carrot brand mark, active collection filter, and three-column grid of publication report cards.
Carrot eBooks & Guides collection page, August 2021. Hub and collection share one component set, with the Carrot brand mark and typography fully intact.
Archived screenshot of the Carrot Resource Center: a sage-green hero with a filter row reading All, Blog, Webinars, eBooks & Guides, Case studies and Podcast, then one section per content collection, each with a heading, a View all button and a three-card grid.
The Resource Center, September 2021. Every section below the filter row is a separate Webflow CMS collection rendered through the same template.

Built with

  • Webflow Enterprise CMS
  • Greenhouse API
  • Asana
  • JavaScript
Contact

Hiring for a web platform role? Let's talk.

Open to senior web developer and platform lead roles, Bay Area hybrid or remote. I reply within one business day.

Also taking select contract work through Sprintz.

Reach out

Other ways to connect