Craft

Main quests and fun experiments. Code, art, and community Happy

My main project now is Lifelong Habit, a habit app for people who want to focus on long-term habit formation and detailed insights. Most of the things I’ve made and played around with circle back to self-development, with some funsies and whimsies here and there. Open to work and collaborations!~ Starfish

Aug 17 – Aug 23Week 2 of 27
Sun, Aug 23
  • feat(nav): move Week out of top nav and into Aboutlaiflonglearner.com13:50
  • fix(garden): make watering hit-test and the water falling work naturally on mobilelaiflonglearner.com13:43
  • refactor: rename travelers to trips in footer counterlaiflonglearner.com04:05
Sat, Aug 22
  • feat: add footprints and traveler count to footerlaiflonglearner.com12:14
  • refactor(blog): remove dummy postlaiflonglearner.com11:57
  • fix(guestbook): allow emoji panel input in composer textarealaiflonglearner.com11:07
  • fix: use ⌇ separator instead of parentheses in tab titleslaiflonglearner.com08:59
  • feat(dashboard): show the first-habits prompt for all users with no habitslifelong-habit-app04:54
  • style(images): match post image shadow to btn-cozylaiflonglearner.com04:35
  • style(garden): make flower stems curved, make the buds larger, and widen grass leaves againlaiflonglearner.com04:24
  • fix: add responsive mobile navigation dropdown to headerlaiflonglearner.com04:14
Fri, Aug 21

No commits.

Thu, Aug 20
  • feat(onboarding): surface starter habits to existing users and fix duplicate detectionlifelong-habit-app14:13
  • style(garden): widen grass blades and lengthen flower stemslaiflonglearner.com13:11
  • fix(garden): make flower growth match exactly where the water landslaiflonglearner.com13:08
  • fix(instrumentation): run Cloudflare dev setup only in development modelaiflonglearner.com13:07
  • fix(deploy): use legacy middleware for Cloudflare compatibilitylaiflonglearner.com13:06
  • fix(mdx): add a gap between row images so their shadows showlaiflonglearner.com10:32
  • fix(mdx): wire remark-image-width into post pipeline and dedupe mdx optionslaiflonglearner.com10:11
  • refactor(css): make the text alignment justifylaiflonglearner.com07:46
  • refactor(week): remove duplicate hero image for week coverlaiflonglearner.com07:39
  • fix(css): reset margin for inline emotes to prevent spacing issueslaiflonglearner.com07:34
  • fix(css): restore prose spacing and list styling with typography pluginlaiflonglearner.com07:22
  • feat(weeks): support multi-photo cover collages on week cardslaiflonglearner.com06:39
  • fix(css): keep inline emotes from using photo stylinglaiflonglearner.com05:48
  • feat(garden): give each flower its own heightlaiflonglearner.com05:47
  • feat(week): add Week gallery and fix ToC ids for headings with emoteslaiflonglearner.com04:57
  • feat: add guest onboarding flow with starter habit pickerlifelong-habit-app02:01
Wed, Aug 19
  • chore(emotes): remove leftover PNGs after WebP conversionlaiflonglearner.com13:27
  • feat(week): add 2026-W33 and optimize assetslaiflonglearner.com13:10
  • feat(garden): replace ground panel with grasslaiflonglearner.com10:11
Tue, Aug 18

No commits.

Mon, Aug 17

No commits.