Projects

These projects span storytelling, fitness, games, parenting, and weather forecasting. That's deliberate - the approach is the same regardless of domain: find a space where people navigate by intuition, map the underlying structure, and build a system that makes it clear.

Each one was designed, built, and shipped independently.

Loreteller

Storytelling Toolkit for 25,000+ Creators

A library of 75+ free storytelling frameworks and a $79 premium toolkit of 29 research-backed systems for character psychology, story structure, and worldbuilding. Used by novelists, screenwriters, and game masters who want structured methods, not vague craft advice. Many creators struggle with the chaos of unstructured creativity. I know I do.

75+ Free Resources
29 Premium Frameworks
Research-Backed
Visit

How It Works

Loreteller provides three tiers: free reference resources for mid-session lookup, educational articles that teach craft concepts, and a premium toolkit of guided frameworks for deep creative work. The premium frameworks turn psychological research into step-by-step character, plot, and worldbuilding systems that produce concrete output - not just concepts to understand.

Why I Built It

Many creators struggle with the chaos of unstructured creativity. I know I do. I spent over a decade curating these tools, and building my own. Traditional writing advice tends to be vague and inspirational rather than practical. Loreteller addresses this by providing concrete, research-backed frameworks that transform creative challenges into systematic processes, making storytelling more reliable and efficient.

Technical Highlights

Static Site Generator: Eleventy (11ty) for fast performance
Backend: Supabase (auth, database, storage) + Stripe Checkout
Content Management: Nunjucks templates with JSON data, premium content in Supabase Storage
Performance Focused: Static site architecture with 100+ pages

Character Forge

Psychology-Driven Character Builder

An interactive character creation tool that guides writers through 10 psychology-backed layers - from values and wounds to defenses, personality, and arc. A tension engine cross-references every choice, surfacing 5,000+ pre-authored resonances and contradictions. Character tools either generate random traits in silos or ask vague questions with no framework for answering.

10-Layer Build
200+ Cards
Tension Engine
Visit

How It Works

Writers select cards across 10 sequential psychological layers. At every step, the tension engine analyzes how each new selection interacts with all previous choices - surfacing resonances (layers reinforcing each other, creating blind spots) and tensions (layers contradicting each other, creating dramatic potential). The result is a character with built-in internal conflict and a clear arc trajectory.

Why I Built It

Character creation tools either generate random traits in silos or ask vague questions like 'What is your character's greatest fear?' with no framework for answering. The Forge turns Loreteller's research-backed psychology frameworks into an interactive builder where the system does the cross-referencing. Writers make choices; the Forge shows how everything connects.

Technical Highlights

Framework: Astro + React with Supabase backend
Research Base: Schwartz Values, Schema Therapy, HEXACO, Attachment Theory, Narrative Psychology
Tension Engine: 16 cross-reference types, 5,000+ authored insights
Sharing: Public URLs for character profiles and relationship analyses

The Neurotype Assessment

Cognitive System Analysis

A comprehensive assessment that maps your biological hardware across 6 dimensions of processing to identify your unique neuro-cognitive profile. I wanted to build a tool that didn't just tell people who they are, but how their machine works.

6-Dimensional Model
Hardware Analysis
Ecological Fit
Visit

How It Works

The assessment uses the Neuro-Adaptive Precision-Allocation (NAPA) Model to analyze an individual's 'current baseline state.' Instead of assigning fixed personality types, it measures where a user falls on 6 biological spectrums (like Sensory Gating or Dopaminergic Drive). It then generates a detailed profile that explains the 'metabolic cost' of their processing style and offers strategies for environmental adaptation.

Why I Built It

Current personality models often ignore the 'cost of operation.' I wanted to build a tool that didn't just tell people *who* they are, but *how* their machine works. By understanding our biological hardware -our input filters, our energy systems, our threat detection -we can stop trying to fix ourselves and start engineering environments where we naturally thrive. This is about moving from 'Pathology' to 'Ecological Fit.'

Technical Highlights

Framework: Astro for high-performance static rendering
Methodology: NAPA (Neuro-Adaptive Precision-Allocation) Framework
Research Base: Synthesis of Predictive Coding, Monotropism, and HiTOP frameworks
Design: Accessible, spectrum-based visualization of complex data

Cards From Space

Gamified NASA Image Collection

A collectible card experience built on nearly 20,000 images from NASA's archives spanning 60 years of space exploration. Open packs, discover cards across historical eras, and build a collection that traces humanity's journey to the stars. My son asks every night if we can go look at the sky. When I ask where he'd go, he always says the moon.

~20,000 Cards
Pack Opening Experience
Tiered Rarity System
Visit

How It Works

