jp·Málaga

Projects

Four apps I built and still look after, and some of my client work at MemberDev.

4 live
QBank Create test screen with ready-made sets, a question count, your own mix by topic, and a summary of the test

01Production

QBank

The question bank I built for Obesity Medicine Review.

Doctors use it to study for the obesity medicine board exam. It replaced SpeedExam on 1 October 2026, and in the first two weeks members answered 163,000 questions over more than 6,000 hours of tests.

  • WordPress
  • PHP
  • MySQL
  • JavaScript
  • esbuild
  • Playwright
GiseUGC home page in Spanish: Gisela's portrait, her name, and a vertical video reel

02Production

GiseUGC

A video-first website for a UGC creator.

Gisela Saldarriaga's website. Her videos stream from Cloudflare R2, and the site is in Spanish with an English version at /en/.

  • React
  • TypeScript
  • Vite
  • GSAP
  • Lenis
  • three.js
Budget & Expense app icon

03Production

Budget & Expense

My personal finance app, in English and Spanish.

Envelope budgets, investments, net worth and several currencies in one place, with CSV and bank statement imports.

  • Next.js 16
  • React 19
  • Tailwind v4
  • Base UI
  • Supabase
  • Recharts
JPTracker week view: a calendar of client tasks, a running timer, and weekly totals

04Production

JPTracker

Time tracking and invoicing for my freelance work.

A weekly calendar for logging hours, invoices that go from draft to final, and exports to PDF, CSV and PNG. Sign-in supports Google, Apple and passkeys, and the data sits behind Supabase row-level security.

  • React 19
  • TypeScript
  • Vite
  • Supabase
  • jsPDF
  • Recharts

Client work

Jobs I've done for MemberDev clients.

  • MemberDev

    AI chat on membership sites

    Chat assistants built into WordPress membership sites that answer from the site's own content.

  • MemberDev

    Media offload

    Moving heavy media off WordPress servers and onto S3 or Cloudflare R2.

  • MemberDev

    Migrations

    Moving sites, DNS and databases to new hosts without taking them offline.