Web applications · Vanilla JS, React, Postgres

I build the thing when the tool won’t do it.

Not a separate hobby from the learning work — the reason I can design an interaction that doesn’t exist in an authoring tool yet. These are deployed applications with real backends, row-level security, auth, and in a couple of cases actual users who noticed when something broke.

Philadelphia, PA petercelona.pm@gmail.com github.com/BeCuriousSTEAMLab

Projects

Deployed · not prototypes

PA Evaluator Directory

Pennsylvania law requires homeschooling families to have an annual evaluation by a qualified evaluator, and there was no good way to find one. A searchable directory across all 67 counties, with evaluator profiles and a moderated signup flow so listings are reviewed before they go public.

Built without a framework or build step, on Postgres with row-level security policies rather than trusting the client. I’m the first listed evaluator.

Matchday

A World Cup 2026 prediction pool — scoring, standings, per-match locking, live results. Not a learning artifact, and it’s here for a different reason: it shipped against an immovable deadline, with people actively using it, which is a different discipline from building something no one is waiting for.

The scoring formula was the easy part. Handling a user who opens the app mid-match, on a phone, expecting the standings to already be right — that was the work.

correctmath.io

Where the two halves meet. A K–8 mathematics learning system built on H. Wu’s definitions-first framework, with every interactive element written by hand because no authoring tool does what the instructional design requires.

Working conventions

Stack

  • Vanilla HTML, CSS, JavaScript — no build step by default
  • React where the state actually justifies it
  • Supabase Postgres with row-level security
  • Netlify, deployed from GitHub

Discipline

  • CDN references pinned to exact versions, never floating
  • Security enforced in the database, not the client
  • Citations and claims verified against primary sources
  • Shipped and hosted, not left on a branch

Learning next

  • Python — APIs and data
  • Working with LLM APIs directly
  • Agent-based tooling

Open to implementation, technical program management, and instructional design work.

The combination is the point — I can talk to engineering and design the training, which usually saves a handoff.

Peter Celona petercelona.pm@gmail.com Learning design work