things you can poke at
Demos.
Small, self-contained things I built to try out an idea or work through a problem I was curious about. No frameworks, no build step, and no analytics. Each one is a single PHP file you can open up and read from top to bottom.
web dev demos
Web demos
Small interactive things I built to try out a web idea or work through a problem I was curious about. Each one is a single PHP file you can open up and read from top to bottom.
-
Audio Visualizer
AudioContext → AnalyserNode → Canvas. Pick an oscillator or pipe in your microphone, then switch between bars, waveform, and circular spectrum visualizations. Headphones recommended.
- Web Audio API
- Canvas 2D
- requestAnimationFrame
-
Contrast Checker
Pick any two colors and watch the WCAG ratio update live. Pass/fail tiles call out AA, AAA, and UI-component thresholds, and the URL updates so you can share a palette.
- Vanilla JS
- WCAG 2.1
- Zero deps
-
Game of Life
Conway's Game of Life on a toroidal grid. Click or drag to toggle cells, drop in classic patterns (glider, pulsar, Gosper's gun), and watch a few rules turn into a surprising amount of structure.
- Typed Arrays
- Canvas 2D
- Pointer events
-
Live Editor
A two-pane mini code editor that re-renders a sandboxed CSS preview on every keystroke. The preview lives inside a Shadow DOM, the syntax highlighter is hand-rolled, and the whole thing runs without a build step.
- Shadow DOM
- Tokenizer
- Vanilla JS
-
Pokédex
Browse all 1025 Pokémon by generation, then pick one and see every Trading Card Game card it has appeared on. Sort by release date or rarity, filter by set, and open any card for full details and current pricing from TCGPlayer and Cardmarket.
- PokéAPI
- pokemontcg.io
- Vanilla JS
-
Pokémon TCG Browser
Browse Pokémon TCG cards and sealed products by set, in English or Japanese, with filters for rarity, condition, printing, and price. Live prices come from JustTCG through a WordPress REST proxy that keeps the API key server-side and caches against the free-tier rate limit.
- JustTCG
- WP REST API
- Transient cache
-
Prompt Studio
A little studio for writing and scoring AI prompts. Pick a task, draft a prompt, and it grades how the result came out so you can see what is actually working.
- Vanilla JS
- Single file
- Zero deps
-
Sort Race
Four sorts (bubble, insertion, merge, quick) race the same shuffled array. Each is a step-generator yielding control between operations so the canvas can render. Watch O(n²) lose, badly.
- Generators
- Canvas 2D
- Visualization
-
Weather API Playground
Two-step fetch chain against the Open-Meteo API: geocode the city, then pull a 7-day forecast. Pretty-printed JSON pane underneath shows the actual response. No key, no library, no proxy.
- fetch()
- async/await
- Open-Meteo
games
Games
Games I built from scratch and put right in the browser, using nothing but JavaScript and a canvas.
old games, ported
Old games
Old Processing sketches I made in school, hand-ported to vanilla JavaScript and Canvas so they run in a browser without any plugins.
-
Microgame
A maze game from a DePaul intro class, ported from Processing to vanilla JavaScript and Canvas. Press Play, then Enter, and move with WASD to reach the orange goal at the bottom right before the ten-second timer runs out.
- Vanilla JS
- Canvas 2D
- Original Processing
-
Pug Attack
A small Processing sketch from a DePaul level design class, hand-ported to vanilla JavaScript and Canvas so it plays in the browser. The pug paces along the top, the cannon tracks the mouse, and clicking fires a shot at the cat scrolling along the bottom.
- Vanilla JS
- Canvas 2D
- Original Processing