A dark table still life: globe, lake glass, weather instruments, a rising green curve, a baseball, and game tiles in warm light.

Things I’ve been building

Each app started because I wanted the answer on one screen. They also happen to be the kind of app you can share with friends, a neighbor, or others that are passionate on that subject.

$99 launch

House · projects · ledger

HomeOwner

The work of the house, in one place. Invite the people who live there, keep projects and costs on a shared ledger — $99 for the first home.

$99 first home +$49 each extra

Open HomeOwner

New

Shop · casing · miters

Moulding Buddy

Measure a window or door, pick a Classic Wood profile, and get the long-point length and miter for each side. The cuts stay in this browser.

Windows & doors 35 profiles Local-first

Open Moulding Buddy

Friends · topics · a buzzer

Trivia Night

Finally, a night for knowing too much.

Same couch or three time zones. You pick the subjects. They pick a fight. The scoreboard keeps you honest.

In person Remote Your topics

Open Trivia Night

New

Phone · parlor · a plaque

Pocket Parlor

Nine games for a phone, and a brass plaque for the scores. The waiting-room cupboard — minesweeper, solitaire, hearts, snake — in your pocket.

Nine games Hall of Fame Phone-first

Open Pocket Parlor

Places · maps · memory

GeoXplorer

A living atlas of about 900 curated places. Maps, weather, routes, and notes — so a trip is a choice, not a spreadsheet.

900 places Live weather Routing

Open GeoXplorer

Forecast · radar · storms

Weather

Several weather desks, one quiet dashboard: radar, ten days, history, and whether a storm is actually your problem.

Multi-source Radar

Open Weather

Money · time · a curve

Compoundly

Compound interest, drawn so the future is visible. Slide the inputs. Watch the green line do the talking.

Calculator Projection

Open Compoundly

Cottagers · gauges · outlook

Mississippi Lake Level

A water briefing for people of the lake. Level, inflow, outflow, and a simple outlook — updated when the gauges are.

Live gauges 7 & 60 day

Open the briefing

Blue Jays · The Push

Blue Jays Playoff Push

The wild-card mess, translated. Games back, who to root against, and whether October is still a rumor.

Hourly Playoff odds

Open the tracker

Maple Leafs · The Push

Maple Leafs Playoff Push

The playoff math, translated. Points back, who to root against, and whether April is still a rumor.

NHL API Playoff odds

Open the tracker

NHL · The Push

NHL Playoff Push

The league board, translated. Power rankings, the cut line, and who to root against tonight.

All 32 clubs Playoff odds

Open the tracker

NFL · The Push

NFL Playoff Push

The playoff picture, translated. Power rankings, the cut line, and whether January is still a rumor.

All 32 clubs Playoff odds

Open the tracker

Scores · nicknames · no cloud

Game Night

The honest scorekeeper. Mexican Train, poker contracts, darts, cornhole, horseshoes. Names and grudges stay on this device.

Local-first Five games

Open Game Night

My Goal

The job is to take data and make it consumable.

I like problems where the data is already out there — APIs, gauges, box scores — and nobody has a page they trust or just tells the simple story of what’s happening. The work is pulling the feed, finding the one number that matters today, and putting it in a layout a human can finish before the coffee cools.

These are not client projects. They’re things I wanted for me, family, friends, cottagers, for anyone with a passion. The same craft applies when a business needs a briefing, a dashboard, or a tool people will actually open.

Pull the feed

Live sources, snapshots, and a little modeling — enough to be useful, not a research paper.

Find the signal

Games back. Lake vs average. The green curve. One read you can act on.

Make it friendly

A page you’d text to your dad. Logos, weather, scores — dense underneath, calm on the surface.

If this looks useful

Happy to talk about the next one.

If you have a pile of information that is difficult to understand, I like that problem. Say Hello!