Open to work/Lagos, WAT 10:30
01 / Identity & Direction

Mustapha Lawal

Full-stack developer in Lagos, Nigeria

“I build real-time products that hold up in production.”

Full-stack developer in Lagos. Collaborative software, booking platforms, inventory systems.

Core Focus /

Real-time collaboration & CRDTs

Verification /

Playwright E2E on 390px iPhone & Desktop

Delivery /

Edge-first architectures ($0 overhead)

02 / Selected Work

Index of Production Builds

Tap a project to preview.

Real-time collaborative canvas with peer-to-peer sync, offline persistence, and AI-driven board organization.

React 18TypeScriptViteExpressWebSocket+7 more
Tessel
What I Built

Engineered full stack: custom WebSocket sync server powered by Yjs CRDTs, React canvas engine, offline-first IndexedDB persistence, structured Gemini AI canvas organizer, and automated Playwright E2E suites.

The Hardest Part

Guaranteeing conflict-free distributed document convergence during sudden network drops while keeping gesture rendering smooth on mobile viewports.

Stock tracking, customer management, pay-later credit sales tracking, and POS-style checkout built for real shop owners.

MongoDBExpressReactNode.jsTypeScript+1 more

A curated directory of luxury stays and experiences across Lagos, paired with an administrative operating suite.

Next.js 16Prisma 7Supabase PostgresServer ActionsCloudinary+2 more

Operations app for shortlet hosts across Nigeria: bookings, caution fees, guests, and a per-host mini website with apartment photos.

Next.jsTypeScriptSupabasePostgreSQLTailwind CSS

A high-performance, offline-first Android application engineered for Nigerian Ajo, Esusu, and Adashe rotating savings organizers. Functions strictly as a secure digital ledger (never touches money) to automate contribution rounds, payout schedules, WhatsApp receipts, and member reliability scoring.

React NativeExpo (SDK 58)TypeScriptExpo SQLiteShopify React Native Skia+3 more
03 / Flagship Case Study

Tessel.

A live multiplayer whiteboard.

Real-time sync
Offline-first
Installable PWA
AI-assisted
Stack:React 18TypeScriptViteExpressWebSocketYjsMongoDBGemini APIResendCloudinaryPlaywrightGitHub Actions
https://musty325199.github.io/tessel
Tessel collaborative workspace landing interface

Fig 1.0 — Tessel interface & active session canvas view

CHAPTER 01/Problem

Real-time collaboration without dropped state.

Teams need to think together on one canvas without lag and without losing work when the connection drops. Distributed participants require immediate visual feedback while concurrent operations reconcile seamlessly in the background.

  • ›Network drops in high-latency geographies discard state on naive HTTP pipelines.
  • ›Visual canvas manipulation requires zero rendering stutter on low-power devices.
Tessel landing page showing canvas tools and collaborative workspace

Tessel canvas interface and initial landing state

CHAPTER 02/Real-time sync

Conflict-free replication with Yjs CRDTs.

Yjs CRDTs run over a custom WebSocket sync server, ensuring edits from many people merge deterministically without central lock contention. Awareness states broadcast live cursors, selection bounding boxes, and peer presence across active peers.

  • ›WebSocket sync engine broadcasting delta updates via binary Yjs encoding.
  • ›Awareness protocol for multi-user presence, remote cursor tracking, and collaborative selection.
Live collaborative whiteboard with multiple active cursors and shapes

Multi-user live canvas with concurrent editing and real-time cursor awareness

CHAPTER 03/Offline-first

Local persistence that catches up on reconnect.

y-indexeddb caches full board state directly in the browser's IndexedDB, keeping boards fully usable without an internet connection. When connectivity returns, local deltas automatically sync and merge with remote updates.

  • ›Local-first document lifecycle via y-indexeddb provider.
  • ›Automatic bidirectional synchronization on browser online events.
  • ›Fully responsive canvas touch controls tailored for mobile screens.
Tessel running on iPhone mobile browser viewport

Mobile viewport execution: responsive canvas interaction and offline continuity

