Craft
Main quests and fun experiments. Code, art, and community 
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!~ 
Apr 6 – Apr 12Week 21 of 27
Sun, Apr 12
- refactor(HabitDetailSheet): add HabitSheetStats component and make the label and the content in one row and use colorHexlifelong-habit-app16:38
- fix(HabitDetailSheet): make useHabitCardColors nullablelifelong-habit-app16:17
- refactor: change MetricCell to StatRow so the fields displayed in rowslifelong-habit-app16:15
- refaactor: adjust action buttons to use colorHex and adjust the button heightlifelong-habit-app15:15
- refactor: change category mapping nameslifelong-habit-app14:53
- feat(HabitDetailSheet): reusable SheetTileButton atom, drop StyleSheet for NativeWindlifelong-habit-app14:52
- refactor(HabitDetailSheet): make the sheet layout more organizedlifelong-habit-app12:41
- fix(HabitDetailSheet): replace custom Animated slide with native animationType="slide"lifelong-habit-app12:12
- fix(HabitDetailSheet): add hardcoded bottom padding to debug, fix AnimatedView hardcoded to 600 (it assumed the height never grows more than 600px)lifelong-habit-app12:03
- fix(HabitDetailSheet): make a componet triggered when pressing a habit card (for now it's still empty somehow)lifelong-habit-app11:48
- feat: add HabitDetailSheet componentlifelong-habit-app11:30
- refactor: move useColorPresets to dashboard directorylifelong-habit-app11:29
- refactor: move color-habit-picker component to features/dashboardlifelong-habit-app10:51
- refactor: make font size for habit name and time biggerlifelong-habit-app10:51
- refactor(habitCardBanner): change gradient computationlifelong-habit-app10:51
- refactor: remove color_id fieldlifelong-habit-app10:49
- feat: add coverImageUri fieldlifelong-habit-app08:12
- refactor: add habitCardBanner and tighten habit card gallerylifelong-habit-app07:45
- refactor: move edit button to be in the left side of complete button in compact modelifelong-habit-app07:41
- feat: add a shared component for color & icon pickerlifelong-habit-app07:40
- refactor: make the screen height 88%lifelong-habit-app07:39
- refactor: remove PickerPreviewlifelong-habit-app07:14
Sat, Apr 11
- refactor: add categoryRegistry, remove category and archetype default colorslifelong-habit-app12:16
- chore: fix importslifelong-habit-app12:14
- refactor: change theme-registry to themeRegistry for naming consistencylifelong-habit-app10:52
- chore: remove scrollView from SwatchRow to reduce the big gap between swatch row and color/icon tabslifelong-habit-app09:48
- chore: remove hue-related commentlifelong-habit-app09:45
- refactor: remove hue handler, it's overkill for this color picker featurelifelong-habit-app09:44
- fix: remove color_id from being saved in database, it should stay only in DraftHabit and the field doesn't exist and is unnecessary to be in dblifelong-habit-app09:43
Fri, Apr 10
No commits.
Thu, Apr 9
- refactor: integrate color icon picker feature in habit dashboardlifelong-habit-app13:39
- feat: add color icon picker featurelifelong-habit-app13:38
- refactor(color picker): added colorPalette constants and update theme-registrylifelong-habit-app08:57
- chore: added expo linear gradient dependencylifelong-habit-app08:57
- chore: update new importslifelong-habit-app07:22
- refactor: move /shared directory from root to featureslifelong-habit-app07:17
- chore: add solar-icon and phosphor icon dependencieslifelong-habit-app05:13
- chore: change wordinglifelong-habit-app05:06
- refactor(dashboard): reduce margin in ArchetypeSelector for create habit screenlifelong-habit-app04:57
- refactor: add time picker to create habit screenlifelong-habit-app04:50
- refactor: change account name font color, remove unused var, change masked email comment to my namelifelong-habit-app04:30
- refactor: remove estimated time from habit dashboardlifelong-habit-app04:29
- chore: change default masked email comment to my namelifelong-habit-app04:29
- refactor: remove estimated time from habit dashboardlifelong-habit-app04:28
Wed, Apr 8
- style(constant): change scrimForegound hex codelifelong-habit-app23:40
- style: change hardcoded colors and adjust otherslifelong-habit-app23:40
- refactor: change some colorslifelong-habit-app23:38
- chore(build): import supabaseURL and supabaseAnonKey directly from expo constant for app buildlifelong-habit-app14:29
- refactor: remove ignoreDuplicates in seed-db to allow template replacementlifelong-habit-app14:28
- style(discover): improve habit template copywritinglifelong-habit-app14:27
- style: added padding and inset for create and edit habit screenlifelong-habit-app14:26
- refactor: remove archetype selector from edit habit screen to keep the habit log cleanlifelong-habit-app13:55
- chore: remove stale fields and revise template wordinglifelong-habit-app09:12
- chore: move confirmModalStyles to constants/components dirlifelong-habit-app09:11
- fix(app build): update supabaseUrl and supabaseAnonKey to prevent app crashinglifelong-habit-app09:11
- refactor: extract styles from edit and create habit screen, added buildHabitPayload service and shared componentslifelong-habit-app09:09
- chore: app copywritinglifelong-habit-app06:06
- refactor: extract form styles from edit and create screens into habitFormStyleslifelong-habit-app06:05
- chore: update app and eas configlifelong-habit-app04:41
Tue, Apr 7
- chore: update supabase dependencylifelong-habit-app16:34
- chore: update dependencylifelong-habit-app11:08
- chore: rename habit validation modal for habit creationlifelong-habit-app11:02
- chore: rename Reset App Data to Reset Datalifelong-habit-app11:02
- chore: rename a migration prefix as its orderlifelong-habit-app11:01
- refactor: ran new reset data migration and fix bug in reset datalifelong-habit-app11:00
- refactor(UI): move sign out from account info screen to the setting tablifelong-habit-app08:56
- fix(LadderCard): hide rungs when completed, restore selection on undolifelong-habit-app08:56
- fix: made valueLogged, floor, ceiling, and unitLogged values get stored to in DailyLog tablelifelong-habit-app07:55
- chore: added console log to debug ladder habitlifelong-habit-app07:04
- fix: changed ladder habit archetype formula (now visually works but still have debug in backend)lifelong-habit-app06:58
- refactor: remove extra_credit_enabled field in snowball_configlifelong-habit-app05:24
- refactor: fix snowball intensity_percent log value in db (it was capped to 100%) and remove extra credit toggle (users can have >100% intensity_percent by default)lifelong-habit-app05:24
Mon, Apr 6
- refactor: change ladder habit card UI from pills to rungslifelong-habit-app15:06
- chore: console log handleLadderConfig and handleSnowballConfiglifelong-habit-app08:34
- chore: added Jest dependency for testinglifelong-habit-app08:20
- fix(bento): call onValidConfig imperatively with raw input valuelifelong-habit-app06:04