Small, carefully made web apps, designed and built end to end.

I work on each one as a whole, from the interface down to the API, database and hosting behind it. The four projects below are live, and each was made for a specific real-world use: an outdoor community event, a gaming community, people comparing code, and an artist’s portfolio.

Selected work

  • hooksforharry.netStatus: live

    Hooks for Harry

    Event-day tracker for the annual town-run children’s fishing derby in Olcott, NY.

    I designed and built it. Families get the essentials for the free derby: where and when it is, who can take part, the schedule and the rules. On the day, organizers use it to run the event, with live results on every connected device and a full-screen prize ceremony, in a light, high-contrast theme that stays readable outdoors in direct sunlight.

    • React
    • TypeScript
    • Cloudflare

    Visit Hooks for Harry at hooksforharry.net (external site)

    Hooks for Harry public page: four information cards covering the location at the Town of Newfane Marina in Olcott, the date and time, who can participate, and the day-of schedule.
  • spriteswapper.comStatus: live

    SpriteSwapper

    Fortnite sprite collection tracker and trade finder for players and their squads.

    I designed the brand, logo and interface, and built the app. Players mark the sprites and variants they own, list the ones they want, and the trade finder shows who has what so the swap can be arranged in-game. Friends can form groups of up to 64 players with a shared board of who is missing what. Syncing an Epic account is optional, there is no messaging, and the site never transfers in-game items.

    Independent community project, not affiliated with Epic Games.

    • JavaScript
    • Cloudflare
    • PWA

    Visit SpriteSwapper at spriteswapper.com (external site)

    SpriteSwapper home page with the headline “Find your next sprite.” next to a grid of six collectible sprite characters.
  • kodiff.comStatus: live

    Kodiff

    Fast, private, in-browser code and text comparison.

    I designed and built it. Paste two versions and the differences are highlighted as you type, by line, word and character, with syntax highlighting for 18 languages. Nothing you compare leaves the browser, and a strict Content-Security-Policy enforces that. It has side-by-side and inline views, three-way comparison, field-aware diffing for structured data and several export formats. It is free, with no ads and no account, and ships as one self-contained page with no framework or dependencies.

    • JavaScript
    • No framework
    • Cloudflare Pages

    Visit Kodiff at kodiff.com (external site)

    Kodiff comparing two versions of a JavaScript file side by side, with changed, added and removed lines highlighted.
  • daynafx.comStatus: live

    DaynaFX

    Portfolio site for a muralist, face and body painter and special-effects makeup artist.

    I designed and built it: an image-led, editorial portfolio with gallery filters, a lightbox and a light and dark theme.

    • HTML
    • CSS
    • JavaScript

    Visit DaynaFX at daynafx.com (external site)

    DaynaFX gallery in its dark theme, filtered to “Small canvases”: a grid of painted hands and arms, including an ice-cream cone, a butterfly, a spider and a shark, below the site navigation and the gallery filter buttons.

Also in progress: Fish in a Net (external site), a separate fishing-derby management platform.

Capabilities

  • Product and interface design, from brand mark to UI
  • Full-stack web apps: frontend, API, database, sign-in and deployment
  • Real-time, multi-device apps and synchronized display screens
  • Interfaces made for their setting: outdoor readability, mobile-first, installable PWAs
  • Privacy-first tools that keep data on the device
  • Accessibility, responsive layout and light/dark theming
  • Automated testing, including real-browser tests
  • Hosting and running apps on Cloudflare

Mostly TypeScript and JavaScript, with React or no framework at all, on Cloudflare Workers, Pages, D1 and Durable Objects.

Contact

You can reach me at alex@ahaz.net.