CHAPTER 04/AI-assisted

Board organization powered by structured Gemini output.

The 'Organise' tool cleans and structures messy whiteboard clusters using Google Gemini with structured JSON schema outputs. It executes a fast model first with graceful fallback tiers, exponential timeouts, and strict rate-limit protection.

  • ›Algorithmic spatial cluster parsing fed to Gemini structured response schema.
  • ›Fallback escalation on 429/timeout errors to ensure continuous user flow.

Live interactive demo: board manipulation, object grouping, and sync speed

CHAPTER 05/Security & Auth

Hardened tokens, signed assets, and zero trust.

JWT access tokens paired with rotating refresh tokens secure user sessions. Password recovery uses hashed, single-use, time-limited reset links. Cloudinary file uploads are signed server-side, and API routes enforce strict rate limiting.

  • ›Stateless JWT access tokens with rotating refresh tokens stored in HTTP-only cookies.
  • ›Single-use scrypt-hashed password recovery tokens with automatic expiry.
  • ›Server-signed upload signatures preventing untrusted Cloudinary asset injections.
Collaborative comments and contextual board interaction

Threaded contextual comments and fine-grained board permissions

CHAPTER 06/Shipping & CI

Monorepo architecture with mobile-tested CI pipelines.

TypeScript monorepo housing web client, WebSocket server, and shared schemas. GitHub Actions CI runs unit tests, type checks, build pipelines, and Playwright end-to-end tests across desktop and iPhone 390px viewports before automated deployment.

  • ›Automated dual-viewport Playwright matrix (Desktop Chrome + iPhone 390px Safari).
  • ›Auto-deployment: Web client to GitHub Pages, sync API to Render, storage to MongoDB Atlas.
  • ›Installable Progressive Web App (PWA) with service worker caching.
Tessel dark-themed workspace dashboard displaying user boards

Production dark dashboard: board management, permissions, and PWA integration

Topology / Architecture

Real-time Distributed Sync Lifecycle

Zero Lock Contention · Eventual Consistency
CLIENT NODESBrowser / Mobile PWAReact 18 · Vite · Canvasy-indexeddb local cacheYJS CRDT ENGINEBinary DocumentState Vector DeltasAwareness & CursorsSYNC SERVERWebSocket DaemonNode.js · ExpressRender Edge ClusterSTORAGEMongoDB AtlasBinary Document StoreDebounced Snapshots
01 / Local-First Delta

Changes apply instantly to user canvas before socket dispatch.

02 / CRDT Convergence

Yjs binary encoding merges concurrent edits deterministically.

03 / Storage Persistence

Server batches binary updates into MongoDB Atlas document snapshots.

Outcome & Live Environment

Production Canvas in Real Time

Tessel is live on GitHub Pages with automated CI deployments. Open multiple browser tabs or load it on an iPhone to test conflict-free CRDT synchronization, offline persistence, and live multiplayer awareness.

https://musty325199.github.io/tessel
Tessel live multiplayer canvas session showing real-time concurrent drawing

Live multi-user board session with concurrent peers

04 / Commercial, Web & Mobile Applications

Production Systems in the Wild

Real products built for real merchants, community savings organizers, travelers, and property managers. No templates, no dummy mockups.

02 / SAASLive in Production

StockFlow

Inventory and sales management for small businesses.

Visit StockFlow

StockFlow empowers retail shop owners to control inventory, register point-of-sale transactions, and manage customers. Built end-to-end to withstand everyday commerce demands in emerging markets.

Hardest Engineering Challenge

Designing the pay-later credit sales reconciliation model so merchants can accurately track installment payments, balance settlements, and customer purchase histories without accounting drift.

Key Capabilities
  • Real-time stock depletion & low-stock alerts
  • Pay-later credit sales ledger with installment tracking
  • POS-style rapid counter checkout
MongoDBExpressReactNode.jsTypeScriptTailwind CSS
https://stockflowhq.com
StockFlow landing page showcasing the inventory and sales management platform for African retailers
StockFlow live operational dashboard showing daily sales, cash collected, and low-stock threshold alerts
StockFlow transparent pricing plans: 14-day free trial and StockFlow Pro tier
03 / DIRECTORY & ADMINNext.js 16 + Prisma 7

