Projects

I believe in building things that solve specific problems. Each project below stems from a personal interest and a commitment to systematic, thoughtful design. Whether for fellow creators, parents, or hobbyists, my goal is to build experiences that are genuinely useful and help make complex things a little bit simpler.

Loreteller

Storytelling Toolkit Platform

A comprehensive storytelling toolkit website that provides systematic frameworks and resources for authors, game masters, and creative professionals.

65+ Free Resources
Character archetypes, worldbuilding guides, plot structures
Premium Toolkit
Hurricane Story Model, Character Personality Model
Systematic Approach
Structured, methodical creative processes
Research-Backed
Psychology, narrative theory, proven methods

How It Works

Loreteller offers 65+ free storytelling tools and premium frameworks designed for systematic creators who prefer structured approaches to writing and worldbuilding. The site provides character development models, plot structure frameworks, worldbuilding guides, and psychological frameworks that help creators build compelling narratives through proven methodologies.

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
Modern Styling: Tailwind CSS for responsive design
Content Management: Nunjucks templates with JSON data
Performance Focused: Static site architecture

Griddle

Daily Logic Puzzle

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

Daily Puzzles
New puzzle every day with seeded randomization
Multiple Difficulty Levels
Easy (4x4), Standard (5x5), Hard (6x6)
Smart Clue System
Direct matches, inequalities, group relationships
Interactive Grid
Click cells with visual feedback and auto-save

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.

Daily Puzzles
New puzzle every day with seeded randomization
Strategic Letter System
Fancy letters with varying point values and upgrades
Interesting Decision Space
Shop system for spending points on letter upgrades
Interactive Word Building
Type words with visual feedback and bonuses

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

Lingolink

Daily Idiom Chain

A web game that provides daily word connection puzzles, challenging players to complete chains of 7 idioms by finding the connecting words between them.

Daily Puzzles
New puzzle every day with seeded randomization
Progressive Chain Mechanics
Each completed idiom unlocks the next one
Interactive Word Assembly
Drag-and-drop gameplay with visual feedback
Responsive Multi-Platform
Touch-optimized controls across all devices

How It Works

Lingolink presents players with a chain of 7 idioms where each consecutive pair shares exactly one word. Players see blanked-out examples of idioms in context and must drag words from a word bank to complete them. Each completed idiom unlocks the next one in the chain, creating a satisfying progression of discovery. The game features sophisticated drag-and-drop mechanics, progress tracking, and a responsive design that works across all devices.

Why I Built It

I've always been fascinated by the interconnected nature of language and how words can bridge different expressions. Lingolink transforms this linguistic curiosity into an engaging daily puzzle that challenges players to think about word relationships and discover new idioms. The chain structure creates a unique solving experience where each step builds on the previous one, making it both educational and entertaining. I wanted to create a game that celebrates the richness of English idioms while providing a fresh puzzle experience every day.

Technical Highlights

Backend: Pre-generated puzzle system with 433 unique idiom chains
Frontend: Vanilla JavaScript with modular architecture
Puzzle Generation: PHP-based chain finder with graph theory
Performance: Instant puzzle loading with efficient state management
Accessibility: 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.

Epic Quest Creation
Build custom fitness adventures or choose pre-made quests
Multi-Activity Support
Track running, walking, biking, swimming with conversion ratios
Milestone System
Visual progress tracking with themed destinations
Real-time Dashboard
Progress view with completion percentage and schedule

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.

Smart Collection Analysis
Integrates with BoardGameGeek API to analyze collections
Intelligent Filtering
Filter by player count, play time, weight, age
Gap Detection
Identifies missing games from 4,000+ ranked games
Real-time Processing
Multi-level caching system for optimal performance

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, woth a very paticular 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.

Virtual Banking System
Parents act as bank, app provides educational tracking
Compound Interest Education
Customizable interest rates demonstrate money growth
Philanthropy Integration
Parent-matched donation system encourages giving
Dual User Interface
Separate dashboards for parents and children

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.

Smart Rating System
Perfect, Excellent, Good, Decent, Warning, Deal Breaker ratings
Wind Analysis
Gust-to-speed ratios, wind patterns, direction consistency
Safety First
Deal breaker conditions, visibility factors, storm detection
15-Day Planning
Extended forecasts for trip planning and session scheduling

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. Perfect for collectors and enthusiasts.

Advanced Card Search
Multi-criteria search by name, keyword, type, rarity, set
Collection Management
Personal "binder" system with export/import CSV
Real-time Data
Live integration with Pokémon TCG API with caching
Price Tracking
Display card prices and collection value calculations

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