Skip to content

Work

A mix of open-source work and products I've worked on for clients and employers. The public repositories are linked where I can share them.

OpenActive dashboard — live site

Main contributor · Open Data Institute

A clearer way to explore the UK’s open data about places and activities.

363 of 376 commits · 65 merged PRs · 243 tests

  • Next.js
  • React
  • TypeScript
  • Tailwind
  • +3
Case study →GitHub ↗Live ↗
Solid File Manager — live site

Main contributor · Open Data Institute · Solid

A familiar file manager for data stored in a Solid Pod.

279 of 324 commits · 51 merged PRs

  • Next.js
  • React
  • TypeScript
  • Tailwind
  • +6
Case study →GitHub ↗Live ↗
Code Funhouse — live site

Code Funhouse

2024–25

Frontend engineer · Code Funhouse

A coding platform for students, teachers and parents, with lessons, a browser editor, AI-assisted tutoring and a separate hackathon product.

  • Next.js
  • React
  • TypeScript
  • Tailwind
  • +7
Case study →Code is privateLive ↗
Excluvia — live site

Eclait

A platform where creators can run memberships, livestream, chat with fans and sell products.

  • React
  • Vite
  • TypeScript
  • TanStack Query
  • +4
Case study →Code is privateLive ↗
Platnova — live site

Platnova

2024–25

Platnova

Business and consumer web apps with multi-currency wallet and transfer flows, cards and savings.

  • React
  • Vite
  • TypeScript
  • MUI
  • +4
Case study →Code is privateLive ↗
Turbomedics — live site

Turbomedics

2024–25

Frontend developer · Turbham Technologies

Vue frontends for Turbomedics: a patient app and a separate health-centre and lab operations app.

  • Vue 3
  • Vuex
  • Vite
  • Tailwind
  • +5
Case study →Code is privateLive ↗

Other work

  • Volunteer Profile Manager · Sole author, Open Data Institute

    A volunteer profile manager for skills, availability, locations, equipment and credentials, stored in the user’s Solid Pod.

    84 commits

    Next.js · TypeScript · LDO · TanStack Query · Leaflet · N3 · Inrupt client · @solid/object · @volunteeringdata/object

  • @solid/react-component · Sole author, Solid

    Shared React components for Solid sign-in, including a login page, provider picker, auth guard and Next.js adapter.

    20 of 20 commits

    React · TypeScript · Jest · Next.js

  • LibreChat × Solid · Contributor, Solid

    Work on adding Solid-OIDC sign-in to LibreChat, including WebID profile lookup, Pod discovery and session handling.

    140 commits · 9 merged PRs

    Express · React · Node.js · Solid-OIDC

  • solidproject.org · Contributor, Solid · W3C

    Accessibility improvements and content updates on the Solid project’s public website.

    49 commits · 11 merged PRs

    HTML · CSS · Accessibility

  • CC Search · Outreachy intern, Creative Commons · Outreachy

    My Outreachy project: moving CC Search pages from PHP to semantic HTML, CSS and JavaScript.

    8 merged PRs

    JavaScript · HTML · CSS

    2022–23GitHub ↗
  • Engagevents · Frontend engineer, part-time, EngagEvents

    Live Q&A, polls, quizzes, surveys and word clouds for events, with moderation and host analytics.

    Next.js · TypeScript · Redux Toolkit · Socket.IO

    2024
  • Minxx Club · Freelance

    A Medusa-backed lash store with collections, kits and an AR-style try-on called Minxx Mirror.

    Next.js · TypeScript · Tailwind · TanStack Query · Zustand · Medusa

  • Elite Connect Camp · Code Funhouse

    Residential summer camp — parent and agent registration with Stripe checkout and Sanity CMS.

    Next.js · TypeScript · Tailwind · Stripe · Sanity · Zod · Motion

  • Next Gems Camp · Code Funhouse

    A sister camp site that uses the same Stripe checkout and Sanity CMS pattern, with a different interface.

    Next.js · TypeScript · Tailwind · Radix · Stripe · Sanity · Zod · Motion

  • Fun Tech AI · Company site

    Company site for custom AI agents across fintech, education and health.

  • Architecture portfolio · Client

    Portfolio for architect Izuagbe-Ibrahim Hamid — project gallery and testimonials.

    Next.js · React · TypeScript

  • Audiophile · Personal

    Premium audio storefront — catalogue, category pages and cart.

Some of this work lives in private client repositories. Get in touch if you want to know more →