Live & ActiveDigital Legacy Platform · End-of-Life Planning

Endevo

From a 7,000-line hardcoded data file and zero per-page SEO — to a fully managed headless CMS, individual article indexing, and a content team that ships without touching code.

Client

Endevo — Digital Legacy Platform

Delivered by

Blue Sprout Agency

Engagement

Technical Audit + CMS Migration

Live Siteendevo.life

Want the full technical deep-dive?

The complete story — audit process, architecture decisions, migration approach, and the SEO results — is published in our blog.

Read the Full Article

How It Happened

Step 01

Technical Consultation — The Audit

Endevo came to us with a working site but a growing maintenance burden. Before opening a single file, we reviewed the architecture from the outside: how content was stored, how the frontend consumed it, and what Google actually saw at each URL. Two structural problems emerged immediately.

Step 02

The Two Problems We Found

First: a TypeScript data file exceeding 7,000 lines containing all 58 blog posts hardcoded as a static array — unmaintainable and entirely locked to the development team for every content update. Second: the entire blog was being indexed as a single URL, with no per-page title tags, meta descriptions, or structured data. 58 articles, zero individual search impressions.

Step 03

Architecture Decision — Sanity CMS

We evaluated the options: a PHP-backed CMS (wrong fit for the Vite/React stack), a custom API layer (unnecessary complexity), or a headless CMS. We chose Sanity.io — its schema lives in the codebase, versioned in git, with a web-based Studio that VAs and editors can use without touching a line of code.

Step 04

Migration, SEO Infrastructure & Launch

We built a deduplication layer so Sanity posts and the existing static posts coexisted during migration — no URL went dark, no redirects broke. The 58 posts migrated programmatically. Per-page metadata was added via react-helmet-async. JSON-LD BlogPosting schema was implemented. Sitemap updated and submitted. Google began indexing individual article titles within days.

The Architecture Before We Started

Content storage

Before

7,000+ line TypeScript array with all 58 posts hardcoded

After

Sanity CMS — each post a structured document in a cloud dataset

Publishing workflow

Before

Developer writes code → PR → deployment → post live

After

Editor logs into Sanity Studio → writes → hits Publish → done

SEO per post

Before

Homepage title tag repeating on every blog URL

After

Unique title, description, and OG tags per post via react-helmet-async

Google indexing

Before

58 articles treated as one page — zero individual impressions

After

Each article indexed individually — rich result eligible

What We Built

Sanity CMS Integration

Headless CMS with web-based Studio — editors and VAs publish posts, manage images, and update content without a developer.

Programmatic Migration Script

All 58 hardcoded blog posts migrated to Sanity in a single automated pass — no copy-pasting, no manual data entry.

Zero-Downtime Deduplication Layer

Sanity posts served with priority; static fallback kept all existing content live throughout migration. No 404s, no broken URLs.

Per-Page SEO with react-helmet-async

Individual title tags, unique meta descriptions, and Open Graph tags injected on every blog post URL — each one now indexable as a standalone search result.

JSON-LD BlogPosting Structured Data

Schema.org BlogPosting markup added to the blog, triggering rich result eligibility in Google Search Console within days of launch.

Sanity Image CDN

Image optimization and delivery handled by Sanity's CDN — automatic WebP conversion, size-aware delivery, Core Web Vitals green post-deployment.

Sitemap Rebuild & Search Console Submission

Sitemap regenerated to reflect each post as its own URL, with weekly changefreq. Submitted to Google Search Console same day as launch.

Editorial Independence

The content team — VAs and web editors — can now create, draft, preview, and publish posts through a GUI. Zero developer dependency for content.

Tech Stack

FrontendReact + Vite
LanguageTypeScript
StylingTailwind CSS
CMSSanity.io (headless)
SEOreact-helmet-async
Structured DataSchema.org BlogPosting (JSON-LD)
Image DeliverySanity CDN
HostingVercel
Version ControlGitHub

Results

58

Posts migrated programmatically with zero downtime

0

Developer dependency for new content after launch

Days

To individual article indexing in Google Search Console

7k→0

Line hardcoded data file being eliminated

  • Google Search Console began indexing individual article titles — previously every URL showed the homepage title
  • Rich result eligibility confirmed in Google's Rich Results Test tool for blog and content pages
  • Editorial team can publish, edit, and manage all content independently through Sanity Studio — no developer required
  • Sanity image CDN handles delivery and optimization automatically — Core Web Vitals remained green
  • The 7,000-line static data file is being phased out as all content moves to Sanity

The Endevo Website

endevo.life — Live Site
Endevo digital legacy platform website screenshot

Is your site quietly underperforming?

We start every engagement with a technical diagnostic — not a pitch. If the architecture no longer fits what your business needs, we'll identify exactly where the gap is.

Read the Full Story

We Value Your Privacy

We use cookies to enhance your browsing experience, serve personalized content, and analyze our traffic. By clicking "Accept All", you consent to our use of cookies.