NOOK

A curated guide to stays and experiences in Lagos, with the admin to run it.

Visit NOOK Lagos

Built from the ground up on Next.js 16 App Router and Prisma 7 on Supabase Postgres. Couples a high-aesthetic public directory with a bulletproof administrative back-office.

Engineering Depth Highlights
Idempotent EnquiriesGuarantees zero duplicate booking submissions on rapid double-taps with cryptographic idempotency keys.
Scrypt + HMAC SessionsAdmin authentication protected by scrypt password hashing and HMAC-signed session envelopes.
Per-page SEO & JSON-LDFull schema.org microdata for luxury stays, combined with continuous uptime monitoring endpoints.
Next.js 16Prisma 7Supabase PostgresServer ActionsCloudinaryResendTailwind CSS
https://nook-lagos.vercel.app
NOOK Lagos home page: curated directory of luxury stays and experiences
NOOK stay detail page: architectural photo gallery and reservation enquiry
04 / PROPERTY TECHLive in Production

Hostvale

Operations app for shortlet hosts across Nigeria: bookings, caution fees, guests, and a per-host mini website.

Visit Hostvale

Nigerian shortlet operators face recurring friction with untracked caution fees, guest identity fraud, and disjointed booking channels. Hostvale replaces chaotic spreadsheets with a purpose-built operational cockpit.

Caution Fee Escrow Machine

Engineered with state machines that track caution deposits, inspection clearances, deduction audits, and scheduled customer refunds.

System Architecture
  • Next.js App Router + Supabase Postgres with RLS policies
  • Per-host multi-tenant mini storefronts with direct booking
  • Guest KYC verification and automated WhatsApp dispatch
Next.jsTypeScriptSupabasePostgreSQLTailwind CSS
https://hostvalehq.github.io
Hostvale operations and caution fee tracking overview
Hostvale bookings management and reservation roster portal
05 / MOBILE APP (ANDROID)Live in Production • APK Available

Yípo

Offline Ajo & Esusu Mobile Record Keeper

Sole Mobile Engineer & UI/UX Designer

A high-performance, offline-first Android application engineered for Nigerian Ajo, Esusu, and Adashe rotating savings organizers. Functions strictly as a secure digital ledger (never touches money) to automate contribution rounds, payout schedules, WhatsApp receipts, and member reliability scoring.

100% Offline-First Architecture

Built with local Expo SQLite database using transactional ACID writes, versioned migration schemas, and JSON backup/restore. Operates with zero network dependency.

Key Engineering Highlights
  • Interactive Skia Visuals: Custom Skia-powered rotating turn ring with dynamic collector spotlight and haptic feedback.
  • Native Hardware Integrations: Biometric App Lock (Fingerprint/Face ID), Android Share Intent receiver, and contact picker.
  • Direct WhatsApp Automation: One-tap formatted payment receipt and customizable reminder generation deep-linked to WhatsApp.
  • Offline Document Engine: Custom A4 PDF statement generation with embedded base64 typography for zero-network printing.
  • Multi-Architecture Build: Universal production APK compiled for both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) ARM architectures.
React NativeExpo (SDK 58)TypeScriptExpo SQLiteShopify React Native SkiaReanimated 4EAS BuildAndroid NDK
Yípo Android interactive Ajo turn ring showing collector spotlight and member contributions
Main Pot Ring (Skia Visuals)
Yípo payment recording bottom sheet with instant undo toast
One-Tap Payment Drawer
Yípo application overview banner
05 / Engineering Stack

Practical Tooling, Verified in Production

“MERN at the core, plus Next.js and Postgres when the product needs them.”

Hover or tap any technology below to see which live project it powers.

01 / GROUP

Core (daily)

My daily production foundation. Built around the MERN paradigm with strict TypeScript.

MongoDBTessel
Used in: Tessel, StockFlow

