Custom blog platform built for
a non-technical creator
Christina wanted to share her life, thoughts, and values online — but WordPress felt overwhelming and Substack was too limiting. We built her a fully custom platform from scratch and held her hand through every step, from first call to launch.
Client Review
Christina — The Family Architect
Christina is a homemaker and lifestyle creator who wanted to share her life, thoughts, and values online — but found WordPress overwhelming and Substack too limiting.
We built her a fully custom platform from scratch: a personal homepage, a section-based blog builder she could control entirely without touching code, and a live preview so she could see exactly what readers would see before publishing.
In this video, Christina shares what it was like working with us — from her first questions all the way to launch day.
The Challenge
Christina is a homemaker and lifestyle creator — not a developer. She needed a website that felt authentically hers, with a blog she could fully control and style without touching code. Beyond the build itself, she had a lot of questions throughout the process. Part of our job was making sure she felt informed and confident at every stage — not just delivering a product and disappearing.
Site Walkthrough
Homepage — Brand & First Impression
A full-screen hero with Christina's portrait (greyscale-to-colour on hover on desktop), her tagline 'Restoring purpose to the home.', and a single CTA. Every design decision — typography, spacing, colour — reflects her warm, intentional aesthetic. Not a template, not a theme.

Credo — Her Belief System
A dedicated dark-background section presents Christina's personal credo — her values around faith, motherhood, and intentional living. This is the page that connects readers to her on a human level before they ever read a blog post.

Full Feature Overview
Every feature built into the platform, at a glance.
Public Website
Homepage hero
Full-screen portrait with greyscale-to-colour hover effect, tagline, and CTA
Bio section
Christina's personal story — her journey, mission, and what drives her
Credo section
Dark-background belief statement — her values around faith, family, and intentional living
Sticky navbar
Dark navbar with logo and links (Home, Blogs), mobile hamburger with animated dropdown
Site footer
Logo, tagline, and copyright — clean and minimal
Blog System
Blog listing by category
Posts grouped into 9 categories (Motherhood, Homeschool, Cooking, Faith, Pets, etc.) each with its own icon, colour, and post count
Coming soon placeholder
Categories without posts show a 'coming soon' message — no empty states or broken pages
Individual blog posts
Server-side rendered post pages with section-based layout and social sharing hooks
Blog reactions
Love ♥ and Thumbs Up reactions per post with optimistic UI updates and localStorage-based per-reader tracking
Cloudinary image hosting
All blog images upload to Cloudinary and are served from a fast CDN — max 10MB per image
Admin CMS
Password-only admin login
Simple secure login — JWT issued on success, auto-redirects if already logged in
Blog management dashboard
Card grid of all posts with View, Delete, and Refresh actions
Section-based blog builder
Compose posts from three block types: Text (rich editor), Image (upload or URL), Video (YouTube embed)
Per-section design controls
Every section has independent background colour (Sketch colour picker), padding, height, font size (12–72px), text colour, and alignment
Drag-to-reorder sections
Move any section up or down — the post structure is fully flexible
Live preview pane
Switch between Builder and Preview in one click — see exactly what readers will see before publishing
JSX code export
The editor can output the full React JSX source code for every blog page — useful for custom deployments
Slug & category assignment
Each post gets a URL slug and is assigned to one of 9 predefined categories before publishing
Auth & Security
JWT via Web Crypto API
Stateless auth using the browser-native Web Crypto API — no external JWT library needed
Protected admin routes
All /admin/* pages and create/delete API routes require a valid JWT
Dual token acceptance
JWT accepted via Authorization: Bearer header or admin_token cookie — flexible client compatibility
Logout clears both
Logout API clears localStorage and the cookie in one call
Tech Stack

