
Odd Hours Labs
I build custom software and web apps, and I run the social side of a brand too. One person, no pitch deck. Here’s what I’ve shipped and what’s still on the bench.
“I create systems that innovate, improve, and make life more efficient.”Luke Lee · Founder →Real products, mostly live
5 live · 3 in development
Foresome
Eight booking sites, one search. Every tee time near you, plus partners who fit your game.
- booking platforms searched in parallel
- 8
- partner compatibility score
- 0–100
- friends + handicap, from one line of feedback to production
- Same day
- Next.js
- TypeScript
- Prisma
- Postgres
- NextAuth
- Puppeteer
- Cheerio
Demo group, stock photos
Emmarv
One photo a day with your friend group, ranked head-to-head instead of liked.
- Album page load after the performance fix
- 8–10s → 0.35s
- phases shipped to production
- 18
- automated tests by phase 15
- 554
- Next.js
- Prisma
- Supabase
- NextAuth
- Web Push
- Vitest
Last Stance
A sword-fighting game on Roblox built around the parry. Read the blade, break the stance.
- hand-built bosses, plus a timed boss rush
- 3
- weapons with their own move chains
- 4
- unit tests on the game code
- 80
- of ping with identical deflect results
- 150 ms
- Roblox
- Luau
- Blender
Get notified at launch
Also shipped
Ledgerline
Grant and finance tracking for small nonprofits, without the enterprise price tag.
- Next.js
- TypeScript
- Prisma
- Postgres
- Vitest
Crewly
Plan a trip with friends without the group chat. Vote on dates, lodging, itinerary.
- Next.js
- React 19
- Supabase
- Postgres RLS
- Claude API
- Leaflet
- Web Push
- Custom software for small orgsTools for nonprofits, studios, and small businesses that have outgrown spreadsheets.
- Social & contentThe feed side of a brand, run consistently.
- Web apps & sitesFrom a landing page to a full product.
On the back burner
- Continue?Live
A narrative browser game where the genre itself evolves as you play.
- Phaser
- JavaScript
- TreklyBuilding
Instagram for trips. Rank the places you've been, see where your friends went.
- Next.js
- Supabase
- Life MuseumBuilding
A daily photo and journal app, framed as a museum of your own life.
- React Native
- Expo
- Supabase
What shipped, and when
Last Stance: Per-weapon stances, private arenas, touch controls; 80 unit tests
Last Stance: Three bosses, a boss rush, story chapter 1 and PvP duels
Emmarv: Album page from 8–10s to 0.35s; phases 17 and 18 shipped
Crewly: Google sign-in lands on top of live-FX expenses, settle-up and Web Push
Foresome: Friends, round logging and a WHS handicap, live the same day the feedback came in
Get an email when something ships
A new product, a big feature, a launch date. Nothing else, and you can ask to be taken off any time. Or read the build log (there’s an RSS feed too).
Tell me what you’re building
Custom software, a web app, or the social side of a brand. Send a few lines and I’ll get back to you.