Document store, flexible schemas, Atlas clusters

ExpressTessel
Used in: Tessel, StockFlow

REST APIs, WebSocket attachment, middleware

ReactTessel
Used in: Tessel, StockFlow

Component architectures, custom hooks, canvas rendering

Node.jsTessel
Used in: Tessel, StockFlow

Event-driven runtime, sync servers, background tasks

TypeScriptTessel
Used in: Tessel, NOOK, Hostvale, StockFlow

Strict typing across client, server, and shared packages

02 / GROUP

Also ships with

Mobile app engineering, relational modeling, modern SSR architectures, and rapid UI.

React Native & ExpoYípo
Used in: Yípo

Offline-first mobile engineering, native Android hardware integrations

Expo SQLiteYípo
Used in: Yípo

Local transactional database with ACID writes and versioned migrations

Shopify SkiaYípo
Used in: Yípo

Hardware-accelerated 2D canvas, custom rotational ring geometry at 60fps

Next.jsNOOK
Used in: NOOK, Hostvale, Portfolio

App Router, Server Actions, per-page SEO, Route Handlers

PostgreSQL / SupabaseNOOK
Used in: NOOK, Hostvale

Relational tables, Row-Level Security, database migrations

PrismaNOOK
Used in: NOOK

Type-safe database ORM and automated schema migrations

Tailwind CSSAll projects
Used in: All projects

Utility-first design tokens, zero runtime style cost

ViteTessel
Used in: Tessel

Fast client bundling, PWA plugin support, HMR

03 / GROUP

Real-time & delivery

Collaborative CRDT sync, end-to-end verification, and modern deployment pipelines.

WebSocketsTessel
Used in: Tessel

Bidirectional state streaming and awareness protocols

Yjs (CRDT)Tessel
Used in: Tessel

Conflict-free replicated data types for multiplayer canvas

PlaywrightTessel
Used in: Tessel, Testing

Automated E2E testing on desktop and 390px iPhone viewports

GitHub ActionsTessel
Used in: Tessel, All projects

CI test matrices, type-checks, and auto-deploy jobs

DockerProduction tooling
Used in: Production tooling

Reproducible container environments

VercelNOOK
Used in: NOOK, Hostvale, Portfolio

Global edge deployment and serverless execution

RenderTessel
Used in: Tessel

Long-running WebSocket sync service hosting

06 / Engineering Depth

How I Build & Ship

Concrete engineering principles proven through actual implementation. No hypothetical theories or buzzwords.

01Tessel

Real-time & sync

CRDT-driven collaborative states via Yjs and custom WebSockets that guarantee eventual consistency without central lock contention.

Strict production standards
02Tessel & NOOK

Auth & security

Scrypt and JWT auth architectures with rotating refresh tokens, HMAC-signed session envelopes, and zero-trust honeypot spam defenses.

Strict production standards
03Tessel

Testing & CI

Automated Playwright end-to-end suites validated on both 390px iPhone and desktop viewports, with strict type-checking gates before deploy.

Strict production standards
04NOOK & Tessel

Performance & $0 infra

Monorepos and static-first architectures paired with edge delivery (Vercel, Render, Supabase, Cloudinary) running on $0 recurring overhead.

Strict production standards
07 / Background & Focus

About Mustapha Lawal

I am a Lagos-based full-stack developer who builds products that hold up in production. I engineer software with a phone-first mindset because the majority of real users interact with the web through mobile viewports first.

My core lies in the MERN stack—MongoDB, Express, React, and Node.js—reinforced with Next.js and PostgreSQL when structured relational guarantees are needed.

I ship products end-to-end: from initial database schema and API design to automated CI testing pipelines and production edge deployment.

Lagos, Nigeria
iPhone-First Mindset
Full Lifecycle Ownership
CURRENT STATUS
// Building

Real-time collaborative canvas tooling & shortlet booking engines

// Learning

Advanced local-first CRDT topology & distributed sync protocols

// Open to

Remote full-stack roles, contract engineering & freelance builds

Availability: ImmediateRemote / Contract