Community super-app for Japanese speakers in Australia: a visa-aware jobs board, share-houses, marketplace, business directory, events and a map. Web and mobile apps share one Convex backend, with realtime in-app messaging and moderation tools to keep scams out.
Convex, TanStack Start, React 19, Better Auth, Cloudflare Workers, Expo, tailwind, MapLibre, Vitest, PlaywrightNative iOS strength-training app, built interaction-first. A custom slide-up sheet morphs from a floating card to fullscreen on one device-tuned spring, sets are logged on a custom keypad with haptics and RPE controls, and exercises are reordered or grouped into supersets by dragging. Runs on mock data for now; persistence and history come next as it grows into a full app.
SwiftUI, UIKit, AVFoundation, MetalKit, XCTest, MaestroAn index of beautiful places to study around the world, rebuilt from SadFrogsStudying. Images upload straight from the browser to S3 via presigned URLs, and pages are statically cached and only revalidated when a spot is created, edited or deleted.
NextJS, TRPC, Prisma, React Query, NextAuth, AWS S3, Zod, Leaflet, Jest, tailwindPages revalidate when CMS content changes. Be sure to check out the News and Lookbook pages. All content is configurable via the CMS (Sanity). Animations using Framer Motion.
NextJS, Sanity, SWR, Framer Motion, ShopifyThe original user-submitted index of places to study around the world. Superseded by InternationalStudySpots.
NextJS, Prisma, TRPC, AWS S3, React Query, Google Maps, tailwindSanity CMS to manage video projects for a client and NextJS on the frontend.
NextJS, Sanity CMSAn online store where Gatsby pulls products from Shopify at build time and statically generates every product page. The cart and checkout run client-side through the Shopify Buy SDK, persisted in localStorage, and the news and lookbook pages are written in Markdown.
Gatsby (React), Graphql, Shopify, Shopify Buy SDK, MarkdownA portfolio site I designed and developed for Sydney-based artist, Nuan Ho.
Gatsby (React), Graphql, NetlifyCMS