Feed


  1. This Week In React #250: Activity, React Router, CSS-in-JS, RSC, React-Query, useEffect | Expo, iOS blur, AI, Lynx, Squircle, DataList, Liquid Glass | TC39, pnpm, Bun, Browserslist, WebKit


    | thisweekinreact.com
  2. Postgres High Availability with CDC


    | planetscale.com
  3. This Week In React #249: TanStack, Fast-Refresh, MDX, Storybook, nuqs, AI Elements, Three-Fiber | Expo, Legend List, Uniwind, New Arch, Rock, Screens, IAP, Glass, Sound, NavigationBar | Interop, Linting, Safari


    | thisweekinreact.com
  4. Color Shifting in CSS


    | joshwcomeau.com
  5. Isolating CSS Inheritance


    | blog.dwac.dev
  6. This Week In React #248: Compiler, Next.js, Activity, Forket, Vite, shadcn, React Aria, BaseUI, RTK | RN 1.0?, Nightly testing, Autolinking, Reanimated, Ottrelite, Liquid Glass, Radon | WebMCP, Node, Ripple, View Transitions


    | thisweekinreact.com
  7. Deriving Client State from Server State


    | tkdodo.eu
  8. The difficulty of complexity


    | ethanniser.dev
  9. This Week In React #247: nuqs, Concurrent React, Apollo, shadcn, Streamdown, Fragment Refs, Waku, React-Aria | Expo Launch, Maestro, SPM, Screens, ExecuTorch, BottomSheet, Jest | Zod, Rspack, ESLint, CSS, Bun, Firefox


    | thisweekinreact.com
  10. This Week In React #246: Next.js, React Router, TanStack, StyleX, MUI, Storybook | FlashList 2, RN 0.81, Expo, Radon, Gesture Handler, Audio, Skia, Nitro, Strict DOM | TC39, Node, TypeScript, Astro, BIDC, Surveys


    | thisweekinreact.com
  11. An Interactive Guide to SVG Paths


    | joshwcomeau.com
  12. A Clock That Doesn't Snap


    | ethanniser.dev
  13. Announcing Neki


    | planetscale.com
  14. End Things on Time


    | ethanniser.dev
  15. React Query Selectors, Supercharged


    | tkdodo.eu
  16. The Useless useCallback


    | tkdodo.eu
  17. A Friendly Introduction to SVG


    | joshwcomeau.com
  18. Behind the Scenes: Sending Invoices Without Leaving Cakedesk


    | maxschmitt.me
  19. Caching


    | planetscale.com
  20. The principles of extreme fault tolerance


    | planetscale.com
  21. Announcing PlanetScale for Postgres


    | planetscale.com
  22. Benchmarking Postgres


    | planetscale.com
  23. Running a million-board chess MMO in a single process


    | eieio.games
  24. Partial Keyframes


    | joshwcomeau.com
  25. Error Categories in Effect


    | ethanniser.dev
  26. The Beauty of TanStack Router


    | tkdodo.eu
  27. The Height Enigma


    | joshwcomeau.com
  28. Announcing Vitess 22


    | planetscale.com
  29. One Million Chessboards


    | eieio.games
  30. Concurrent Optimistic Updates in React Query


    | tkdodo.eu
  31. Container Formats and Where to Find Them


    | kettanaito.com
  32. The Post-Developer Era


    | joshwcomeau.com
  33. Translating C++ X-macros to Zig Comptime


    | ethanniser.dev
  34. My Open Source Origin Story


    | tkdodo.eu
  35. PlanetScale vectors is now GA


    | planetscale.com
  36. Faster interpreters in Go: Catching up with C++


    | planetscale.com
  37. The Real Failure Rate of EBS


    | planetscale.com
  38. IO devices and latency


    | planetscale.com
  39. Announcing PlanetScale Metal


    | planetscale.com
  40. PlanetScale Metal: There’s no replacement for displacement


    | planetscale.com
  41. Upgrading Query Insights to Metal


    | planetscale.com
  42. Smile Like Zuck


    | eieio.games
  43. Monitoring JavaScript Bundle Size Changes in Remix


    | kettanaito.com
  44. A Million Little Secrets


    | joshwcomeau.com
  45. Running Pong in 240 Browser Tabs


    | eieio.games
  46. The truth about Effect


    | ethanniser.dev
  47. Profiling Node.js Applications


    | ethanniser.dev
  48. Mocking in Node.js Has Just Changed Forever


    | kettanaito.com
  49. The time I Broke my High School Mail Server


    | eieio.games
  50. Be Skeptical of All Code - Not Just the Funny Stuff


    | eieio.games
  51. THE GLOBAL CAPSLOCK KEY


    | eieio.games
  52. Container Queries Unleashed


    | joshwcomeau.com
  53. The NYC tech art games triangle


    | eieio.games
  54. 1Crossword: crosswords for your password manager


    | eieio.games
  55. Automating cherry-picks between OSS and private forks


    | planetscale.com
  56. Bad Apple but it's 6,500 regexes that I search for in vim


    | eieio.games
  57. Database Sharding


    | planetscale.com
  58. 2024 in Review


    | tkdodo.eu
  59. React Query - The Bad Parts


    | tkdodo.eu
  60. Build-time Open Graph Images in Remix


    | kettanaito.com
  61. Ref Callbacks, React 19 and the Compiler


    | tkdodo.eu
  62. Catching Flaky Tests Before It's Too Late


    | kettanaito.com
  63. My Slow Retreat from Twitter


    | tkdodo.eu
  64. Next-level frosted glass with backdrop-filter


    | joshwcomeau.com
  65. A Framework for Evaluating Browser Support


    | joshwcomeau.com
  66. Anatomy of a Throttler, part 3


    | planetscale.com
  67. Introducing sharding on PlanetScale with workflows


    | planetscale.com
  68. A Friendly Introduction to Container Queries


    | joshwcomeau.com
  69. Thirty Years and Counting


    | kettanaito.com
  70. Announcing Vitess 21


    | planetscale.com
  71. React Query API Design - Lessons Learned


    | tkdodo.eu
  72. AWS data center latencies, visualized


    | benjdd.com
  73. Announcing the PlanetScale vectors public beta


    | planetscale.com
  74. Anatomy of a Throttler, part 2


    | planetscale.com
  75. Deploying Laravel with SQLite on Dokku


    | maxschmitt.me
  76. How I Built My Blog


    | joshwcomeau.com
  77. Component Composition is great btw


    | tkdodo.eu
  78. Don't Sleep on AbortController


    | kettanaito.com
  79. How Infinite Queries work


    | tkdodo.eu
  80. The Undeniable Utility Of CSS :has


    | joshwcomeau.com
  81. B-trees and database indexes


    | planetscale.com
  82. Instant deploy requests


    | planetscale.com
  83. HTML Whitespace is Broken


    | blog.dwac.dev
  84. Anatomy of a Throttler, part 1


    | planetscale.com
  85. Increase IOPS and throughput with sharding


    | planetscale.com
  86. Tracking index usage with Insights


    | planetscale.com
  87. Zero downtime migrations at petabyte scale


    | planetscale.com
  88. Effect Best Practices


    | ethanniser.dev
  89. Introducing XState Store


    | tkdodo.eu
  90. Faster backups with sharding


    | planetscale.com
  91. Building data pipelines with Vitess


    | planetscale.com
  92. Please Stop Using Barrel Files


    | tkdodo.eu
  93. The State of Online Schema Migrations in MySQL


    | planetscale.com
  94. Optimizing aggregation in the Vitess query planner


    | planetscale.com
  95. Toasts are Bad UX


    | maxschmitt.me
  96. Dealing with large tables


    | planetscale.com
  97. Hello World


    | ethanniser.dev
  98. Sharding strategies: directory-based, range-based, and hash-based


    | planetscale.com
  99. Announcing Vitess 20


    | planetscale.com
  100. MySQL on a Raspberry Pi


    | benjdd.com
  101. React 19 and Suspense - A Drama in 3 Acts


    | tkdodo.eu
  102. Promises From The Ground Up


    | joshwcomeau.com
  103. Automatic Query Invalidation after Mutations


    | tkdodo.eu
  104. Self-managed Vitess vs Managed Vitess with PlanetScale


    | planetscale.com
  105. Snappy UI Optimization with useDeferredValue


    | joshwcomeau.com
  106. Why Patching Globals Is Harmful


    | kettanaito.com
  107. Achieving data consistency with the consistent lookup Vindex


    | planetscale.com
  108. The MySQL adaptive hash index


    | planetscale.com
  109. GitHub: How to get Notifications from Work Repositories to your Work Email


    | maxschmitt.me
  110. Introducing global replica credentials


    | planetscale.com
  111. CSS in React Server Components


    | joshwcomeau.com
  112. Displaying images in MySQL


    | benjdd.com
  113. Zustand and React Context


    | tkdodo.eu
  114. React Breakpoint Props: How Simple Components Become Complicated due to Server-Side Rendering


    | maxschmitt.me
  115. Profiling memory usage in MySQL


    | planetscale.com
  116. Summer 2023: Fuzzing Vitess at PlanetScale


    | planetscale.com
  117. How PlanetScale makes schema changes


    | planetscale.com
  118. Memory access patterns and performance


    | benjdd.com
  119. VS Code: 3 Ways to Navigate Long Test Files


    | maxschmitt.me
  120. Identifying and profiling problematic MySQL queries


    | planetscale.com
  121. Making Sense of TypeScript Generics


    | kettanaito.com
  122. Dokku: How to host Puppeteer + Node.js apps


    | maxschmitt.me
  123. The Problem with Using a UUID Primary Key in MySQL


    | planetscale.com
  124. Turn images into contour maps


    | benjdd.com
  125. Next.js: How to Mock Server-Side Requests Using Playwright


    | maxschmitt.me
  126. Stylized image binning algorithm


    | benjdd.com
  127. Announcing Vitess 19


    | planetscale.com
  128. Next.js: How to add a Contact Form (App Router)


    | maxschmitt.me
  129. PlanetScale forever


    | planetscale.com
  130. Next.js: How to add a Contact Form (Pages Router)


    | maxschmitt.me
  131. Introducing schema recommendations


    | planetscale.com
  132. Next.js, Sanity & TypeScript: A Setup That Works


    | maxschmitt.me
  133. Avoiding Hydration Mismatches with useSyncExternalStore


    | tkdodo.eu
  134. Foreign key constraints are now generally available


    | planetscale.com
  135. Sanity: How to Edit Documents as JSON


    | maxschmitt.me
  136. Amazon Aurora Pricing: The many surprising costs of running an Aurora database


    | planetscale.com
  137. How To Center a Div


    | joshwcomeau.com
  138. Three common MySQL database design mistakes


    | planetscale.com
  139. OAuth applications are now available to everyone


    | planetscale.com
  140. Deprecating the Scaler plan


    | planetscale.com
  141. PlanetScale branching vs. Amazon Aurora blue/green deployments


    | planetscale.com
  142. Databases at scale


    | planetscale.com
  143. Considerations for building a database disaster recovery plan


    | planetscale.com
  144. Working with Geospatial Features in MySQL


    | planetscale.com
  145. PlanetScale vs Amazon Aurora replication


    | planetscale.com
  146. Introducing the Vantage and PlanetScale integration


    | planetscale.com
  147. The Query Options API


    | tkdodo.eu
  148. MySQL isolation levels and how they work


    | planetscale.com
  149. The Difference Between Null and Undefined


    | kettanaito.com
  150. 2023 in Review


    | tkdodo.eu
  151. 2023 Year in Review


    | kettanaito.com
  152. Introducing the schemadiff command line tool


    | planetscale.com
  153. How a Cat Debugged Stable Diffusion


    | blog.dwac.dev
  154. $ pscale ping


    | planetscale.com
  155. Looking For a Job As an Open Source Maintainer


    | kettanaito.com
  156. Announcing foreign key constraints support


    | planetscale.com
  157. The challenges of supporting foreign key constraints


    | planetscale.com
  158. What is HTAP?


    | planetscale.com
  159. Introducing Insights Anomalies


    | planetscale.com
  160. An Interactive Guide to CSS Grid


    | joshwcomeau.com
  161. Webhook security: a hands-on guide


    | planetscale.com
  162. Three surprising benefits of sharding a MySQL database


    | planetscale.com
  163. MySQL replication: Best practices and considerations


    | planetscale.com
  164. A guide to HTML email with Ruby on Rails and Tailwind CSS


    | planetscale.com
  165. Sharding for cost-effective database management


    | planetscale.com
  166. PlanetScale ranks 188th in Deloitte’s top 500 fastest-growing companies


    | planetscale.com
  167. Announcing Vitess 18


    | planetscale.com
  168. Why You Want React Query


    | tkdodo.eu
  169. Announcing the Fivetran integration


    | planetscale.com
  170. Introducing webhooks


    | planetscale.com
  171. How Plausible Analytics Keeps a Tiny (< 1KB) Tracking Script


    | maxschmitt.me
  172. What is MySQL replication and when should you use it?


    | planetscale.com
  173. How to fix Sanity Error: Uncaught error - Could not resolve jsonType of undefined. No parent type found


    | maxschmitt.me
  174. Sync user data between Clerk and a PlanetScale MySQL database


    | planetscale.com
  175. Introducing database reports


    | planetscale.com
  176. Why Fetch Promise Doesn't Reject on Error Responses


    | kettanaito.com
  177. Distributed caching systems and MySQL


    | planetscale.com
  178. What is MySQL partitioning?


    | planetscale.com
  179. MySQL High Availability: Connection handling and concurrency


    | planetscale.com
  180. Personalizing your onboarding with Markdoc


    | planetscale.com
  181. PlanetScale vs. Amazon Aurora


    | planetscale.com
  182. PlanetScale vs. Amazon RDS


    | planetscale.com
  183. PlanetScale is bringing vector search and storage to MySQL


    | planetscale.com
  184. PlanetScale Managed is now PCI compliant


    | planetscale.com
  185. The Uphill Battle of Memoization


    | tkdodo.eu
  186. How to Scale your Database and when to Shard MySQL


    | planetscale.com
  187. Scaling hundreds of thousands of database clusters on Kubernetes


    | planetscale.com
  188. Next.js: The Easiest Way to Create an API Proxy (2023)


    | maxschmitt.me
  189. The art and science of database sharding


    | planetscale.com
  190. Understanding the JavaScript Modulo Operator


    | joshwcomeau.com
  191. One Thing Nobody Explained To You About TypeScript


    | kettanaito.com
  192. Streamline database management using the PlanetScale Netlify integration


    | planetscale.com
  193. Emulating foreign key constraints with Drizzle relationships


    | planetscale.com
  194. Making Sense of React Server Components


    | joshwcomeau.com
  195. Horizontal sharding for MySQL made easy


    | planetscale.com
  196. Deploying multiple schema changes at once


    | planetscale.com
  197. Debugging Like A Pro-xy


    | kettanaito.com
  198. What makes up a PlanetScale Vitess database?


    | planetscale.com
  199. Vitess for us all


    | planetscale.com
  200. Array Types in TypeScript


    | tkdodo.eu
  201. Contentful: How to Find Unused Types


    | maxschmitt.me
  202. Introducing IP restrictions


    | planetscale.com
  203. Storing time series data in sharded MySQL to power Query Insights


    | planetscale.com
  204. Is your database bleeding money?


    | planetscale.com
  205. How PlanetScale unlocks developer productivity


    | planetscale.com
  206. React Query and React Context


    | tkdodo.eu
  207. Incorporating databases into your CI/CD pipeline


    | planetscale.com
  208. Performant database tree traversal with Rails


    | planetscale.com
  209. Next.js: How to Get and Set Cookies (2023)


    | maxschmitt.me
  210. Announcing PlanetScale Scaler Pro


    | planetscale.com
  211. Sharding vs. partitioning: What’s the difference?


    | planetscale.com
  212. Introduction to PlanetScale


    | planetscale.com
  213. How PlanetScale keeps your data safe


    | planetscale.com
  214. Announcing Vitess 17


    | planetscale.com
  215. Action on your product data in real time


    | planetscale.com
  216. Datetimes versus timestamps in MySQL


    | planetscale.com
  217. Generated Hash Columns in MySQL


    | planetscale.com
  218. Using PlanetScale with Serverless Framework Node applications on AWS


    | planetscale.com
  219. PlanetScale joins AWS ISV Accelerate


    | planetscale.com
  220. Announcing the Hightouch integration


    | planetscale.com
  221. Using redundant conditions to unlock indexes in MySQL


    | planetscale.com
  222. Thinking in React Query


    | tkdodo.eu
  223. Animated Pride Flags


    | joshwcomeau.com
  224. Optimizing query planning in Vitess: a step-by-step approach


    | planetscale.com
  225. Pulling back the curtain: the new database overview page


    | planetscale.com
  226. Increase developer productivity with Database DevOps


    | planetscale.com
  227. A Free Remote Pair Programming Solution


    | maxschmitt.me
  228. PlanetScale is now available on the Google Cloud Marketplace


    | planetscale.com
  229. How Much Memory Do You Need to Run 1 Million Concurrent Tasks?


    | pkolaczk.github.io
  230. You Might Not Need React Query


    | tkdodo.eu
  231. Character sets and collations in MySQL


    | planetscale.com
  232. Integrate Cloudflare Workers with PlanetScale


    | planetscale.com
  233. MariaDB vs. MySQL


    | planetscale.com
  234. Next.js: How to Show the 404 Page (App Router)


    | maxschmitt.me
  235. Next.js: Integrating Contentful and TypeScript (App Router)


    | maxschmitt.me
  236. My Struggle With Remix


    | kettanaito.com
  237. Backward compatible database changes


    | planetscale.com
  238. Why isn’t MySQL using my index?


    | planetscale.com
  239. Serverless Laravel applications with AWS Lambda and PlanetScale


    | planetscale.com
  240. Database branching: three-way merge for schema changes


    | planetscale.com
  241. The “const” Deception


    | joshwcomeau.com
  242. Query performance analysis with Insights


    | planetscale.com
  243. MySQL for application developers


    | planetscale.com
  244. Pagination in MySQL


    | planetscale.com
  245. Breaking React Query's API on purpose


    | tkdodo.eu
  246. Safely making database schema changes


    | planetscale.com
  247. What is database sharding and how does it work?


    | planetscale.com
  248. An update to our workflow: safe migrations


    | planetscale.com
  249. Declarative schema migrations


    | planetscale.com
  250. Versioned schema migrations


    | planetscale.com
  251. A Total Mess Behind GitHub Accelerator


    | kettanaito.com
  252. Announcing the PlanetScale GitHub Actions


    | planetscale.com
  253. Building SaaS applications with PlanetScale + Netlify


    | planetscale.com
  254. How to read MySQL EXPLAINs


    | planetscale.com
  255. Connection pooling in Vitess


    | planetscale.com
  256. How to Upgrade from MySQL 5.7 to 8.0


    | planetscale.com