Ukandu

Multilingual nonprofit website and editorial admin for a children's cancer charity, with an AI-assisted blog workflow across seven languages.

Next.js 16AI Assistant7 LanguagesSalesforce
Ukandu

Project Overview

Ukandu is a children's cancer charity in Portland, Oregon that provides year-round, wraparound support for families, free of charge. Pilot Hub rebuilt ukandu.org as a Next.js 16 platform, now complete and awaiting cutover: a static-first public site in seven languages, a program calendar fed live from Salesforce, and a custom admin where editors write, translate, and publish blog posts with help from an AI assistant. The live-site link below still shows the previous site until cutover.

Key Results

7
Languages
Including right-to-left Arabic
600+
Prerendered Pages
Static HTML per locale and route
73
Redirects Migrated
Editor-managed in the admin
250+
Unit Tests
Pure modules under Vitest

The Challenge

The previous site ran on Payload CMS with a styled-components theme that shipped a runtime style engine to the browser and made every content block a client component. Content lived as localized JSON validated at runtime, seven languages had to stay in sync, program data lived in Salesforce, and the team needed analytics, media, redirects, and form handling in one place without adopting a general-purpose CMS.

Our Solution

We moved to pages as code: every page is TypeScript with per-language copy checked by the compiler, so the site's pages need no CMS and no database at runtime; only the blog is database-backed. next-intl keeps the production URLs byte-identical across locales. The program calendar renders per request inside a Suspense boundary from cached Salesforce reads. A role-based admin on better-auth gives editors a Lexical rich-text editor with seven language tabs, machine translation through Vercel AI Gateway, a Google Analytics 4 dashboard, a Vercel Blob media library, a submissions inbox that forwards to Pardot, and an editor-managed redirects table. An assistant built on Vercel's eve framework reads analytics and drafts posts, but never publishes.

The Results

The rebuild prerenders more than 600 pages across seven locales, including right-to-left Arabic, with 73 production redirects migrated into an editor-managed table and more than 250 unit tests over the pure modules. Deployment gates check the build output and the agent's health route, and the platform is prepared for cutover from the previous site.

Key Features

Static-first public site in seven languages, including right-to-left Arabic
Pages as code: typed per-locale copy checked by the compiler, no CMS at runtime
Program calendar fed live from Salesforce with 60-second caching
Editorial admin with a Lexical rich-text editor and per-language translation tabs
AI translation of posts into six languages via Vercel AI Gateway
Editor assistant on Vercel's eve framework that reads analytics and drafts posts, but never publishes
Google Analytics 4 dashboard: overview, audience, content, and realtime
Media library on Vercel Blob, submissions inbox with Pardot forwarding, and editor-managed redirects
Role-based access for administrators and editors with better-auth

Technologies Used

Frontend

Next.js 16React 19TypeScriptTailwind CSS v4shadcn/uinext-intl

Admin

better-authLexicalDrizzle ORMNeon PostgresVercel BlobRecharts

Ai

eve agent frameworkVercel AI GatewayAI SDK v7Streamdown

Integrations

SalesforcePardotGoogle Analytics 4ResendSentry

Platform

VercelVitestNode.js 24