Players open packs containing 7 cards drawn from NASA's image archives. Each card belongs to a historical era (Mercury, Gemini, Apollo, Shuttle, ISS, Modern) and has a rarity tier based on engagement metrics. Duplicate cards convert to stardust, a currency for crafting specific cards. Eras unlock progressively as players open more packs, creating a journey through space history.

Why I Built It

Every night before bed, my son asks if we can go look at the night sky. When I ask him where he'd go if he could go anywhere, he always says the same thing: "The moon." I built Cards From Space so he can explore 60 years of space history as collectible cards - turning NASA's archives into something a five-year-old can treasure.

Technical Highlights

Framework: Astro + Svelte with TypeScript
Backend: Supabase (auth, database, cloud sync) + Stripe (donations)
Image Source: NASA Image API with proxy caching
Card Effects: GPU-optimized tier effects (lava layers, sparkles, shine sweeps)
Hosting: KnownHost (LiteSpeed) with Cloudflare CDN

One Great Big Family

Interactive Ancestry Journey

An interactive scroll-driven experience that traces the unbroken chain of mothers from you back to LECA, the last eukaryotic common ancestor - grandmother of every animal, plant, and fungus. Each stop is a grandmother - a real individual who lived, survived, and had a daughter. A tree is your cousin.

25 Stops
Scientifically Grounded
DNA Helix Visualization
Visit

How It Works

The experience uses scroll position to navigate through 25 stops on the tree of life. Each stop represents a common ancestor - the grandmother you share with chimps, with mushrooms, with trees. A DNA helix animates alongside the scroll, and the background shifts from warm (present) to cold (deep time). Circular portraits show what each grandmother looked like, based on fossil evidence or scientific reconstruction.

Why I Built It

Evolution is usually taught as abstract lineages and branching trees. I wanted to make it viscerally personal - not 'humans evolved from apes' but 'you have a grandmother who was also the grandmother of every chimpanzee alive today.' The thesis lands at the end: if the chain of mothers connects you to chimps, it also connects you to mushrooms, trees, and bacteria. We are one great big family.

Technical Highlights

Framework: Astro 4.x with MDX content collections
3D Visualization: Three.js WebGL for DNA helix animation
Animation: GSAP ScrollTrigger for scroll-driven transitions
Styling: Tailwind CSS with CSS custom properties for color interpolation
Typography: Literata (Google Fonts) for literary feel
Accessibility: Keyboard navigation, reduced motion support

The Renaissance Child Framework

Parenting by Design, Not by Default

A comprehensive, values-driven parenting framework that connects developmental psychology to daily family life. Built on 13 core values, 17 practical principles, and grounded in Erikson's stages and Gopnik's gardening philosophy. I wanted a coherent system for the parenting decisions I was already making every day.

13 Core Values
17 Daily Principles
Developmental Roadmap
Visit

How It Works

The Renaissance Child is built on a central shift: seeing children as people to connect with rather than problems to solve or products to manufacture. At its heart is the gardening metaphor - rather than crafting a child into a predetermined outcome, the parent creates rich, diverse, safe conditions for natural flourishing. The framework provides the specific seeds (values), soil (principles), and tending practices (activities, guidance) needed. The six areas - Philosophy, Principles, The Parent, Development, Enrichment, and Success - are meant to be accessed flexibly. Start wherever resonates, follow your child's developmental stage, and let curiosity guide enrichment choices.

Why I Built It

I created this framework because I wanted a coherent system for the parenting decisions I was already making every day. It started as personal notes - ideas drawn from developmental psychology books, organized into something I could actually reference during the messy reality of family life. I synthesized established research (Erikson, Gopnik, Baumrind, Gardner) into a practical, structured approach that connects the 'why' of child development to the 'what do I do today' of family decisions. The aim isn't to create a perfect child or follow a rigid checklist - it's to provide a values-driven foundation for raising a resilient, compassionate, self-aware adult.

Technical Highlights

Framework: Astro 4.x with TypeScript
Content: Structured content collections with type-safe schemas
Design: Tailwind CSS with custom color system (cream, forest green, terracotta)
Architecture: 13 values, 6 curses, 17 principles, 5 developmental stages, 67+ activities

GameType Indicator

Experiential Game Analysis Framework

A framework for understanding what it feels like to play a game. Moves beyond genre labels to map experiential qualities across 6 dimensions, revealing why games that share genres can feel completely different. What does it mean to 'like RPGs' when that could mean anything from Pokémon Yellow to Cyberpunk 2077?

6-Dimensional Model
64 GameType Archetypes
Experiential Focus
Visit

How It Works

