CASE STUDY / PLATFORM ENGINEERING + GROWTH

A client content platform with the organic engine built on top

A Brazilian digital-accounting company, online since 2018, needed a platform its editors could publish on and a reason for search engines to find it. I built the platform and ran the SEO, content strategy, and content production on top of it, solo.

See the event product case
  1. Foundation
  2. Components
  3. Variants
  4. Pages
CONTENT PLATFORMCONCEPTUAL DIAGRAM
CASE ANATOMY
Role
Solo product engineer, SEO and content lead (client engagement)
Timeframe
2025 to January 2026

Context and scope

A Brazilian digital-accounting company, online since 2018, had almost no non-branded organic traffic. The site could not sustain the content formats a competitive category needs, and the editor could not publish a rich page without engineering work.

The engagement covered both halves of the problem in one place. I built the platform on PayloadCMS and Next.js 15 with a hand-built page builder, then ran the SEO consulting, the content strategy, and the content production on top of it. Solo, as a solopreneur, with an intern or freelancer helping on content.

This is the record that shows the combination directly: the platform is the reason the content could be produced at volume, and the content is the reason the platform moved the numbers.

The problem

  • Non-branded organic traffic sat in the tens of visits a month, and almost all existing traffic was branded.
  • Editors could not compose the page formats the category needed without a developer each time.
  • The content model and the SEO structure were not the same thing, so every page type was a new decision.
  • A keyword set above forty thousand terms was clutter rather than a plan.
  • Content production was a bottleneck in its own right, on top of publishing.
  • Multi-language needs (pt, en, es) were coming, and the site was not built for them.
System map
SurfaceComposed modules
Hotels
  • Search
  • Result
  • Hotel detail
  • Booking
Packages
  • Build
  • Price
  • Package detail
  • Checkout
Transfers
  • Route
  • Options
  • Schedule
  • Confirmation
Tours and tickets
  • Catalog
  • Availability
  • Purchase
  • Confirmation
CONCEPTUAL VIEW / PUBLIC SCOPE

Constraints

  • A solo engagement, so the platform, the SEO, and the content all had to share one schedule and one owner.
  • A full go-live date in January 2026, with real content already in the plan.
  • The client stack lived on AWS, so the platform had to fit it rather than replace it.
  • Performance at launch mattered, because the category is competitive on page experience.
  • Client details stay private, so the record is written from the engagement scope and the measured outcomes.

What I built

  • A content platform on PayloadCMS 3, Next.js 15, and React 19, with 18 collections and around 25 modular blocks in a hand-built page builder.
  • A large variant-rich component library, so one block could render many layouts without new code.
  • A block-resilience layer so a broken or empty block degrades cleanly instead of taking the page down.
  • Role-based access, live preview, and localization across pt, en, and es.
  • Cloud and media work on AWS S3 and CloudFront, with Mux for video, and a later move to Amplify.
  • SEO treated as an engineering problem: information architecture, structured data, internal linking, and programmatic page structure.
  • A keyword program that reduced more than forty thousand terms to 40 core and 400 complementary targets.
  • A content engine producing around 30 dense articles a month, in the 2,000 to 5,000 word range.

Decisions and trade-offs

01

Build the platform before scaling the content

What it cost: A slower first month, repaid every month after, because publishing stopped waiting on engineering.

02

Choose a page builder over per-page templates

What it cost: More work on the block contracts up front, which made each new page type cheap to ship.

03

Prioritize 40 core and 400 complementary terms over the full keyword set

What it cost: Deliberately leaving a long tail unaddressed, and concentrating the content on terms that could move.

04

Measure non-branded organic rather than total organic

What it cost: A harder, less flattering number, and the one that shows whether the work caused anything.

Outcome

Non-branded organic moved from 50 to 200 visits a month, to 10,000 a month at six months, to more than 20,000 a month at nine months. The platform shipped at a PageSpeed score between 82 and 92, and that performance is part of why the content ranked. Later marketing scripts added after launch moved the score down; loading them properly is the fastest available win on the site.

50 to 200 non-branded organic visits per month before the engagement
10k/month non-branded organic at six months
20k+/month non-branded organic at nine months
82 to 92 PageSpeed at launch, before later third-party scripts

Stack

  • PayloadCMS 3, Next.js 15, React 19, and TypeScript.
  • MongoDB on AWS, with S3, CloudFront, and Amplify for delivery, and Mux for video.
  • GA4 and Google Tag Manager for measurement, plus third-party keyword tooling.

What I would do next

  • Load the later third-party scripts so PageSpeed returns to the launch range.
  • Extend the page builder to cover more content patterns without custom blocks.
  • Package the platform and content playbook as a reusable client engagement.
Back to all projects