Skip to content

Portfolio / 2026

Available for work

Frontend engineer building for the web.

I'm Adedeji Tewogbade. For over five years I've been architecting user-centric web applications, lately around payments, realtime systems and multi-tenant products, with a bias toward clean code and the details that only show up under load.

Detail
5+ years
Detail
Vue / Nuxt / React / Next
Detail
TypeScript
Detail
Open to work

Selected work

3 case studies

KudiRaise interface
01Crowdfunding · Payments

KudiRaise

A Nigerian crowdfunding platform that is naira-native and bank-transfer first, because most donors here never reach for a card.

  • Donations run through hosted checkout with webhook-driven fulfilment that stays idempotent under provider retries.
  • Photos upload straight from the browser to Cloudinary against a server-minted signature, so files never transit the app.
  • Every campaign renders its own OG image, so a shared link unfurls with a live progress bar.
  • Anyone can report a campaign without an account. Upholding a report pauses it and stops donations in one action.

Nuxt / TypeScript / Drizzle / Postgres / Cloudinary / Tailwind

Perch interface
02Realtime · Multi-tenant

Perch

A multi-tenant live-chat support platform in the vein of Intercom: an embeddable widget plus a realtime Control Room dashboard.

  • Built on self-hosted WebSockets behind a typed event contract.
  • Race-safe conversation claiming, so two agents never pick up the same chat.
  • Secure third-party embedding via sandboxed iframes and scoped HMAC tickets.

Nuxt / TypeScript / WebSockets / Drizzle / Postgres / Nuxt UI

Invito interface
03Events · RSVP

Invito

An invitation and RSVP platform where hosts share one link and guests reply without ever making an account.

  • Server-rendered invitation pages with per-event OG images, so links unfurl inside messages.
  • Capacity enforced against a re-read at write time rather than a stale render.
  • Guest list keyed by email hash, so guests can amend their own reply while the collection stays un-enumerable.

Next.js / TypeScript / Firebase / Shadcn / Cloudinary / Vitest

Archive

6 projects

  • Repo Wrapped

    AI · Developer tools

    A Spotify Wrapped style GitHub repo analyzer that generates AI summaries of a codebase: commit patterns, language breakdown, developer persona, and a shareable wrap card.

    Nuxt / TypeScript / Drizzle / OpenAI

  • ICallOn

    Realtime · Games

    A real-time multiplayer word game where players race the clock to name words starting with a given letter across several categories, competing for the highest score.

    Next.js / TypeScript / Supabase / Drizzle

  • Farm Monitor

    Frontend lead · GIS

    An AI-powered platform letting farmers map and monitor land, forecast weather, and receive tailored farm recommendations. Led the frontend.

    Nuxt / JavaScript / Pinia / Google Maps

  • FixMasterPOS

    SaaS · Point of sale

    A POS system that helps phone repair shops run stores, orders, products and staff tasks in one place, including bill payments.

    Nuxt / TypeScript / Nuxt UI / Tailwind

  • BillQ

    AI · Invoicing

    Creates invoices in seconds with AI, shares payment links, and collects payment through Stripe (test mode).

    Next.js / TypeScript / Prisma / MongoDB / NextAuth

  • Frinna

    Social · Messaging

    A free anonymous messaging site: register, share your link, collect messages, and keep chatting with friends.

    React / TypeScript / Zustand / Firebase

About

I care about the seams.

I'm a frontend engineer with over five years of experience architecting user-centric web applications, working mainly in the Vue/Nuxt and React/Next ecosystems.

The parts of a product I find most interesting are the ones users never see directly. What happens when a payment webhook fires twice, when two support agents open the same conversation, when a form is submitted against a page that has gone stale. Getting those right is what separates a demo from something people can rely on.

I'm currently open to new work. If you're building something where the details matter, I'd like to hear about it.

Toolkit

Languages
TypeScript / JavaScript
Frameworks
Vue / Nuxt / React / Next.js
State
Pinia / Vuex / Zustand
Styling
Tailwind / SCSS / UnoCSS / Nuxt UI
Backend
Node / Express / Postgres / Supabase / Firebase / MongoDB
Testing
Vitest

Contact

Let's build something.

Got a project, a role, or just want to say hello? My inbox is open and I answer everything.