The GameType Indicator (GTI) uses a six-dimensional model to classify games based on experiential qualities rather than genre labels. Each game receives a code (like MAE-LRP) that describes its Focus (Mechanics-First vs Narrative-First), Stance (Actor vs Director), Progression (Emergent vs Structured), Complexity (High vs Low), Pacing (Relaxed vs Tense), and Encounters (Open vs Private). The framework generates 64 distinct GameType archetypes, allowing players to discover patterns in their preferences and find games that share the same experiential DNA, regardless of genre.

Why I Built It

Genre tags like 'Action-Adventure' or 'RPG' have become so broad they're almost useless. What does it mean to 'like RPGs' when that could mean anything from Pokémon Yellow to Cyberpunk 2077? I built the GameType Indicator to provide a standardized framework for describing what it actually *feels like* to play a game. It helps players understand their true preferences, discover hidden connections between games, and find new experiences that match their experiential preferences rather than generic genre labels.

Technical Highlights

Framework: Six-dimensional experiential analysis model
Archetype System: 64 distinct GameType combinations
Interactive Quiz: Discover your preferred GameType through gameplay
Exploration Tools: Browse archetypes and compare games across genres

Griddle

Daily Logic Puzzle

A web game that provides daily logic deduction puzzles, based on the classic Zebra Puzzle (Einstein's Riddle). I grew up obsessed with logic puzzles.

Daily Puzzles
Multiple Difficulty Levels
Smart Clue System
Visit

How It Works

Griddle presents players with a grid of categories (like Jobs, Pets, Foods, etc.) and provides logical clues to help determine the relationships between items. Players click cells to mark matches (✓) or non-matches (✗), using deductive reasoning to solve the puzzle. The game features three difficulty levels with varying grid sizes and complexity.

Why I Built It

I grew up obsessed with logic puzzles. I had books of them, and the pages were filled with my scribbling in the tables as I tried to solve them. I've recreated the puzzles I was obsessed with as a kid as a daily game anyone can play. Griddle provides a consistent, engaging experience with modern UI/UX that makes these classic puzzles accessible to everyone. The seeded randomization ensures everyone gets the same puzzle each day, creating a shared experience.

Technical Highlights

Backend: PHP with SQLite database for puzzle storage
Frontend: Vanilla JavaScript with modular architecture
Puzzle Generation: Sophisticated algorithm with seeded randomization
Performance: Pre-generated puzzles for instant loading
Accessibility: Keyboard navigation and screen reader support

Letterworth

Daily Word Game

A web game that provides daily word-building puzzles with strategic resource management, featuring "fancy letters" that grant bonus points. It tests vocabulary, imagination, and strategy. I wanted a word game with strategic depth beyond simple vocabulary.

Daily Puzzles
Strategic Letter System
Interesting Decision Space
Visit

How It Works

Letterworth presents players with a set of "fancy letters" that grant bonus points when used in words. Players must strategically build words using these letters to maximize scoring, then visit a shop between rounds to spend points on better letter upgrades. The game features seeded randomization ensuring everyone gets the same daily experience, with support for both single letters and letter pairs.

Why I Built It

I wanted to create a word game that went beyond simple vocabulary challenges by adding strategic depth through resource management. Letterworth combines the satisfaction of word building with the excitement of strategic decision-making, creating a unique "word economy" where players must balance immediate scoring with long-term investments. The daily format creates community engagement through shared puzzles and competitive leaderboards, while the seeded system ensures fair competition.

Technical Highlights

Backend: PHP with API endpoints for score submission
Frontend: Vanilla JavaScript with modular architecture
Game Logic: Sophisticated seeded randomization system
Performance: Client-side game logic with local storage
Accessibility: Full keyboard navigation and screen reader support

Runquesting

Fitness Adventure Platform

A web application that gamifies fitness by transforming exercise activities into virtual adventure quests with milestone tracking and progress visualization. My wife asked me for a way to motivate her daily running.

Epic Quest Creation
Multi-Activity Support
Milestone System
Visit

How It Works

Runquesting converts real-world exercise (running, walking, biking, swimming) into progress on epic virtual journeys. Users create quests with custom milestones and time goals, then log daily activities which are converted to equivalent "running miles" using smart conversion ratios. The platform provides real-time progress tracking and schedule adherence to keep users motivated.

Why I Built It

Traditional fitness tracking apps often feel monotonous. My wife asked me for a way to motivate her to do her daily running, and suggested a gamified approach. Runquesting solves this by turning exercise into an adventure -whether you're running the Boston Marathon or following the Fellowship's journey to Rivendell. With the pressure of a countdown and a goal to reach, every mile feels like it means something.

Technical Highlights

Frontend: React 19 with Vite and Tailwind CSS
Backend: PHP REST API with SQLite database
Authentication: Firebase integration for secure user management
Real-time Updates: Dynamic progress calculation and milestone updates

Board Game Gaps

Collection Analysis Tool

A web application that helps board game enthusiasts discover missing games in their collections using data from BoardGameGeek. I have a massive board game collection with a very particular mindset.

Smart Collection Analysis
Intelligent Filtering
Gap Detection
Visit

How It Works

Board Game Gaps analyzes your BoardGameGeek collection to identify gaps based on your preferences for player count, play time, and game complexity. The app provides personalized recommendations to help you build a more complete and diverse board game collection.

Why I Built It

I have a massive board game collection, with a very particular mindset. I want to curate a hoard of games that caters to every possible intersection of player count, play time, and game complexity. And, I wanted a way to see what was missing from my collection, and fill it. This tool automates the process by leveraging BoardGameGeek's extensive database and applying intelligent filtering algorithms.

Technical Highlights

Backend: PHP with SQLite databases for efficient caching
Frontend: HTML, CSS (Tailwind), and vanilla JavaScript with Chart.js
API Integration: Robust BoardGameGeek XML API integration with intelligent caching

Trezzer Chest

Financial Literacy for Kids

Modern allowance management that teaches children financial literacy through compound interest, opportunity cost, and charitable giving in a safe virtual environment. I built this so I can teach my children about financial stewardship.

Virtual Banking System
Compound Interest Education
Philanthropy Integration
Visit

How It Works

TrezzerChest acts as a virtual ledger where parents hold the actual money while the app tracks virtual balances. Children can view their growing savings and learn financial concepts through real-time visualization, while parents retain full control.

Why I Built It

Traditional allowance systems don't teach the fundamental principles of financial literacy. This tool transforms allowance into an educational experience that builds lasting financial wisdom through hands-on practice. I built this for use with my children, so I can teach them about the power of financial stewardship and the importance of saving for the future.

Technical Highlights

Backend: PHP with an SQLite database
Authentication: Firebase Auth integration for secure account management
Frontend: Modern responsive design built with Tailwind CSS
API Architecture: RESTful API endpoints for data operations

Kite-Flying Weather

Specialized Weather Forecasting Platform

A comprehensive weather application designed specifically for kite-flying enthusiasts, providing detailed wind analysis, safety assessments, and kite-specific weather ratings. I was tired of checking three weather apps and doing mental math.

Smart Rating System
Wind Analysis
Safety First
Visit

How It Works

Kite-Flying Weather analyzes multiple weather factors specifically for kite-flying, including wind speed, gust patterns, temperature, visibility, and precipitation probability. The app provides instant kite-flying ratings from Perfect to Deal Breaker, helping enthusiasts make informed decisions about when and where to fly. Features include hourly forecasts with preview summaries, detailed daily forecasts, and comprehensive safety warnings for dangerous conditions.

Why I Built It

Traditional weather apps don't understand what kite flyers need. Wind speed alone isn't enough - you need to know about gusts, wind-to-gust ratios, visibility, and safety factors. I built this because I was tired of checking multiple weather sources and doing mental calculations to determine if conditions were actually good for kite-flying. The app eliminates guesswork by providing specialized analysis that considers all the factors that matter for safe, enjoyable kite-flying.

Technical Highlights

API Integration: Open-Meteo weather API with comprehensive data fetching
Smart Algorithms: Custom rating system with primary/secondary metric weighting
Responsive Design: Tailwind CSS with mobile-first approach
Real-time Updates: Dynamic weather data with timezone handling
Performance Optimized: Efficient data processing and caching
Accessibility: Screen reader support and keyboard navigation

Poké Binder Builder

Pokémon Card Collection Manager

Comprehensive Pokémon TCG collection management with advanced search, price tracking, and personal binder organization. I wanted to see what it would cost to put together a themed binder.

Advanced Card Search
Collection Management
Real-time Data
Visit

How It Works

When I got bit by the Pokémon TCG bug, I wanted a way to see what it would cost to put together a binder with a particular theme. Existing search tools were clunky, didn't offer the right level of specificity, and required lots of manual tracking of prices and card details. This Binder Builder provides advanced search and filtering for Pokémon cards, allowing collectors to find specific cards, build a virtual binder, and see what it would cost. The app integrates with the official Pokémon TCG API to provide real-time card data, images, and pricing information.

Why I Built It

Pokémon card collectors often struggle with organizing their collections and finding specific cards. This tool automates the discovery process and provides a comprehensive collection management system.

Technical Highlights

Backend: PHP with an SQLite database for efficient caching
Frontend: Vanilla JavaScript with Tailwind CSS for responsive interface
API Integration: Robust Pokémon TCG API integration with weekly cache refresh
Performance: Multi-level caching system for optimal speed

Want me to build something for you?

From vision to v1 - brand architecture, product strategy, and launch execution for founders.

Work With Me