Sergio Xalambrí

Sergio Xalambrí

Web Developer from Buenos Aires with 10+ years of experience. I work at Daffy and maintain several open-source libraries around React Router and OAuth2.

Subscribe to my content using RSS.

Activity

  1. 🔖

    I saved No Meat Proxy

  2. 🛠️

    I published how to Make Regional HTTP Requests with Durable Objects

  3. 🛠️

    I published how to Add URL Normalization Middleware in React Router

  4. 🛠️

    I published how to Think in Remix UI Instead of React

  5. 🛠️

    I published how to Hydrate Isolated UI with Remix Client Entries

  6. 📝

    I wrote about Multi-Entry Package Architecture

  7. 📝

    I wrote about Structuring a Bun Monorepo with Shared Packages

  8. 🛠️

    I published how to Create Animated Tab Indicators with CSS Variables

  9. 📝

    I wrote about Compound Component Pattern in React

  10. 📝

    I wrote about Building Accessible UI with React Aria Components

  11. 🛠️

    I published how to Create a Copy Button for Code Blocks

  12. 🛠️

    I published how to Build a Type-Safe Markdown Pipeline with Markdoc

  13. 🛠️

    I published how to Use waitUntil for Non-Blocking Cache Writes

  14. 🛠️

    I published how to Build a Cache Abstraction for Cloudflare KV

  15. 🛠️

    I published how to Use Client Hints for Server-Side Timezone Rendering

  16. 🛠️

    I published how to Add a Global Hotkey to a Remix UI Dialog

  17. 🔖

    I saved Render JSX to images.Skip the browser.

  18. 🛠️

    I published how to Build a Command-Driven Markdown Toolbar in React

  19. 🛠️

    I published how to Handle Custom Invoker Commands in React

  20. 🛠️

    I published how to Build a User Menu in React with Invoker Popover Commands

  21. 🛠️

    I published how to Prevent a Modal Dialog from Closing with request-close in React

  22. 🛠️

    I published how to Open a Modal Dialog in React with the Invoker Commands API

  23. 🔖

    I saved Ship the policy, not the code

  24. 🔖

    I saved The Field Guide to Grid Lanes

  25. 🔖

    I saved The Best Loading States Are No Loading States

  26. 🔖

    I saved How's Linear so fast? A technical breakdown

  27. 🛠️

    I published how to Use an `iife` Helper for Inline Control Flow in TypeScript

  28. 📝

    I wrote about How AI is Industrializing Software Engineering

  29. 🛠️

    I published how to Cancel `useFetcher().load()` Requests on Unmount in React Router

  30. 🔖

    I saved The Boring Internet

  31. 🔖

    I saved When life gives you lemons, write better error messages

  32. 🔖

    I saved Accept: text/markdown

  33. 🔖

    I saved Domain structure for SaaS products

  34. 🔖

    I saved The Vertical Codebase

  35. 🔖

    I saved Details that make interfaces feel better

  36. 🔖

    I saved Expand your hit areas

  37. 🔖

    I saved Nobody Gets Promoted for Simplicity

  38. 🔖

    I saved Why I don't use down migrations

  39. 🔖

    I saved How we enabled Content Security Policy for everyone

  40. 📘

    I added the definition of RESTful

  41. 📘

    I added the definition of MIME Type

  42. 📘

    I added the definition of Same-Origin Policy

  43. 📘

    I added the definition of CORS

  44. 📘

    I added the definition of Bearer Token

  45. 📘

    I added the definition of OIDC

  46. 📘

    I added the definition of OAuth2

  47. 📘

    I added the definition of GraphQL

  48. 📘

    I added the definition of REST

  49. 📘

    I added the definition of XML

  50. 📘

    I added the definition of JSON

  51. 📘

    I added the definition of TLS

  52. 📘

    I added the definition of TCP

  53. 📘

    I added the definition of IP

  54. 📘

    I added the definition of URI

  55. 📘

    I added the definition of URL

  56. 📘

    I added the definition of DNS

  57. 📘

    I added the definition of FTP

  58. 📘

    I added the definition of CSS

  59. 📘

    I added the definition of HTML

  60. 📘

    I added the definition of HTTPS

  61. 📘

    I added the definition of HTTP

  62. 📘

    I added the definition of WSS

  63. 📘

    I added the definition of Web API

  64. 📘

    I added the definition of Static Assets

  65. 📘

    I added the definition of Routing

  66. 📘

    I added the definition of Rendering

  67. 📘

    I added the definition of SSE

  68. 📘

    I added the definition of WebSockets

  69. 📘

    I added the definition of Idempotency

  70. 📘

    I added the definition of CDN

  71. 📘

    I added the definition of Caching

  72. 📘

    I added the definition of Rate Limiting

  73. 📘

    I added the definition of Webhooks

  74. 📘

    I added the definition of Edge Runtime

  75. 📘

    I added the definition of RSC

  76. 📘

    I added the definition of Optimistic UI

  77. 📘

    I added the definition of Progressive Enhancement

  78. 📘

    I added the definition of PKCE

  79. 📘

    I added the definition of Resource Server

  80. 📘

    I added the definition of Authorization Server

  81. 📘

    I added the definition of Refresh Token

  82. 📘

    I added the definition of Access Token

  83. 📘

    I added the definition of JWKS

  84. 📘

    I added the definition of JWK

  85. 📘

    I added the definition of JWT

  86. 📘

    I added the definition of API Gateway

  87. 📘

    I added the definition of Edge Functions

  88. 📘

    I added the definition of Serverless

  89. 📘

    I added the definition of Microservices

  90. 📘

    I added the definition of Monolith

  91. 📘

    I added the definition of BFF

  92. 📘

    I added the definition of Edge Rendering

  93. 📘

    I added the definition of Streaming SSR

  94. 📘

    I added the definition of Islands Architecture

  95. 📘

    I added the definition of Partial Hydration

  96. 📘

    I added the definition of Hydration

  97. 🛠️

    I published how to Access React Router Context with AsyncLocalStorage

  98. 🔖

    I saved Hire managers of one

  99. 🛠️

    I published how to Create a Per-Request Database Instance with Middleware

  100. 🛠️

    I published how to Create a Multi-Directory Route Organization in React Router

  101. 🛠️

    I published how to Use Sec-Fetch Headers for CSRF Protection

  102. 🔖

    I saved SQLite-on-the-Server Is Misunderstood: Better At Hyper-Scale Than Micro-Scale

  103. 📝

    I wrote about Using React Router Loaders and Actions as Integration Points

  104. 🔖

    I saved The Too Early Breakpoint

  105. 🔖

    I saved More invoker commands, and more reasons not to use JavaScript please

  106. 🔖

    I saved sergiodxa/agent-skills

  107. 🔖

    I saved The Incredible Overcomplexity of the Shadcn Radio Button

  108. 🔖

    I saved Affordances: The Missing Layer in Frontend Architecture

  109. 🔖

    I saved Confirmation dialogs with zero JavaScript

  110. 🔖

    I saved Stylish dialogs

  111. 🔖

    I saved Logging Sucks - Your Logs Are Lying To You

  112. 🔖

    I saved Micro-libraries need to die already

  113. 🔖

    I saved The stacking workflow

  114. 🔖

    I saved Composition Is All You Need by Fernando Rojo at React Universe Conf 2025

  115. 🔖

    I saved Tips for good UI implementation

  116. 🛠️

    I published how to Dedupe Server Calls with Remix Utils Batcher

  117. 🛠️

    I published how to Transform FormData Between UI and Database in React Router

  118. 🔖

    I saved The Perils of Reactivity

  119. 📝

    I wrote about How MVC, MVT, MVVM, and Components Shape Web Development

  120. 🛠️

    I published how to Build a Nested Master-Detail View with Redirects in React Router

  121. 🛠️

    I published how to Stream Shared Promise Results in React Router

  122. 🔖

    I saved No, you don't want to hire "the best engineers'

  123. 🛠️

    I published how to Redirect Based on Screen Size in React Router

  124. 🛠️

    I published how to Avoid Waterfalls in React Suspense

  125. 🛠️

    I published how to Render Loader Promises with Suspense in React Router

  126. 🛠️

    I published how to Create Reusable Action Routes in React Router

  127. 🔖

    I saved Prefer Gaps To Margins

  128. 🔖

    I saved Syntax Highlighting code snippets with Prism and the Custom Highlight API

  129. 🔖

    I saved Resilient Import Maps - Better Theme Development and Beyond

  130. 🔖

    I saved Toasts are Bad UX

  131. 🔖

    I saved The XY Problem

  132. 🔖

    I saved Don't ask to ask, just ask

  133. 🔖

    I saved no hello

  134. 🔖

    I saved never just

  135. 🛠️

    I published how to Add a Cookie-Based Color Scheme Toggle in React Router

  136. 🔖

    I saved JSX Over The Wire

  137. 🔖

    I saved The Back-end for Front-end Pattern (BFF)

  138. 🛠️

    I published how to Debounce Loaders and Actions in React Router

  139. 🛠️

    I published how to Authenticate OAuth2 Clients with client_id and client_secret

  140. 🛠️

    I published how to Use the OAuth2 Introspection Endpoint

  141. 🛠️

    I published how to Revoke OAuth 2.0 Refresh Tokens via the Revocation Endpoint

  142. 🛠️

    I published how to Protect OAuth 2.0 Authorization Code Flow with PKCE

  143. 🛠️

    I published how to Add Custom Claims to JWT Access Tokens Safely

  144. 🛠️

    I published how to Validate JWT Expiration, Issued-At, and Not-Before Claims

  145. 🛠️

    I published how to Use OAuth 2.0 Scopes to Authorize API Actions

  146. 🛠️

    I published how to Validate JWTs with JWKS

  147. 📝

    I wrote about JWT Claims in OAuth2 Access Tokens

  148. 📝

    I wrote about OAuth2 Scopes Explained

  149. 🛠️

    I published how to Create a Per-Request Singleton with React Router Middleware

  150. 🛠️

    I published how to Test React Router Middleware with Bun Test

  151. 📝

    I wrote about OAuth2 Tokens Explained

  152. 📝

    I wrote about OAuth2 Audience Explained

  153. 📝

    I wrote about JWT vs. Opaque Tokens

  154. 🛠️

    I published how to Enable and use middleware in React Router 7.3

  155. 🔖

    I saved Maybe don't navigate(-1) in Remix/React Router

  156. 📝

    I wrote about Using OAuth2 in a Backend for Frontend

  157. 🛠️

    I published how to Show a 404 in React Router

  158. 🔖

    I saved Class methods are Ruby’s useEffect

  159. 🔖

    I saved What I learned at Campsite

  160. 📝

    I wrote about Throwing vs. Returning Redirects in React Router

  161. 🛠️

    I published how to Trigger File Downloads from React Router Loaders and Actions

  162. 🔖

    I saved How I Stay Sane Implementing Stripe

  163. 🔖

    I saved Domain driven boldness

  164. 🔖

    I saved Good concerns

  165. 🔖

    I saved Vanilla Rails is plenty

  166. 🔖

    I saved Active Record, nice and blended

  167. 🔖

    I saved Globals, callbacks and other sacrileges

  168. 🛠️

    I published how to Use Bullet to Detect N+1 Queries in Rails

  169. 🛠️

    I published how to Convert Markdown to PDF and ePub with Pandoc

  170. 🛠️

    I published how to Serve User-Specific Stylesheets in React Router

  171. 🛠️

    I published how to Split a React Router Route Config across Multiple Files

  172. 🛠️

    I published how to Configure the tracking branch in Git

  173. 🛠️

    I published how to Reuse route modules in React Router

  174. 🔖

    I saved Stop just using “Frontend” or “Backend” to describe the Engineering you like

  175. 🛠️

    I published how to Populate Your Rails Database with Fixtures

  176. 🔖

    I saved You Can't Not Have a Framework

  177. 🔖

    I saved This doesn't warrant a blog post

  178. 🔖

    I saved Because I wanted to

  179. 📝

    I wrote about Making Web Component good enough

  180. 🔖

    I saved Layered Architectures with Laravel

  181. 🔖

    I saved Don't Sleep on AbortController

  182. 🛠️

    I published how to Stub a method in a class with Minitest

  183. 🛠️

    I published how to Show toast after a Remix action

  184. 🔖

    I saved Building a Proper REST API

  185. 🔖

    I saved How I would do auth

  186. 🛠️

    I published how to Simplify Component Imports with TypeScript Namespaces

  187. 🔖

    I saved Card Stack

  188. 🔖

    I saved Counterscale and the New Self-Hosted

  189. 📝

    I wrote about Why Frontend and Backend Are About Responsibilities, Not Languages

  190. 🛠️

    I published how to Validate a Form in Remix with clientAction

  191. 🛠️

    I published how to Generate a Cloudflare Environment Type with wrangler

  192. 🛠️

    I published how to Configure Scoped Private Packages in Bun

  193. 📝

    I wrote about When to use Route Modal in React Router

  194. 🔖

    I saved Deconstructing the Monolith: Designing Software that Maximizes Developer Productivity

  195. 🔖

    I saved Ultimate guide to multi-tenant SaaS data modeling

  196. 🔖

    I saved Migrating from Radix to React Aria: Improving Accessibility and UX

  197. 🔖

    I saved Creating a pointer-friendly submenu experience

  198. 🔖

    I saved Building like it's 1984: A comprehensive guide to creating intuitive context menus

  199. 🔖

    I saved Building future facing frontend architectures

  200. 🔖

    I saved Navigating the future of frontend

  201. 🛠️

    I published how to Use package.json#bin to create a CLI

  202. 🔖

    I saved Margin considered harmful

  203. 🔖

    I saved In Loving Memory of Square Checkbox

  204. 🛠️

    I published how to Access location.state in Remix Client Loaders and Actions

  205. 🔖

    I saved The Copenhagen Book

  206. 🛠️

    I published how to Add Internationalization with remix-i18next to a Remix Vite App

  207. 🔖

    I saved Documenting Architecture Decisions

  208. 🛠️

    I published how to Autoload the Correct Node.js Version with NVM

  209. 📘

    I added the definition of HDR

  210. 📘

    I added the definition of HMR

  211. 📘

    I added the definition of PPR

  212. 📘

    I added the definition of ISR

  213. 📘

    I added the definition of SSG

  214. 📘

    I added the definition of PESPA

  215. 📘

    I added the definition of PEMPA

  216. 🛠️

    I published how to Nest Routes with Dynamic Params in Remix

  217. 🛠️

    I published how to Build Register, Login, and Logout Flows with Remix Sessions

  218. 🛠️

    I published how to Access React Router's loader data from a route ErrorBoundary

  219. 🛠️

    I published how to Access React Router's Loaders Data in entry.client

  220. 🛠️

    I published how to Handle not found URLs with Remix

  221. 🛠️

    I published how to Persist the User Locale Using Cookies with React Router and i18next

  222. 🛠️

    I published how to Add dynamic canonical URL to Remix routes

  223. 🔖

    I saved Parallelized Decision Making

  224. 🛠️

    I published how to Add custom attributes to Markdoc code fences

  225. 🛠️

    I published how to Enable Remix ~/ aliased imports in Vitest

  226. 📘

    I added the definition of API

  227. 📘

    I added the definition of MPA

  228. 📘

    I added the definition of SPA

  229. 📘

    I added the definition of CSR

  230. 📘

    I added the definition of SSR

  231. 🛠️

    I published how to Add syntax highlight to Markdoc using Prism.js

  232. 🛠️

    I published how to Create a CRUD with Remix

  233. 🔖

    I saved I miss RSS

  234. 🔖

    I saved RSC is React Server + Component | bobae kang

  235. 🛠️

    I published how to Pass Cookies from a React Router Loader to an External API

  236. 🛠️

    I published how to Call an action from a loader in Remix

  237. 🛠️

    I published how to Use React Portal in Remix

  238. 🛠️

    I published how to Prevent the React Router Loader to Run after Document Request

  239. 🔖

    I saved Passkey-Based Auth in Remix (feat. Alex Anderson) - YouTube

  240. 🔖

    I saved Remix Movies: build a movie browser with Remix - YouTube

  241. 🔖

    I saved Trellix: build a Trello clone using Remix - YouTube

  242. 🛠️

    I published how to Defer a Fetch response in Remix

  243. 🛠️

    I published how to Use a CDN for your static assets in Remix

  244. 🛠️

    I published how to Get the absolute URL in Remix's MetaFunction

  245. 🛠️

    I published how to Build an app with Remix and Bun

  246. 🔖

    I saved Designing better target sizes

  247. 🛠️

    I published how to Find and remove unused code with Knip

  248. 🛠️

    I published how to Create multiple top-level layouts in Remix

  249. 🔖

    I saved Kind of annoyed at React

  250. 🔖

    I saved Increasingly miffed about the state of React releases

  251. 🔖

    I saved The Website vs. Web App Dichotomy Does Not Exist

  252. 🛠️

    I published how to Test meta tags using Playwright

  253. 🔖

    I saved gilest.org: Make the indie web easier

  254. 🔖

    I saved Why Fetch Promise Does Not Reject on Error Responses

  255. 🔖

    I saved A Well-Known Links Resource - Jim Nielsen’s Blog

  256. 🔖

    I saved The OG Social Network: Other People’s Websites - Jim Nielsen’s Blog

  257. 🔖

    I saved Rationale for a Browser-Level Color Scheme Preference - Jim Nielsen’s Blog

  258. 🔖

    I saved A Well Known URL For Your Personal Avatar - Jim Nielsen’s Blog

  259. 🔖

    I saved React Aria

  260. 🔖

    I saved Stop Lying to Your Users | Epic Web Dev by Kent C. Dodds

  261. 🛠️

    I published how to Prefetch data for Remix Fetcher usage

  262. 🛠️

    I published how to Keep Your Loader Data Fresh in Remix

  263. 🛠️

    I published how to Share Remix Route Logic between Web and API Routes

  264. 🛠️

    I published how to Access the Search Params of a Request in React Router

  265. 🛠️

    I published how to Upload Images in a Remix Application

  266. 🛠️

    I published how to Redirect with Search Param in Remix

  267. 🛠️

    I published how to Access the Loader Data in Remix

  268. 🛠️

    I published how to Abort Async Calls Inside Remix Loaders and Actions

  269. 🛠️

    I published how to Get Remix route params `entry.server`

  270. 🛠️

    I published how to Test meta tags with Cypress

  271. 🔖

    I saved Challenging Established Norms: Making Component Fetching the Exception

  272. 🔖

    I saved Be the browser’s mentor, not its micromanager

  273. 🔖

    I saved The ideal viewport doesn’t exist

  274. 🔖

    I saved My thoughts on open-source

  275. 🛠️

    I published how to Strongly type Remix route IDs

  276. 🛠️

    I published how to Strongly type public assets in Remix

  277. 🛠️

    I published how to Create a reusable Form component in Remix

  278. 🛠️

    I published how to Sync text input with URLSearchParam in Remix

  279. 🔖

    I saved Social RSS

  280. 🔖

    I saved The fediverse and the indieweb

  281. 🔖

    I saved Blogging as DRY

  282. 🔖

    I saved Everything You Can Test In Your Laravel Application

  283. 🔖

    I saved Dear Open Source: let’s do a better job of asking for money

  284. 🔖

    I saved Don't make me think, or why I switched to Rails from JavaScript SPAs

  285. 🔖

    I saved Generating income from open source

  286. 🛠️

    I published how to Use TanStack Query to Share Data between React Router Loaders

  287. 🛠️

    I published how to Logout from Auth0 with Remix Auth

  288. 🛠️

    I published how to Send Node.js ReadStream objects from Remix loaders

  289. 🛠️

    I published how to Reset a form on success in Remix

  290. 🛠️

    I published how to Use `qs.parse` to use nested form fields in Remix

  291. 🛠️

    I published how to Send JSON to a Remix action

  292. 🛠️

    I published how to Set Multiple Cookies in the Same Response in React Router Loaders

  293. 🛠️

    I published how to Close SSE connection from the server in Remix

  294. 🛠️

    I published how to Measure performance with the Server-Timing header in React Router

  295. 🛠️

    I published how to Automatically commit sessions on Remix

  296. 🛠️

    I published how to Customize Remix AppLoadContext type

  297. 🔖

    I saved Client-side JavaScript and React criticism: What comes next?

  298. 🛠️

    I published how to Turn on Caps Lock on Cypress

  299. 🔖

    I saved Fast and maintainable patterns for fetching from a database

  300. 🛠️

    I published how to Delete a Cookie using Remix cookie helpers

  301. 🛠️

    I published how to Add runtime SSG and ISR to Remix

  302. 🛠️

    I published how to Improve SEO by not sending JS in Remix

  303. 🛠️

    I published how to Use AMP with Remix

  304. 🛠️

    I published how to Use Remix as a SPA only

  305. 🔖

    I saved A Theory of Web Relativity

  306. 🛠️

    I published how to Downgrade to MPA if Users Prefer Reduced Data in React Router

  307. 🛠️

    I published how to Add rolling sessions to Remix

  308. 🛠️

    I published how to Use Server-Sent Events with Remix

  309. 🛠️

    I published how to Progressively Enhance the useFetcher Hook in React Router

  310. 🛠️

    I published how to Use `process.env` client-side with Remix

  311. 🛠️

    I published how to Persist inputs after a form submit in Remix

  312. 🔖

    I saved Streaming: is it worth it?

  313. 🔖

    I saved Prioritise content over components

  314. 📝

    I wrote about Throwing Vs. Returning Responses in Remix Loaders and Actions

  315. 🛠️

    I published how to Lazy-load React components in Remix

  316. 🔖

    I saved Overcoming Popular Issues With React Projects

  317. 🔖

    I saved 💿 remix simplifies things

  318. 🔖

    I saved Progressively enhance for a more resilient web

  319. 🔖

    I saved Get in Zoomer, We're Saving React

  320. 📝

    I wrote about Reusing Remix Routes for Optional Segments

  321. 🛠️

    I published how to Destroy User Session and While Setting a Flash Message in React Router

  322. 🛠️

    I published how to Add additional data before submitting on Remix

  323. 🛠️

    I published how to Redirect to an external website with Remix

  324. 🛠️

    I published how to Bubble up data on Remix routes

  325. 🛠️

    I published how to Group related routes together in Remix

  326. 🔖

    I saved What if your Index Page was Smart?

  327. 🔖

    I saved Building websites for Safari Reader Mode and other reading apps

  328. 🔖

    I saved How to Section Your HTML

  329. 🔖

    I saved Block Links: The Search for a Perfect Solution

  330. 🛠️

    I published how to Parse Markdown with Markdoc in Remix

  331. 📝

    I wrote about Dependency injection in Remix loaders and actions

  332. 📝

    I wrote about Validating Environment Variables with Zod

  333. 🔖

    I saved Debug your server-side Remix code using VSCode

  334. 🔖

    I saved RSS

  335. 📝

    I wrote about Handling Refresh Tokens in Remix Loaders and Actions

  336. 🔖

    I saved Device-Agnostic

  337. 📝

    I wrote about E2E Testing Remix with Vitest and Puppeteer

  338. 🛠️

    I published how to Optimize image loading with plain HTML

  339. 🔖

    I saved Using rel=preload for responsive images

  340. 📝

    I wrote about Multiple forms per route in Remix

  341. 🔖

    I saved How to avoid layout shifts caused by web fonts

  342. 🔖

    I saved “Guys, we’re doing pagination wrong…”

  343. 🔖

    I saved Why Remix doesn’t infer types from loaders for useLoaderData

  344. 🛠️

    I published how to Add returnTo behavior to Remix Auth

  345. 🔖

    I saved Survivorship Bias in Web Performance

  346. 📝

    I wrote about Building a Command Palette with Remix and Tailwind UI

  347. 🛠️

    I published how to Share session and cookies between Next and Remix

  348. 🛠️

    I published how to Fix double data request when prefetching in Remix

  349. 🔖

    I saved The "best" way to manage icons in React.js

  350. 🛠️

    I published how to Run Tailwind and Remix in Parallel with PM2

  351. 🛠️

    I published how to Use Remix with socket.io

  352. 🛠️

    I published how to Generate a PDF in Remix with Resource Routes

  353. 🛠️

    I published how to Avoid waterfalls of queries in Remix loaders

  354. 🛠️

    I published how to Run Next and Remix on the same server

  355. 📝

    I wrote about HTTP vs. Server-side Cache in Remix

  356. 📝

    I wrote about Clase rápida de programación asíncrona

  357. 📝

    I wrote about On-Demand Hydration in Remix

  358. 🔖

    I saved Live validation is problematic

  359. 🔖

    I saved Stop building client-side forms

  360. 📝

    I wrote about Loader vs Route Cache Headers in Remix

  361. 📝

    I wrote about The useMatches hook in Remix

  362. 📝

    I wrote about Validating Remix forms with Constraints API

  363. 🛠️

    I published how to Test Remix loaders and actions

  364. 🛠️

    I published how to Use NProgress in a Remix app

  365. 📝

    I wrote about Result Objects in TS

  366. 📝

    I wrote about Dark Mode and Dark Context

  367. 🔖

    I saved Why Decentralization Isn't as Important as You Think

  368. 🔖

    I saved When You Stop Counting

  369. 🔖

    I saved Why I Quit Google to Work for Myself

  370. 🛠️

    I published how to Use Fathom with Remix

  371. 🔖

    I saved Don’t Build A General Purpose API To Power Your Own Front End

  372. 🔖

    I saved Why You Should Never Use MongoDB

  373. 🔖

    I saved A Case For Use Cases

  374. 🛠️

    I published how to Fix `gyp: No Xcode or CLT version detected!` error

  375. 🛠️

    I published how to Use Dependabot to keep Remix up-to-date

  376. 📝

    I wrote about Automatic Revalidation in Remix

  377. 🔖

    I saved People read on the web

  378. 🔖

    I saved Why we use progressive enhancement to build GOV.UK

  379. 🔖

    I saved Building a resilient frontend using progressive enhancement

  380. 🔖

    I saved I Want To Confirm a Prompt That We Stay Alert

  381. 🔖

    I saved Browsers and Representation

  382. 🔖

    I saved Google vs. the web

  383. 🔖

    I saved Back to the Bad Old Days of the Web

  384. 🔖

    I saved The Mythical Document Web

  385. 🔖

    I saved Breaking the web forward

  386. 🔖

    I saved Back to the Future with RSS

  387. 🔖

    I saved Client-Side Architecture Basics

  388. 🔖

    I saved Organizing App Logic with the Clean Architecture

  389. 🔖

    I saved Implementing DTOs, Mappers and the Repository Pattern

  390. 🔖

    I saved Screaming Architecture

  391. 🔖

    I saved Better Software Design with Application Layer Use Cases

  392. 🔖

    I saved Anemic Domain Model

  393. 🔖

    I saved Value Objects - DDD w/ TypeScript

  394. 🔖

    I saved iOS 15, Humane

  395. 🔖

    I saved Don't overabstract your components

  396. 📝

    I wrote about Creating a PDF with React in the Browser

  397. 🔖

    I saved Meta Theme Color and Trickery

  398. 📝

    I wrote about Sending data from layout to leaf routes in Remix

  399. 📝

    I wrote about Caching Remix Assets and Locales with a Service Worker

  400. 📝

    I wrote about Localizing Remix apps with i18next

  401. 📝

    I wrote about Adding CSRF protection to Remix

  402. 🛠️

    I published how to Load only the data you need in Remix

  403. 📝

    I wrote about Implementing Auth0 Login in Remix without Express

  404. 📝

    I wrote about Using TailwindCSS with Remix

  405. 🛠️

    I published how to Use ETags in Remix

  406. 📝

    I wrote about Jest Matchers for Remix responses

  407. 📝

    I wrote about Using Form Objects inside Remix actions

  408. 📝

    I wrote about Route protection in Remix with Policies

  409. 🛠️

    I published how to Redirect to the original URL inside a Remix action

  410. 🛠️

    I published how to Read search params with JS

  411. 🛠️

    I published how to Use ActiveModel::Serializer with non ActiveRecord object

  412. 🛠️

    I published how to Serialize list of items with ActiveModel::Serializer

  413. 🛠️

    I published how to Use serializers with JSON.stringify and JSON.parse

  414. 🛠️

    I published how to Force a locale in Rails I18n from the params

  415. 📝

    I wrote about Que es un bundler de JS

  416. 📝

    I wrote about Remix vs Next.js Comparison

  417. 🔖

    I saved Imagining native skip links

  418. 🛠️

    I published how to Add missing `created_at` and `updated_at` columns in Rails

  419. 🔖

    I saved Rails design patterns - The big picture

  420. 📝

    I wrote about How to rename a column in a Rails migration

  421. 🔖

    I saved Before You memo()

  422. 📝

    I wrote about Usar variables de entorno en Next.js

  423. 🔖

    I saved Implement a Skip Link for Navigation-Heavy Sites

  424. 🔖

    I saved Meaningful Motion with Action-Driven Animation

  425. 🔖

    I saved An Interactive Guide to CSS Transitions

  426. 🛠️

    I published how to Build your own RSS Reader

  427. 🛠️

    I published how to Keep Heading Levels Consistent with React Context

  428. 🔖

    I saved Preload: What Is It Good For?

  429. 🔖

    I saved The unreasonable effectiveness of simple HTML

  430. 🔖

    I saved Open Peeps

  431. 🔖

    I saved System Design 101

  432. 🔖

    I saved A primer on investing for designers and developers

  433. 📝

    I wrote about About

  434. 🔖

    I saved In Critical Defense of Frontend Develop

  435. 🔖

    I saved Be Wary of Nesting Roles

  436. 🔖

    I saved Accessible SVGs

  437. 📝

    I wrote about ¿Qué son Server Components de React y cómo se relacionan con SSR/SSG/ISR?

  438. 📝

    I wrote about 🔥 Pro Tip: Name your useEffect functions

  439. 🔖

    I saved dotCSS 2019 - Sarah Dayan - In Defense of Utility-First CSS

  440. 🔖

    I saved Alt-texts: The Ultimate Guide

  441. 🔖

    I saved Polymorphic React Components in TypeScript

  442. 🔖

    I saved CSS and Scalability

  443. 📝

    I wrote about Using MDX with Remote Content

  444. 🔖

    I saved The UI and UX Tips Collection: Volume One.

  445. 🔖

    I saved Practical React Query

  446. 🛠️

    I published how to Use TailwindCSS Typography with Dark Mode Styles

  447. 🔖

    I saved Don't design for mobile

  448. 🔖

    I saved Stop Using “Drop-down”

  449. 🔖

    I saved Decoupling, Architecture and Teams

  450. 🔖

    I saved The Lava Layer Anti-Pattern

  451. 🔖

    I saved UI as an afterthought

  452. 📝

    I wrote about Todo lo que sé de SWR

  453. 🔖

    I saved In 2020, what is "frontend" 🤨

  454. 🔖

    I saved How React Query gives you almost everything you thought you needed GraphQL for

  455. 🔖

    I saved Wormhole state management

  456. 🔖

    I saved Todo el software está roto

  457. 🔖

    I saved What is the Value of Browser Diversity?

  458. 🔖

    I saved Margins and Composability in CSS

  459. 🔖

    I saved Nailing Your First (Info-Product) Launch

  460. 🔖

    I saved Defining Component APIs in React

  461. 🔖

    I saved The Modern Front-End Design System Stack

  462. 🔖

    I saved Building the New facebook.com with React, GraphQL and Relay

  463. 🔖

    I saved Architecting UIs for Change

  464. 🔖

    I saved When frontend means full stack

  465. 🔖

    I saved Building a Button Part 2: Hover Interactions

  466. 🔖

    I saved Building a Button Part 1: Press Events

  467. 📝

    I wrote about The States of the UI

  468. 🔖

    I saved About HTML semantics and front-end architecture

  469. 🔖

    I saved "Semantic" CSS

  470. 🔖

    I saved CSS Utility Classes and "Separation of Concerns"

  471. 🔖

    I saved Second-guessing the modern web

  472. 🔖

    I saved A clean start for the web

  473. 📝

    I wrote about What I Use

  474. 🔖

    I saved Writing Type-Safe Polymorphic React Components (Without Crashing TypeScript)

  475. 🔖

    I saved Using SwiftUI's Spacer to Create Complex Layouts

  476. 🔖

    I saved Most tech content is bullshit

  477. 🔖

    I saved The Art of UI Skeletons

  478. 🔖

    I saved How to Design a Web Application: Software Architecture 101

  479. 🔖

    I saved Shared Hook State with SWR

  480. 🔖

    I saved Testing in the Frontend World

  481. 🔖

    I saved The Real Dark Web

  482. 🔖

    I saved The Elements of UI Engineering

  483. 🔖

    I saved frontend design, react, and a bridge over the great divide

  484. 🔖

    I saved The Great Divide

  485. 🔖

    I saved We have a problem with promises

  486. 🔖

    I saved Taming the asynchronous beast with ES7

  487. 🔖

    I saved The Fault in Our Tolerance: Accounting for Failures in React

  488. 🔖

    I saved 7 Principles of Rich Web Applications

  489. 🔖

    I saved 🌱 My blog is a digital garden, not a blog

  490. 🔖

    I saved Shape Up: Stop Running in Circles and Ship Work that Matters

  491. 🔖

    I saved How the Blog Broke the Web

  492. 🔖

    I saved Turning the database inside-out with Apache Samza

  493. 🔖

    I saved Design Systems and Front-End Architecture by Stuart Robson

  494. 🔖

    I saved How to Section Your HTML

  495. 🔖

    I saved write on your own website

  496. 🔖

    I saved Going Indie. Step 2: Reclaiming Content

  497. 🔖

    I saved Just write

  498. 🔖

    I saved The Documentation Compendium

  499. 🔖

    I saved Why Text Buttons Hurt Mobile Usability

  500. 🔖

    I saved Bulletproof node.js project architecture 🛡️

  501. 🔖

    I saved The Power of Sensible Defaults

  502. 🔖

    I saved HTML Reference

  503. 🔖

    I saved CSS Reference

  504. 🔖

    I saved The God Login

  505. 🔖

    I saved Your Body Text Is Too Small

  506. 🔖

    I saved Architecture as a burden

  507. 🔖

    I saved The Architecture of Open Source Applications (Volume 2): Scalable Web Architecture and Distributed Systems

  508. 🔖

    I saved Scaling React Server-Side Rendering

  509. 🔖

    I saved Refactoring UI

  510. 🔖

    I saved Cards

  511. 🔖

    I saved Introducing Grial

  512. 🔖

    I saved Aplicando estilos a Pulse Editor con styled-components

  513. 🔖

    I saved Usando socket.io en aplicaciones de Next.js

  514. 🔖

    I saved Depurando aplicaciones de Node.js v8.0.0

  515. 🔖

    I saved Personalizando Babel.js en aplicaciones de Next.js

  516. 🔖

    I saved Creando botones propios para Pulse Editor

  517. 🔖

    I saved Te presentamos la nueva versión de Node.js

  518. 🔖

    I saved Creando sitios estáticos con Next.js

  519. 🔖

    I saved Implementando Pulse Editor

  520. 🔖

    I saved Aplicación de escritorio Pulse

  521. 🔖

    I saved Presentamos Pulse Editor

  522. 🔖

    I saved Crea aplicaciones de escritorio con Electron y Next.js

  523. 🔖

    I saved Implementa Progressive server-side render con Next.js

  524. 🔖

    I saved Next.js, el futuro de las aplicaciones con React

  525. 🔖

    I saved Manejo de dependencias JavaScript con Yarn

  526. 🔖

    I saved Deploy y orquestación de microservicios con now.sh

  527. 🔖

    I saved Introducción a JSON Web Tokens (JWT)

  528. 🔖

    I saved ¿Qué es y para qué sirve Babel?

  529. 🔖

    I saved Desarrollando aplicaciones de escritorio con Electron.js

  530. 🔖

    I saved ¿Qué es una aplicación isomórfica?

  531. 🔖

    I saved Crea microservicios en Node.js con micro.js

  532. 🔖

    I saved Usando React.js en el servidor con Django

  533. 🔖

    I saved Estado inmutable con Redux e Immutable.js

  534. 🔖

    I saved Componentes de Alto Orden en React.js

  535. 🔖

    I saved Obteniendo datos en aplicaciones de Redux

  536. 🔖

    I saved Usando Redux en el servidor con Socket.io

  537. 🔖

    I saved Creando código modular con ducks de Redux

  538. 🔖

    I saved Renderizando aplicaciones de Redux en el servidor

  539. 🔖

    I saved Manejo de errores en Redux.js

  540. 🔖

    I saved Migrando a Redux

  541. 🔖

    I saved Ruteo en aplicaciones de Redux y React.js

  542. 🔖

    I saved Glosario de términos de Redux

  543. 🔖

    I saved Estructura de archivos Ducks para Redux.js

  544. 🔖

    I saved Pruebas unitarias en Redux.js

  545. 🔖

    I saved Acciones asíncronas en Redux.js

  546. 🔖

    I saved Middlewares en Redux.js

  547. 📝

    I wrote about Como me inicié en el desarrollo web

  548. 📝

    I wrote about When to Use Custom API Endpoints Instead of REST

  549. 📝

    I wrote about How I work with static assets in React apps

  550. 📝

    I wrote about How shallow: true works in Rails

  551. 📝

    I wrote about Build an Optimistic UI in React using SWR with useMutation

  552. 📝

    I wrote about Como organizo mis aplicaciones de React

  553. 📝

    I wrote about How I Organize React Applications

  554. 📝

    I wrote about Usa React.Suspense para controlar la carga de imagenes

  555. 📝

    I wrote about Data-Aware Components

  556. 📝

    I wrote about Collected Notes TS Client

  557. 🛠️

    I published how to Use SWR with Geolocation

  558. 📝

    I wrote about Using Collected Notes as CMS

  559. 🛠️

    I published how to Sync WebApp Session Status between Tabs with SWR

  560. 🛠️

    I published how to Sync SWR cache with Web Storage

  561. 🛠️

    I published how to Configure Google Suite MX records in Vercel

  562. 🛠️

    I published how to Report Web Vitals in Next.js

  563. 🛠️

    I published how to Use React.Suspense to wait for an image to load

  564. 🛠️

    I published how to Purge unused CSS with TailwindCSS

  565. 🛠️

    I published how to Setup a redirect inside a project deployed to Vercel

  566. 🛠️

    I published how to Use a scoped registry with Yarn

  567. 📝

    I wrote about Using Immer with SWR to mutate data

  568. 📝

    I wrote about Render as you Fetch Pattern in React with SWR

  569. 📝

    I wrote about Prefetching Data in a Next.js Application with SWR

  570. 📝

    I wrote about What Type of States Could You Find in a Client-Side Application?

  571. 📝

    I wrote about Using Tailwind with Next.js

  572. 📝

    I wrote about Using Suspense for Data Fetching Today with SWR

  573. 📝

    I wrote about Using Paginated Data with SWR

  574. 📝

    I wrote about Introduction to SWR

  575. 🛠️

    I published how to Automatically Publish to npm using GitHub Actions

  576. 📝

    I wrote about Feature Flags in React with Flagged

  577. 📝

    I wrote about Next.js File Structure

  578. 📝

    I wrote about Testing in Next.js: Dynamic Imports

  579. 📝

    I wrote about Redirects in Next.js, the Best Way

  580. 📝

    I wrote about Working with Forms in React without libraries

  581. 📝

    I wrote about Working with conditions and lists in React

  582. 📝

    I wrote about Introduction to React with the State and Effects hooks

  583. 📝

    I wrote about Introducing Contentz

  584. 📝

    I wrote about Career Titles and Levels in Tech

  585. 📝

    I wrote about Deploy de Contentz a Netlify

  586. 📝

    I wrote about Contentz es Omakase

  587. 📝

    I wrote about Conceptos básicos de JS: Array#forEach

  588. 📝

    I wrote about Cómo crear y publicar un módulo para npm

  589. 📝

    I wrote about Aplicaciones web con Zero Server

  590. 📝

    I wrote about Presentando Contentz

  591. 📝

    I wrote about Uso del prop children en React

  592. 📝

    I wrote about Componentes con Hijos Personalizables en React

  593. 📝

    I wrote about Composición de Componentes en React

  594. 📝

    I wrote about Tipos de datos en React

  595. 📝

    I wrote about Props con valores predefinidos en React

  596. 📝

    I wrote about Componente de React personalizables usando props

  597. 📝

    I wrote about Componentes con React

  598. 📝

    I wrote about Hola Mundo con React

  599. 📝

    I wrote about Cargando React desde un CDN

  600. 📝

    I wrote about Mi Static Site Generator ideal

  601. 📝

    I wrote about Automatización con Shell Scripts

  602. 📝

    I wrote about Conceptos básicos de JS: Array#push

  603. 📝

    I wrote about Conceptos básicos de JS: Array#filter

  604. 📝

    I wrote about Conceptos básicos de JS: Array#map

  605. 📝

    I wrote about Usando Generadores Asíncronos en JavaScript

  606. 📝

    I wrote about Carrusel de elementos dinámicos con React.js

  607. 📝

    I wrote about Scalable Real-Time Applications

  608. 📝

    I wrote about Aplicaciones Real-Time de Alta Escala

  609. 📝

    I wrote about React v16.6: lazy, memo y más

  610. 📝

    I wrote about Introducción a MDX

  611. 📝

    I wrote about Documentation, Lessons Learned

  612. 📝

    I wrote about Documentación, Lecciones Aprendidas

  613. 📝

    I wrote about ¿Cómo mantenerse actualizado con el ecosistema de JavaScript?

  614. 📝

    I wrote about Renderizando Markdown en React.js

  615. 📝

    I wrote about An Accessible Approach to Frontend Testing

  616. 📝

    I wrote about How to keep updated with the JavaScript ecosystem?

  617. 📝

    I wrote about Implementando un Servidor de GraphQL

  618. 📝

    I wrote about Bye Platzi, hi ▲ZEIT

  619. 📝

    I wrote about Ciclo de vida de un componente de React.js

  620. 📝

    I wrote about Mezclando flujos síncronos y asíncronos usando promesas en JavaScript

  621. 📝

    I wrote about Introducción a GraphQL

  622. 📝

    I wrote about Qué son y cómo funcionan las promesas en JavaScript

  623. 📝

    I wrote about Sobre el ecosistema y la fatiga de JavaScript

  624. 📝

    I wrote about Combinando React.js y Redux.js

  625. 📝

    I wrote about Introducción a Redux.js

  626. 📝

    I wrote about Compilando el Frontend con webpack

  627. 📝

    I wrote about Internacionalización con React.js y FormatJS

  628. 📝

    I wrote about Introducción a ECMAScript 2016/7

  629. 📝

    I wrote about Mi experiencia como estudiante de los cursos de Platzi

  630. 📝

    I wrote about Lo nuevo en React v0.14

  631. 📝

    I wrote about Usando ECMAScript 6 en tus tareas de Gulp

  632. 📝

    I wrote about Usando ECMAScript 6/2015 con Babel

  633. 📝

    I wrote about Buenas prácticas del desarrollo FrontEnd

  634. 📝

    I wrote about Renderizando React.js en el server con Express.js y react-engine

  635. 📝

    I wrote about ECMAScript 6: nueva sintaxis y características para JavaScript

  636. 📝

    I wrote about Cómo usar la etiqueta template en HTML5

  637. 📝

    I wrote about Automatización de tareas de frontend usando Gulp.js

  638. 📝

    I wrote about Uso de módulos en JavaScript con ECMAScript 6

  639. 📝

    I wrote about Escribiendo CSS de la forma correcta

  640. 📝

    I wrote about Definiendo conceptos - Closure y Scope en JavaScript

  641. 📝

    I wrote about Ventajas y desventajas de los pre-procesadores de CSS

  642. 📝

    I wrote about ¿Qué es Scrum? ¿Y cómo te ayuda trabajar?

  643. 📝

    I wrote about El módulo Flexbox de CSS3

  644. 📝

    I wrote about JavaScript orientado a objetos