← funsho cornelius
case study 02 — systems & architecture

Blessing Computers

An internal admin dashboard and e-commerce storefront on Next.js 16 — and my most senior work to date: architecture guardrails that outlast any one developer, a failure-mode-first auth layer, and fixes for the platform edges nobody sees until they break.

role
Web & Systems Engineer — architecture, auth, infra
stack
Next.js 16 · custom server · DB-backed API routes · Vercel
rigor
CI-enforced boundaries · 10 ADRs · stacked PRs
theme
Failure-mode-first, from env to edge
admin.blessingcomputers.ng/dashboard
Blessing Computers admin dashboard landing view

A dashboard that had to be reliable — and stay that way as it grew.

The admin dashboard runs the business, so its failure modes matter more than its happy path. It needed auth that never logs people out mid-task, a data layer that fails predictably, and structure that stops a growing codebase from turning into a tangle of cross-imports. The interesting problems here were reliability and maintainability at a level that survives more than one developer.

Guardrails first, then build inside them.

Five pillars, each aimed at a way the system could quietly rot or fall over.

// architecture rigor
Boundaries the CI enforces

Module boundaries checked in CI with eslint-plugin-boundaries, barrel-only imports, ten documented ADRs, and a feature-scaffolding generator so every new feature starts on the rails.

// typed data layer
One place to unwrap, one place to fail

A typed data layer with single-point API-envelope unwrapping and error normalization — every response is validated and every failure shaped the same way before it reaches a component.

// failure-mode-first auth
Sessions that don't race or retry into chaos

Server-seeded sessions, no-retry token rotation, and a Web Locks cross-tab single-flight refresh — so any number of tabs coordinate one refresh instead of racing and logging each other out.

// security hardening
Fail fast, recover cleanly

Fail-fast env isolation with strict client/server separation, IP-block recovery plus a Vercel WAF + bot-protection spec, and a production cookie-forwarding fix that restored authenticated requests behind the edge.

// platform edges
Working around the serverless sharp edges

A serverless upload proxy to sidestep Vercel edge timeouts on large files, and an AI smart-paste parser built behind a testable LLM seam so the model can be swapped or mocked.

// storefront
A custom server behind the shop

The e-commerce storefront runs on a custom Next.js server with database-backed API routes, typed product and blog models, and a contact-agent feature.

A codebase that fails predictably and grows cleanly.

Cross-tab logout races are gone, responses and errors flow through one typed path, and CI blocks the imports that would erode the architecture. It shipped with documented ADRs, migration guides, and consistently green tsc / eslint / build pipelines — the kind of foundation a second and third engineer can build on without a handover doc.

blessingcomputers.ng — storefront
Blessing Computers storefront homepage
10
ADRs + CI-enforced module boundaries
0
cross-tab logout races after rollout
1 path
for unwrapping & error normalization
Next.js 16React 19Custom serverWeb Lockseslint-plugin-boundariesVercel WAFTypeScriptTailwind v4
next case study →
Rhema BTC
03 — realtime classroom Q&A ↗