2025On JavaScript ErrorsMay 29Implementing a credit-based billing system with StripeMay 17Why shadcn/ui is taking over the internetMay 05The rise of vibe codingApr 27Setting up Unreal Engine on a MacBook ProApr 142024Simulating Row-Level Security in MySQL with Clerk and PrismaOct 09Secure Linear OAuth2 flow with Next.js and React Server ComponentsMar 102023Neutral is shutting downSep 05From Product Designer to Agency DirectorJul 31Streaming OpenAI completions with the Vercel Edge RuntimeJan 14Making react-syntax-highlighter "editable"Jan 132022Enabling HSTS Preload in Next.jsDec 08Replacing JS Libraries with IntlDec 07Using clsx with Tailwind CSS for element style compositionDec 03Handy Body and Error Parsing Utilities for Next.jsDec 01Why Figma's AutoLayout system is brilliant for writing codeNov 30Optimizing your Next.js personal website's SEO with next-seoNov 27Creating active link class modifiers with Tailwind and Next.js 13Nov 25Optimizing Next.js images for speed and qualityNov 22Creating a no-auth Spotify playlist preview with Next.jsApr 02Implementing Push Notifications with Expo and Firebase Cloud FunctionsJan 29Stripe PaymentSheet subscriptions with Apple / Google Pay on Expo and FirebaseJan 29Implementing a simple OTA update function with Typescript and Expo 44+Jan 28Implementing a smart analytics hook for Firebase and Amplitude in Expo 44+Jan 282021Neat User and Profile React Hooks for Firebase V9Dec 24Implementing Google and Apple login hooks with Expo 43 and Firebase v9Oct 23Using the Firebase Local Emulator with Expo's managed workflowMay 18Upload images to Firebase using Expo 39+ managed workflowMay 18Finding a user's friends in their Contacts with Firebase and ExpoMay 182020From Product Designer to Agency DirectorApr 012017The story of PresumiAug 17