A full-stack movie discovery application built with React Native, Expo, TypeScript, and Appwrite.
Movie Galaxy allows users to discover the latest movies, search for specific titles, save favorites, and manage their profiles—all from a modern and intuitive mobile experience.
The application leverages The Movie Database (TMDB) APIs for movie data and Appwrite for authentication, database management, and file storage.
Noise Reveal, a premium reveal component for Framer
I built a component that gives Framer sites cinematic reveals for images, video and live layouts. It has a soft, film-like edge with glow and grain, and can play on load, on view, from a variant or scrubbed by scroll.
It’s built for production: the reveal is prepared before it scrolls in, it’s accessible with reduced-motion support, it falls back when WebGL isn’t available, and pages stay plain HTML when nothing is moving.
Launched on the Framer Marketplace. Open to custom Framer and interaction work.
The WebGL fallback and reduced-motion support are the parts most reveal effects skip, so it's great to see them called out. Does the fallback keep some of the grain edge with CSS, or does it drop to a simple fade?
Hey there!
Farbspur is my entry for the Video.js Skins Design Challenge: a custom skin for the Video.js v10 player that gets out of the way of what you’re watching.
The player has no colour of its own. Its seek bar is built from the video: it finds the strongest picture changes and turns them into blocks of colour, so every film gets its own player and you can jump straight to a scene.
→ Glass appears only where your hand is: a single drop moving on spring physics
→ Skips count up as you press: +5s, +10s, +15s
→ Quality, speed, casting and theatre mode share one visual language
→ Full keyboard control, and reduced motion for anyone who asks for it
The film and sound in the video were generated for this project.
Designed and developed ClubTree, a SaaS platform that helps membership organizations manage their websites, members, events, and communications from one centralized system.
ClubTree combines a public-facing website with an administrative dashboard, giving organizations the tools to manage membership applications, member directories, attendance, newsletters, documents, and organizational workflows.
The platform was designed around real-world service club needs, with an emphasis on intuitive navigation, role-based access, and simplifying administrative tasks.
My role: Product strategy, user research, UI/UX design, full-stack development, testing, and launch.
Key features:
- Membership applications and directories
- Event and attendance management
- Website content management
- Newsletters and member communications
- Role-based access and administrative dashboards
- Integrated organizational workflows
Outcome: A functional membership management platform with a live implementation for the Rotary Club of Charlottesville.
Going live with one real club in Charlottesville and building around how they actually run is the right way to do it. Club admin tools usually feel stuck in 2010, so this looks like a big upgrade. How did you land them, through someone in the club?