i5dr0id

Work / Spendive, 2025

Three products onto one modern Nuxt stack

The customer app, vendor portal and admin dashboard of a spend-management SaaS modernised onto TypeScript, Vue 3 and Nuxt 4.

@@ customer app, vendor portal, admin dashboard, marketing site @@
three separately ageing Vue applications
TypeScript, Vue 3 and Nuxt 4, shared conventions across all three
marketing site invisible to search
sitemap, robots and schema.org structured data

Context

Spendive is a spend and procurement platform built for businesses in Nigeria: expenses, procurement and approvals, budgets, vendor onboarding, corporate cards and accounting integrations. It has three applications with three audiences, plus a public marketing site on Contentful.

What I built

I led the modernisation of all three applications and kept releases stable while it landed.

  • The customer application: onboarding, expenses, procurement, invoicing, wallet, requests, approvals, vendors, marketplace, insights and settings, with approval workflows drawn as diagrams using Vue Flow and Dagre.
  • The vendor portal, the supplier side of the procurement flow: catalogues, RFQs, orders, invoices, messages and wallet.
  • The admin dashboard on shadcn-nuxt and Reka UI with TanStack Vue Table and VeeValidate with Zod.
  • Realtime updates over Laravel Echo, rich text with TipTap, inline Paystack payments, and Playwright and Vitest coverage.
  • SEO on the public site with the Nuxt SEO suite, and backend features and fixes in Go where the frontends needed them.

Outcome

Deployments set up for four applications with releases kept stable throughout the engagement, and improved search visibility for the public site.