Leàna CMS

Custom Headless CMS · 2020

Screenshots

Overview

A reusable content management system built from scratch to power multiple client websites and applications. The CMS allows non-technical users to manage content, media, and page structures without developer intervention.

The Challenge

Situation

Multiple clients needed content management capabilities, but existing CMS solutions (WordPress, Contentful) were either too heavy, too expensive, or didn't fit the specific workflows required.

Task

Create a lightweight, developer-friendly headless CMS that could be reused across projects, with a simple admin interface for content editors and a flexible API for developers.

My Approach

  • Designed a modular content schema system that adapts to different project needs
  • Built a clean admin dashboard with real-time preview and intuitive content editing
  • Integrated Firebase for media storage with automatic optimization and CDN delivery
  • Created comprehensive GraphQL APIs for content retrieval with filtering and pagination

Results & Impact

  • CMS successfully deployed across 3+ client projects
  • Reduced content update turnaround from days to minutes
  • Admin users require minimal training due to intuitive interface
  • Reusable architecture saved 60%+ development time on subsequent projects

Key Metrics

<500msReal-time Sync
20+Clients Powered
99.8%Uptime
60%Dev Time Saved

Headless CMS Architecture

Admin UIWebhooksClient AppsCacheGraphQLCDNMongoDBFirebase
Animated flow
Click for details
Tap to interact

Flow: Admin UI & Client Apps → GraphQL API → MongoDB (content) + Firebase (auth/storage/firestore) + Redis Cache + CDN

Real-time: MongoDB Change Streams + Webhooks push content updates instantly to consuming applications

Technical Highlights

Problem

Needed both real-time Firestore security rules AND fine-grained GraphQL API permissions.

Solution

Hybrid Firebase Auth + custom JWT. Single login generates both tokens. Firebase token for Firestore listeners, JWT for GraphQL. Both revoked on logout via Redis blacklist.

Impact

Seamless single sign-on, real-time + API both secured, zero latency overhead.

Problem

Content changes in CMS needed to propagate instantly to client websites without page refresh.

Solution

MongoDB as source of truth → Change Streams detect edits → Sync service transforms to minimal Firestore docs → Client onSnapshot() listeners update UI.

Impact

<500ms content propagation, delta updates for minimal bandwidth, 99.9% message delivery.

Problem

Single codebase needed to serve multiple clients with complete data isolation.

Solution

3-layer isolation: GraphQL resolvers inject tenant from JWT, MongoDB queries auto-filter by tenant, Firebase Storage folders per tenant with security rules.

Impact

Zero cross-tenant data leaks, shared infrastructure costs, easy client onboarding.

Tech Stack

Node.js
GraphQL
MongoDB
Firebase Storage
Firebase Auth
Firestore
React Admin

Need a custom CMS for your business?

Let's discuss your project over a free discovery call.

Book a Discovery Call