<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Notes, Rizki Citra</title><description>Notes on what I learn while I build things, from React and TypeScript to tools I use every day.</description><link>https://rimzzlabs.com/</link><language>en-US</language><item><title>Git Hooks With Lefthook, Commitlint, and Biome</title><link>https://rimzzlabs.com/notes/lefthook-commitlint-and-biome/</link><guid isPermaLink="true">https://rimzzlabs.com/notes/lefthook-commitlint-and-biome/</guid><description>No more shell scripts in .husky. A step by step guide to Git hooks with Lefthook, Commitlint, Biome, and a small job left for Prettier.</description><pubDate>Sat, 26 Sep 2026 17:00:00 GMT</pubDate><category>lefthook</category><category>commitlint</category><category>biome</category><category>prettier</category><category>git hooks</category><category>conventional commits</category><category>lefthook commitlint</category><category>lefthook biome</category><category>husky alternative</category><category>commitizen commitlint</category></item><item><title>Not Everyone Loves Animation on Your Site</title><link>https://rimzzlabs.com/notes/not-everyone-loves-animation-on-your-site/</link><guid isPermaLink="true">https://rimzzlabs.com/notes/not-everyone-loves-animation-on-your-site/</guid><description>Some people don&apos;t hate animation. They hate animation that doesn&apos;t respect their time. A note on when animation deserves to exist.</description><pubDate>Sat, 05 Sep 2026 17:00:00 GMT</pubDate><category>Animation</category><category>Accessibility</category><category>prefers-reduced-motion</category></item><item><title>My First Trip Abroad Was a Hackathon at NTU</title><link>https://rimzzlabs.com/notes/my-first-trip-abroad-was-a-hackathon-at-ntu/</link><guid isPermaLink="true">https://rimzzlabs.com/notes/my-first-trip-abroad-was-a-hackathon-at-ntu/</guid><description>Rizky and I flew to Singapore to pitch Mayarin at the InnovateX 2026 finals. We missed a flight, got lost, and came home with the Builder Recognition Award.</description><pubDate>Sun, 23 Aug 2026 17:00:00 GMT</pubDate><category>NTU hackathon</category><category>InnovateX 2026</category><category>Mayarin</category><category>Singapore hackathon</category><category>Builder Recognition Award</category><category>first trip abroad</category><category>crypto payments hackathon</category></item><item><title>Mole Cleaned Up My Good Ol&apos; 256GB MacBook</title><link>https://rimzzlabs.com/notes/mole-cleaned-up-my-256gb-macbook/</link><guid isPermaLink="true">https://rimzzlabs.com/notes/mole-cleaned-up-my-256gb-macbook/</guid><description>My 256GB M1 MacBook was always full, and macOS only blamed System Data. Mole showed me where every gigabyte went, then got them back.</description><pubDate>Sat, 15 Aug 2026 17:00:00 GMT</pubDate><category>Mole</category><category>macOS Cleanup Tool</category><category>Free Up Mac Storage</category><category>System Data macOS</category><category>MacBook 256GB Storage</category><category>mo clean</category></item><item><title>How ts-belt Helps Me Write Predictable Code</title><link>https://rimzzlabs.com/notes/how-ts-belt-helps-me-write-predictable-code/</link><guid isPermaLink="true">https://rimzzlabs.com/notes/how-ts-belt-helps-me-write-predictable-code/</guid><description>How ts-belt&apos;s Option, Result, and AsyncResult replaced the pile of null checks and try/catch in the LLM code I work on every day.</description><pubDate>Sat, 08 Aug 2026 17:00:00 GMT</pubDate><category>TS-Belt</category><category>Functional Programming Frontend</category><category>Option</category><category>Result</category><category>LLM Frontend</category></item><item><title>Tanstack Query Is More Than Just Server State</title><link>https://rimzzlabs.com/notes/tanstack-query-more-than-server-state/</link><guid isPermaLink="true">https://rimzzlabs.com/notes/tanstack-query-more-than-server-state/</guid><description>We are often careless when managing server state. Tanstack Query is more than just fetching data from the server, storing it, and invalidating the cache.</description><pubDate>Fri, 31 Jul 2026 17:00:00 GMT</pubDate><category>Tanstack Query</category></item><item><title>Introducing Lanjut, an ATS-Friendly Resume Builder</title><link>https://rimzzlabs.com/notes/introducing-lanjut/</link><guid isPermaLink="true">https://rimzzlabs.com/notes/introducing-lanjut/</guid><description>ATS-friendly resumes have become an industry standard these days. But many people find them hard to create, so I shipped Lanjut, an ATS-friendly resume builder.</description><pubDate>Fri, 10 Jul 2026 17:00:00 GMT</pubDate><category>ATS Resume Builder</category><category>ATS Resume</category><category>rimzzlabs ATS Resume Builder</category><category>Free ATS Resume Builder</category><category>Rizki Citra</category><category>Local ATS Resume Builder</category></item><item><title>Jotai Recipes I Commonly Use for My Project</title><link>https://rimzzlabs.com/notes/jotai-recipes/</link><guid isPermaLink="true">https://rimzzlabs.com/notes/jotai-recipes/</guid><description>Jotai has a pattern called recipes for reading and updating state. Let&apos;s see how I use them to read and modify state in my projects.</description><pubDate>Fri, 29 Sep 2023 17:00:00 GMT</pubDate><category>react</category><category>jotai</category><category>hooks</category><category>jotai recipes</category><category>reactjs</category><category>state management</category><category>state manager</category></item><item><title>Improving Performance in React with These 3 Techniques</title><link>https://rimzzlabs.com/notes/improving-performance-in-react/</link><guid isPermaLink="true">https://rimzzlabs.com/notes/improving-performance-in-react/</guid><description>A slow, unresponsive app frustrates users. Here is how to make a React app faster and keep the experience smooth.</description><pubDate>Sat, 24 Dec 2022 17:00:00 GMT</pubDate><category>improve performance</category><category>react</category><category>react.js</category><category>performance</category><category>code-splitting</category><category>react app</category><category>lazy</category><category>loading</category><category>lazy loading</category><category>react performance</category><category>code splitting react app</category><category>vitejs</category><category>memoization</category><category>usememo</category><category>usecallback</category><category>React.memo</category><category>React.useCallback</category><category>React.useMemo</category><category>memoization in react</category><category>improving performance in react app</category></item><item><title>Jotai, a beautiful state manager for React devs</title><link>https://rimzzlabs.com/notes/jotai-state-manager/</link><guid isPermaLink="true">https://rimzzlabs.com/notes/jotai-state-manager/</guid><description>When we talk about state managers, the first name that comes to mind is probably Redux. This time, let&apos;s try another state manager library and meet Jotai.</description><pubDate>Thu, 07 Jul 2022 17:00:00 GMT</pubDate><category>react</category><category>hooks</category><category>jotai hooks</category><category>state mangement</category><category>react state management</category><category>jotai</category><category>jotai state manager</category><category>jotai react</category><category>jotai state</category><category>state</category><category>primitive state</category><category>primitive state management</category></item><item><title>How To Set Up Husky, Lint Staged, And Commitizen On A Next.js Project</title><link>https://rimzzlabs.com/notes/how-to-setup-husky-nextjs/</link><guid isPermaLink="true">https://rimzzlabs.com/notes/how-to-setup-husky-nextjs/</guid><description>Stop doing the boring parts by hand. Here is how to set up Husky, Lint Staged, and Conventional Commits in a Next.js project.</description><pubDate>Tue, 22 Mar 2022 17:00:00 GMT</pubDate><category>husky nextjs</category><category>husky lint staged</category><category>nextjs husky lint-staged</category><category>how to setup husky</category><category>how to setup husky lint staged</category><category>how to setup nextjs</category><category>husky lint staged commitizen</category><category>commitizen</category><category>commitizen nextjs</category><category>commitizen reactjs</category><category>conventional commit setup</category><category>husky setup</category><category>lint staged nextjs</category><category>lint staged reactjs</category><category>lint staged setup</category><category>nextjs reactjs</category><category>setup developer experience</category><category>setup developer experience nextjs</category></item></channel></rss>