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 Details that make interfaces feel better

  2. πŸ”–

    I saved Expand your hit areas

  3. πŸ”–

    I saved Nobody Gets Promoted for Simplicity

  4. πŸ”–

    I saved Why I don't use down migrations

  5. πŸ”–

    I saved How we enabled Content Security Policy for everyone

  6. πŸ“˜

    I added the definition of RESTful

  7. πŸ“˜

    I added the definition of MIME Type

  8. πŸ“˜

    I added the definition of Same-Origin Policy

  9. πŸ“˜

    I added the definition of CORS

  10. πŸ“˜

    I added the definition of Bearer Token

  11. πŸ“˜

    I added the definition of OIDC

  12. πŸ“˜

    I added the definition of OAuth2

  13. πŸ“˜

    I added the definition of GraphQL

  14. πŸ“˜

    I added the definition of REST

  15. πŸ“˜

    I added the definition of XML

  16. πŸ“˜

    I added the definition of JSON

  17. πŸ“˜

    I added the definition of TLS

  18. πŸ“˜

    I added the definition of TCP

  19. πŸ“˜

    I added the definition of IP

  20. πŸ“˜

    I added the definition of URI

  21. πŸ“˜

    I added the definition of URL

  22. πŸ“˜

    I added the definition of DNS

  23. πŸ“˜

    I added the definition of FTP

  24. πŸ“˜

    I added the definition of CSS

  25. πŸ“˜

    I added the definition of HTML

  26. πŸ“˜

    I added the definition of HTTPS

  27. πŸ“˜

    I added the definition of HTTP

  28. πŸ“˜

    I added the definition of WSS

  29. πŸ“˜

    I added the definition of Web API

  30. πŸ“˜

    I added the definition of Static Assets

  31. πŸ“˜

    I added the definition of Routing

  32. πŸ“˜

    I added the definition of Rendering

  33. πŸ“˜

    I added the definition of SSE

  34. πŸ“˜

    I added the definition of WebSockets

  35. πŸ“˜

    I added the definition of Idempotency

  36. πŸ“˜

    I added the definition of CDN

  37. πŸ“˜

    I added the definition of Caching

  38. πŸ“˜

    I added the definition of Rate Limiting

  39. πŸ“˜

    I added the definition of Webhooks

  40. πŸ“˜

    I added the definition of Edge Runtime

  41. πŸ“˜

    I added the definition of RSC

  42. πŸ“˜

    I added the definition of Optimistic UI

  43. πŸ“˜

    I added the definition of Progressive Enhancement

  44. πŸ“˜

    I added the definition of PKCE

  45. πŸ“˜

    I added the definition of Resource Server

  46. πŸ“˜

    I added the definition of Authorization Server

  47. πŸ“˜

    I added the definition of Refresh Token

  48. πŸ“˜

    I added the definition of Access Token

  49. πŸ“˜

    I added the definition of JWKS

  50. πŸ“˜

    I added the definition of JWK

  51. πŸ“˜

    I added the definition of JWT

  52. πŸ“˜

    I added the definition of API Gateway

  53. πŸ“˜

    I added the definition of Edge Functions

  54. πŸ“˜

    I added the definition of Serverless

  55. πŸ“˜

    I added the definition of Microservices

  56. πŸ“˜

    I added the definition of Monolith

  57. πŸ“˜

    I added the definition of BFF

  58. πŸ“˜

    I added the definition of Edge Rendering

  59. πŸ“˜

    I added the definition of Streaming SSR

  60. πŸ“˜

    I added the definition of Islands Architecture

  61. πŸ“˜

    I added the definition of Partial Hydration

  62. πŸ“˜

    I added the definition of Hydration

  63. πŸ› οΈ

    I published how to Access React Router Context with AsyncLocalStorage

  64. πŸ”–

    I saved Hire managers of one

  65. πŸ› οΈ

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

  66. πŸ› οΈ

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

  67. πŸ› οΈ

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

  68. πŸ”–

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

  69. πŸ“

    I wrote about React Router Loaders and Actions as Integration Points

  70. πŸ”–

    I saved The Too Early Breakpoint

  71. πŸ”–

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

  72. πŸ”–

    I saved sergiodxa/agent-skills

  73. πŸ”–

    I saved The Incredible Overcomplexity of the Shadcn Radio Button

  74. πŸ”–

    I saved Affordances: The Missing Layer in Frontend Architecture

  75. πŸ”–

    I saved Confirmation dialogs with zero JavaScript

  76. πŸ”–

    I saved Stylish dialogs

  77. πŸ”–

    I saved Logging Sucks - Your Logs Are Lying To You

  78. πŸ”–

    I saved Micro-libraries need to die already

  79. πŸ”–

    I saved The stacking workflow

  80. πŸ”–

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

  81. πŸ”–

    I saved Tips for good UI implementation

  82. πŸ› οΈ

    I published how to Dedupe Server Calls with Remix Utils Batcher

  83. πŸ› οΈ

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

  84. πŸ”–

    I saved The Perils of Reactivity

  85. πŸ“

    I wrote about How Architecture Patterns Shape Development

  86. πŸ› οΈ

    I published how to Build a Master-Detail UI with React Router

  87. πŸ› οΈ

    I published how to Leverage React Router's Built-in Data Deduplication

  88. πŸ”–

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

  89. πŸ› οΈ

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

  90. πŸ› οΈ

    I published how to Avoid Waterfalls in React Suspense

  91. πŸ› οΈ

    I published how to Handle deferred data in React Router

  92. πŸ› οΈ

    I published how to Use Action Routes in React Router

  93. πŸ”–

    I saved Prefer Gaps To Margins

  94. πŸ”–

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

  95. πŸ”–

    I saved Resilient Import Maps - Better Theme Development and Beyond

  96. πŸ”–

    I saved Toasts are Bad UX

  97. πŸ”–

    I saved The XY Problem

  98. πŸ”–

    I saved Don't ask to ask, just ask

  99. πŸ”–

    I saved no hello

  100. πŸ”–

    I saved never just

  101. πŸ› οΈ

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

  102. πŸ”–

    I saved JSX Over The Wire

  103. πŸ”–

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

  104. πŸ› οΈ

    I published how to Debounce Loaders and Actions in React Router

  105. πŸ› οΈ

    I published how to Use client_id and client_secret in OAuth2

  106. πŸ› οΈ

    I published how to Use the OAuth2 Introspection Endpoint

  107. πŸ› οΈ

    I published how to Revoke a Refresh Token in OAuth2

  108. πŸ› οΈ

    I published how to Use PKCE in OAuth2 Authorization Code Flow

  109. πŸ› οΈ

    I published how to Add Custom Claims to JWT Access Tokens

  110. πŸ› οΈ

    I published how to Validate exp, iat, and nbf in JWTs

  111. πŸ› οΈ

    I published how to Use `scope` to Authorize Actions in Your API

  112. πŸ› οΈ

    I published how to Validate JWTs with JWKS

  113. πŸ“

    I wrote about OAuth2 Access Token Claims Explained

  114. πŸ“

    I wrote about OAuth2 Scopes Explained

  115. πŸ› οΈ

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

  116. πŸ› οΈ

    I published how to Test Middleware in React Router

  117. πŸ“

    I wrote about OAuth2 Tokens Explained

  118. πŸ“

    I wrote about OAuth2 Audience Explained

  119. πŸ“

    I wrote about JWT vs. Opaque Tokens

  120. πŸ› οΈ

    I published how to Use middleware in React Router

  121. πŸ”–

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

  122. πŸ“

    I wrote about OAuth2 for Backend-for-Frontend

  123. πŸ› οΈ

    I published how to Show a 404 in React Router

  124. πŸ”–

    I saved Class methods are Ruby’s useEffect

  125. πŸ”–

    I saved What I learned at Campsite

  126. πŸ“

    I wrote about Throwing vs. Returning Redirects in React Router

  127. πŸ› οΈ

    I published how to Download a file from a React Router route

  128. πŸ”–

    I saved How I Stay Sane Implementing Stripe

  129. πŸ”–

    I saved Where to put concernsImprove readabilityEnhance, but not replace, rich object modelsConclusions

  130. πŸ”–

    I saved Domain driven boldness

  131. πŸ”–

    I saved Good concerns

  132. πŸ”–

    I saved Vanilla Rails is plenty

  133. πŸ”–

    I saved Active Record, nice and blended

  134. πŸ”–

    I saved Globals, callbacks and other sacrileges

  135. πŸ› οΈ

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

  136. πŸ› οΈ

    I published how to Use Pandoc to convert a Markdown to a PDF and ePUB

  137. πŸ› οΈ

    I published how to Load Dynamic Stylesheets in React Router

  138. πŸ› οΈ

    I published how to Split routes config in React Router

  139. πŸ› οΈ

    I published how to Configure the tracking branch in Git

  140. πŸ› οΈ

    I published how to Reuse route modules in React Router

  141. πŸ”–

    I saved Stop just using β€œFrontend” or β€œBackend” to describe the Engineering you like

  142. πŸ› οΈ

    I published how to Populate Your Rails Database with Fixtures

  143. πŸ”–

    I saved You Can't Not Have a Framework

  144. πŸ”–

    I saved This doesn't warrant a blog post

  145. πŸ”–

    I saved Because I wanted to

  146. πŸ“

    I wrote about Making Web Component good enough

  147. πŸ”–

    I saved Layered Architectures with Laravel

  148. πŸ”–

    I saved Don't Sleep on AbortController

  149. πŸ› οΈ

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

  150. πŸ› οΈ

    I published how to Show toast after a Remix action

  151. πŸ”–

    I saved Building a Proper REST API

  152. πŸ”–

    I saved How I would do auth

  153. πŸ› οΈ

    I published how to Simplify Component Imports with TypeScript Namespaces

  154. πŸ”–

    I saved Card Stack

  155. πŸ”–

    I saved Counterscale and the New Self-Hosted

  156. πŸ“

    I wrote about On Frontend vs Backend

  157. πŸ› οΈ

    I published how to Validate Form in Remix with clientAction

  158. πŸ› οΈ

    I published how to Generate Cloudflare environment type with wrangler

  159. πŸ› οΈ

    I published how to Configure scoped private packages in Bun

  160. πŸ“

    I wrote about When to use Route Modal in React Router

  161. πŸ”–

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

  162. πŸ”–

    I saved Ultimate guide to multi-tenant SaaS data modeling

  163. πŸ”–

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

  164. πŸ”–

    I saved Creating a pointer-friendly submenu experience

  165. πŸ”–

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

  166. πŸ”–

    I saved Building future facing frontend architectures

  167. πŸ”–

    I saved Navigating the future of frontend

  168. πŸ› οΈ

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

  169. πŸ”–

    I saved Margin considered harmful

  170. πŸ”–

    I saved In Loving Memory of Square Checkbox

  171. πŸ› οΈ

    I published how to Access location.state in Remix loaders and actions

  172. πŸ”–

    I saved The Copenhagen Book

  173. πŸ› οΈ

    I published how to Add i18n to a Remix Vite app

  174. πŸ”–

    I saved Documenting Architecture Decisions

  175. πŸ› οΈ

    I published how to Autoload the correct Node version with NVM

  176. πŸ“˜

    I added the definition of HDR

  177. πŸ“˜

    I added the definition of HMR

  178. πŸ“˜

    I added the definition of PPR

  179. πŸ“˜

    I added the definition of ISR

  180. πŸ“˜

    I added the definition of SSG

  181. πŸ“˜

    I added the definition of PESPA

  182. πŸ“˜

    I added the definition of PEMPA

  183. πŸ› οΈ

    I published how to Nest routes with dynamic params in Remix

  184. πŸ› οΈ

    I published how to Build a simple login and logout with Remix

  185. πŸ› οΈ

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

  186. πŸ› οΈ

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

  187. πŸ› οΈ

    I published how to Handle not found URLs with Remix

  188. πŸ› οΈ

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

  189. πŸ› οΈ

    I published how to Add dynamic canonical URL to Remix routes

  190. πŸ”–

    I saved Parallelized Decision Making

  191. πŸ› οΈ

    I published how to Add custom attributes to Markdoc code fences

  192. πŸ› οΈ

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

  193. πŸ“˜

    I added the definition of API

  194. πŸ“˜

    I added the definition of MPA

  195. πŸ“˜

    I added the definition of SPA

  196. πŸ“˜

    I added the definition of CSR

  197. πŸ“˜

    I added the definition of SSR

  198. πŸ› οΈ

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

  199. πŸ› οΈ

    I published how to Create a CRUD with Remix

  200. πŸ”–

    I saved I miss RSS

  201. πŸ”–

    I saved RSC is React Server + Component | bobae kang

  202. πŸ› οΈ

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

  203. πŸ› οΈ

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

  204. πŸ› οΈ

    I published how to Use React Portal in Remix

  205. πŸ› οΈ

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

  206. πŸ”–

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

  207. πŸ”–

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

  208. πŸ”–

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

  209. πŸ› οΈ

    I published how to Defer a Fetch response in Remix

  210. πŸ› οΈ

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

  211. πŸ› οΈ

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

  212. πŸ› οΈ

    I published how to Build an app with Remix and Bun

  213. πŸ”–

    I saved Designing better target sizes

  214. πŸ› οΈ

    I published how to Find and remove unused code with Knip

  215. πŸ› οΈ

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

  216. πŸ”–

    I saved Kind of annoyed at React

  217. πŸ”–

    I saved Increasingly miffed about the state of React releases

  218. πŸ”–

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

  219. πŸ› οΈ

    I published how to Test meta tags using Playwright

  220. πŸ”–

    I saved gilest.org: Make the indie web easier

  221. πŸ”–

    I saved Why Fetch Promise Does Not Reject on Error Responses

  222. πŸ”–

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

  223. πŸ”–

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

  224. πŸ”–

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

  225. πŸ”–

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

  226. πŸ”–

    I saved React Aria

  227. πŸ”–

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

  228. πŸ› οΈ

    I published how to Prefetch data for Remix Fetcher usage

  229. πŸ› οΈ

    I published how to Keep Your Loader Data Fresh in Remix

  230. πŸ› οΈ

    I published how to Expose Remix Routes as API Endpoints

  231. πŸ› οΈ

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

  232. πŸ› οΈ

    I published how to Upload Images in a Remix Application

  233. πŸ› οΈ

    I published how to Redirect with Search Param in Remix

  234. πŸ› οΈ

    I published how to Access the Loader Data in Remix

  235. πŸ› οΈ

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

  236. πŸ› οΈ

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

  237. πŸ› οΈ

    I published how to Test meta tags with Cypress

  238. πŸ”–

    I saved Challenging Established Norms: Making Component Fetching the Exception

  239. πŸ”–

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

  240. πŸ”–

    I saved The ideal viewport doesn’t exist

  241. πŸ”–

    I saved My thoughts on open-source

  242. πŸ› οΈ

    I published how to Strongly type Remix route IDs

  243. πŸ› οΈ

    I published how to Strongly type public assets in Remix

  244. πŸ› οΈ

    I published how to Create a reusable Form component in Remix

  245. πŸ› οΈ

    I published how to Sync text input with URLSearchParam in Remix

  246. πŸ”–

    I saved Social RSS

  247. πŸ”–

    I saved The fediverse and the indieweb

  248. πŸ”–

    I saved Blogging as DRY

  249. πŸ”–

    I saved Everything You Can Test In Your Laravel Application

  250. πŸ”–

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

  251. πŸ”–

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

  252. πŸ”–

    I saved Generating income from open source

  253. πŸ› οΈ

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

  254. πŸ› οΈ

    I published how to Logout from Auth0 with Remix Auth

  255. πŸ› οΈ

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

  256. πŸ› οΈ

    I published how to Reset a form on success in Remix

  257. πŸ› οΈ

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

  258. πŸ› οΈ

    I published how to Send JSON to a Remix action

  259. πŸ› οΈ

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

  260. πŸ› οΈ

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

  261. πŸ› οΈ

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

  262. πŸ› οΈ

    I published how to Automatically commit sessions on Remix

  263. πŸ› οΈ

    I published how to Customize Remix AppLoadContext type

  264. πŸ”–

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

  265. πŸ› οΈ

    I published how to Turn on Caps Lock on Cypress

  266. πŸ”–

    I saved Fast and maintainable patterns for fetching from a database

  267. πŸ› οΈ

    I published how to Delete a Cookie using Remix cookie helpers

  268. πŸ› οΈ

    I published how to Add runtime SSG and ISR to Remix

  269. πŸ› οΈ

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

  270. πŸ› οΈ

    I published how to Use AMP with Remix

  271. πŸ› οΈ

    I published how to Use Remix as a SPA only

  272. πŸ”–

    I saved A Theory of Web Relativity

  273. πŸ› οΈ

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

  274. πŸ› οΈ

    I published how to Add rolling sessions to Remix

  275. πŸ› οΈ

    I published how to Use Server-Sent Events with Remix

  276. πŸ› οΈ

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

  277. πŸ› οΈ

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

  278. πŸ› οΈ

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

  279. πŸ”–

    I saved Streaming: is it worth it?

  280. πŸ”–

    I saved Prioritise content over components

  281. πŸ“

    I wrote about Throwing vs. Returning responses in Remix

  282. πŸ› οΈ

    I published how to Lazy-load React components in Remix

  283. πŸ”–

    I saved Overcoming Popular Issues With React Projects

  284. πŸ”–

    I saved πŸ’Ώ remix simplifies things

  285. πŸ”–

    I saved Progressively enhance for a more resilient web

  286. πŸ”–

    I saved Get in Zoomer, We're Saving React

  287. πŸ“

    I wrote about Optional route segments with Remix

  288. πŸ› οΈ

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

  289. πŸ› οΈ

    I published how to Add additional data before submitting on Remix

  290. πŸ› οΈ

    I published how to Redirect to an external website with Remix

  291. πŸ› οΈ

    I published how to Bubble up data on Remix routes

  292. πŸ› οΈ

    I published how to Group related routes together in Remix

  293. πŸ”–

    I saved What if your Index Page was Smart?

  294. πŸ”–

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

  295. πŸ”–

    I saved How to Section Your HTML

  296. πŸ”–

    I saved Block Links: The Search for a Perfect Solution

  297. πŸ› οΈ

    I published how to Parse Markdown with Markdoc in Remix

  298. πŸ“

    I wrote about Dependency injection in Remix loaders and actions

  299. πŸ“

    I wrote about Using Zod to safely read env variables

  300. πŸ”–

    I saved Debug your server-side Remix code using VSCode

  301. πŸ”–

    I saved RSS

  302. πŸ“

    I wrote about Working with Refresh Tokens in Remix

  303. πŸ”–

    I saved Device-Agnostic

  304. πŸ“

    I wrote about E2E test Remix with Vitest and Puppeteer

  305. πŸ› οΈ

    I published how to Optimize image loading with plain HTML

  306. πŸ”–

    I saved Using rel=preload for responsive images

  307. πŸ“

    I wrote about Multiple forms per route in Remix

  308. πŸ”–

    I saved How to avoid layout shifts caused by web fonts

  309. πŸ”–

    I saved β€œGuys, we’re doing pagination wrong…”

  310. πŸ”–

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

  311. πŸ› οΈ

    I published how to Add returnTo behavior to Remix Auth

  312. πŸ”–

    I saved Survivorship Bias in Web Performance

  313. πŸ“

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

  314. πŸ› οΈ

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

  315. πŸ› οΈ

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

  316. πŸ”–

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

  317. πŸ› οΈ

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

  318. πŸ› οΈ

    I published how to Use Remix with socket.io

  319. πŸ› οΈ

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

  320. πŸ› οΈ

    I published how to Avoid waterfalls of queries in Remix loaders

  321. πŸ› οΈ

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

  322. πŸ“

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

  323. πŸ“

    I wrote about Clase rΓ‘pida de programaciΓ³n asΓ­ncrona

  324. πŸ“

    I wrote about On-Demand Hydration in Remix

  325. πŸ”–

    I saved Live validation is problematic

  326. πŸ”–

    I saved Stop building client-side forms

  327. πŸ“

    I wrote about Loader vs Route Cache Headers in Remix

  328. πŸ“

    I wrote about The useMatches hook in Remix

  329. πŸ“

    I wrote about Validating Remix forms with Constraints API

  330. πŸ› οΈ

    I published how to Test Remix loaders and actions

  331. πŸ› οΈ

    I published how to Use NProgress in a Remix app

  332. πŸ“

    I wrote about Result Objects in TS

  333. πŸ“

    I wrote about Dark Mode and Dark Context

  334. πŸ”–

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

  335. πŸ”–

    I saved When You Stop Counting

  336. πŸ”–

    I saved Why I Quit Google to Work for Myself

  337. πŸ› οΈ

    I published how to Use Fathom with Remix

  338. πŸ”–

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

  339. πŸ”–

    I saved Why You Should Never Use MongoDB

  340. πŸ”–

    I saved A Case For Use Cases

  341. πŸ› οΈ

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

  342. πŸ› οΈ

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

  343. πŸ“

    I wrote about Automatic Revalidation in Remix

  344. πŸ”–

    I saved People read on the web

  345. πŸ”–

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

  346. πŸ”–

    I saved Building a resilient frontend using progressive enhancement

  347. πŸ”–

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

  348. πŸ”–

    I saved Browsers and Representation

  349. πŸ”–

    I saved Google vs. the web

  350. πŸ”–

    I saved Back to the Bad Old Days of the Web

  351. πŸ”–

    I saved The Mythical Document Web

  352. πŸ”–

    I saved Breaking the web forward

  353. πŸ”–

    I saved Back to the Future with RSS

  354. πŸ”–

    I saved Client-Side Architecture Basics

  355. πŸ”–

    I saved Organizing App Logic with the Clean Architecture

  356. πŸ”–

    I saved Implementing DTOs, Mappers and the Repository Pattern

  357. πŸ”–

    I saved Screaming Architecture

  358. πŸ”–

    I saved Better Software Design with Application Layer Use Cases

  359. πŸ”–

    I saved Anemic Domain Model

  360. πŸ”–

    I saved Value Objects - DDD w/ TypeScript

  361. πŸ”–

    I saved iOS 15, Humane

  362. πŸ”–

    I saved Don't overabstract your components

  363. πŸ“

    I wrote about Creating a PDF with React in the Browser

  364. πŸ”–

    I saved Meta Theme Color and Trickery

  365. πŸ“

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

  366. πŸ“

    I wrote about Using Service Workers with Remix

  367. πŸ“

    I wrote about Localizing Remix apps with i18next

  368. πŸ“

    I wrote about Adding CSRF protection to Remix

  369. πŸ› οΈ

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

  370. πŸ“

    I wrote about Server-Side authentication with Auth0 in Remix

  371. πŸ“

    I wrote about Using TailwindCSS with Remix

  372. πŸ› οΈ

    I published how to Use ETags in Remix

  373. πŸ“

    I wrote about Jest Matchers for Remix responses

  374. πŸ“

    I wrote about Using Form Objects inside Remix actions

  375. πŸ“

    I wrote about Route protection in Remix with Policies

  376. πŸ› οΈ

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

  377. πŸ› οΈ

    I published how to Read search params with JS

  378. πŸ› οΈ

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

  379. πŸ› οΈ

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

  380. πŸ› οΈ

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

  381. πŸ› οΈ

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

  382. πŸ“

    I wrote about Que es un bundler de JS

  383. πŸ“

    I wrote about Remix vs Next.js Comparison

  384. πŸ”–

    I saved Imagining native skip links

  385. πŸ› οΈ

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

  386. πŸ”–

    I saved Rails design patterns - The big picture

  387. πŸ“

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

  388. πŸ”–

    I saved Before You memo()

  389. πŸ“

    I wrote about Usar variables de entorno en Next.js

  390. πŸ”–

    I saved Implement a Skip Link for Navigation-Heavy Sites

  391. πŸ”–

    I saved Meaningful Motion with Action-Driven Animation

  392. πŸ”–

    I saved An Interactive Guide to CSS Transitions

  393. πŸ› οΈ

    I published how to Build your own RSS Reader

  394. πŸ› οΈ

    I published how to Keep Heading Levels Consistent with React Context

  395. πŸ”–

    I saved Preload: What Is It Good For?

  396. πŸ”–

    I saved The unreasonable effectiveness of simple HTML

  397. πŸ”–

    I saved Open Peeps

  398. πŸ”–

    I saved System Design 101

  399. πŸ”–

    I saved A primer on investing for designers and developers

  400. πŸ“

    I wrote about About

  401. πŸ”–

    I saved In Critical Defense of Frontend Develop

  402. πŸ”–

    I saved Be Wary of Nesting Roles

  403. πŸ”–

    I saved Accessible SVGs

  404. πŸ“

    I wrote about ΒΏQuΓ© son Server Components de React y cΓ³mo se relacionan con SSR/SSG/ISR?

  405. πŸ“

    I wrote about πŸ”₯ Pro Tip: Name your useEffect functions

  406. πŸ”–

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

  407. πŸ”–

    I saved Alt-texts: The Ultimate Guide

  408. πŸ”–

    I saved Polymorphic React Components in TypeScript

  409. πŸ”–

    I saved CSS and Scalability

  410. πŸ“

    I wrote about Using MDX with Remote Content

  411. πŸ”–

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

  412. πŸ”–

    I saved Practical React Query

  413. πŸ› οΈ

    I published how to Use TailwindCSS Typography with Dark Mode Styles

  414. πŸ”–

    I saved Don't design for mobile

  415. πŸ”–

    I saved Stop Using β€œDrop-down”

  416. πŸ”–

    I saved Decoupling, Architecture and Teams

  417. πŸ”–

    I saved The Lava Layer Anti-Pattern

  418. πŸ”–

    I saved UI as an afterthought

  419. πŸ“

    I wrote about Todo lo que sΓ© de SWR

  420. πŸ”–

    I saved In 2020, what is "frontend" 🀨

  421. πŸ”–

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

  422. πŸ”–

    I saved Wormhole state management

  423. πŸ”–

    I saved Todo el software estΓ‘ roto

  424. πŸ”–

    I saved What is the Value of Browser Diversity?

  425. πŸ”–

    I saved Margins and Composability in CSS

  426. πŸ”–

    I saved Nailing Your First (Info-Product) Launch

  427. πŸ”–

    I saved Defining Component APIs in React

  428. πŸ”–

    I saved The Modern Front-End Design System Stack

  429. πŸ”–

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

  430. πŸ”–

    I saved Architecting UIs for Change

  431. πŸ”–

    I saved When frontend means full stack

  432. πŸ”–

    I saved Building a Button Part 2: Hover Interactions

  433. πŸ”–

    I saved Building a Button Part 1: Press Events

  434. πŸ“

    I wrote about The States of the UI

  435. πŸ”–

    I saved About HTML semantics and front-end architecture

  436. πŸ”–

    I saved "Semantic" CSS

  437. πŸ”–

    I saved CSS Utility Classes and "Separation of Concerns"

  438. πŸ”–

    I saved Second-guessing the modern web

  439. πŸ”–

    I saved A clean start for the web

  440. πŸ“

    I wrote about What I Use

  441. πŸ”–

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

  442. πŸ”–

    I saved Using SwiftUI's Spacer to Create Complex Layouts

  443. πŸ”–

    I saved Most tech content is bullshit

  444. πŸ”–

    I saved The Art of UI Skeletons

  445. πŸ”–

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

  446. πŸ”–

    I saved Shared Hook State with SWR

  447. πŸ”–

    I saved Testing in the Frontend World

  448. πŸ”–

    I saved The Real Dark Web

  449. πŸ”–

    I saved The Elements of UI Engineering

  450. πŸ”–

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

  451. πŸ”–

    I saved The Great Divide

  452. πŸ”–

    I saved We have a problem with promises

  453. πŸ”–

    I saved Taming the asynchronous beast with ES7

  454. πŸ”–

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

  455. πŸ”–

    I saved 7 Principles of Rich Web Applications

  456. πŸ”–

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

  457. πŸ”–

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

  458. πŸ”–

    I saved How the Blog Broke the Web

  459. πŸ”–

    I saved Turning the database inside-out with Apache Samza

  460. πŸ”–

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

  461. πŸ”–

    I saved How to Section Your HTML

  462. πŸ”–

    I saved write on your own website

  463. πŸ”–

    I saved Going Indie. Step 2: Reclaiming Content

  464. πŸ”–

    I saved Just write

  465. πŸ”–

    I saved The Documentation Compendium

  466. πŸ”–

    I saved Why Text Buttons Hurt Mobile Usability

  467. πŸ”–

    I saved Bulletproof node.js project architecture πŸ›‘οΈ

  468. πŸ”–

    I saved The Power of Sensible Defaults

  469. πŸ”–

    I saved HTML Reference

  470. πŸ”–

    I saved CSS Reference

  471. πŸ”–

    I saved The God Login

  472. πŸ”–

    I saved Your Body Text Is Too Small

  473. πŸ”–

    I saved Architecture as a burden

  474. πŸ”–

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

  475. πŸ”–

    I saved Scaling React Server-Side Rendering

  476. πŸ”–

    I saved Refactoring UI

  477. πŸ”–

    I saved Cards

  478. πŸ”–

    I saved Introducing Grial

  479. πŸ”–

    I saved Aplicando estilos a Pulse Editor con styled-components

  480. πŸ”–

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

  481. πŸ”–

    I saved Depurando aplicaciones de Node.js v8.0.0

  482. πŸ”–

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

  483. πŸ”–

    I saved Creando botones propios para Pulse Editor

  484. πŸ”–

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

  485. πŸ”–

    I saved Creando sitios estΓ‘ticos con Next.js

  486. πŸ”–

    I saved Implementando Pulse Editor

  487. πŸ”–

    I saved AplicaciΓ³n de escritorio Pulse

  488. πŸ”–

    I saved Presentamos Pulse Editor

  489. πŸ”–

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

  490. πŸ”–

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

  491. πŸ”–

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

  492. πŸ”–

    I saved Manejo de dependencias JavaScript con Yarn

  493. πŸ”–

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

  494. πŸ”–

    I saved IntroducciΓ³n a JSON Web Tokens (JWT)

  495. πŸ”–

    I saved ΒΏQuΓ© es y para quΓ© sirve Babel?

  496. πŸ”–

    I saved Desarrollando aplicaciones de escritorio con Electron.js

  497. πŸ”–

    I saved ΒΏQuΓ© es una aplicaciΓ³n isomΓ³rfica?

  498. πŸ”–

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

  499. πŸ”–

    I saved Usando React.js en el servidor con Django

  500. πŸ”–

    I saved Estado inmutable con Redux e Immutable.js

  501. πŸ”–

    I saved Componentes de Alto Orden en React.js

  502. πŸ”–

    I saved Obteniendo datos en aplicaciones de Redux

  503. πŸ”–

    I saved Usando Redux en el servidor con Socket.io

  504. πŸ”–

    I saved Creando cΓ³digo modular con ducks de Redux

  505. πŸ”–

    I saved Renderizando aplicaciones de Redux en el servidor

  506. πŸ”–

    I saved Manejo de errores en Redux.js

  507. πŸ”–

    I saved Migrando a Redux

  508. πŸ”–

    I saved Ruteo en aplicaciones de Redux y React.js

  509. πŸ”–

    I saved Glosario de tΓ©rminos de Redux

  510. πŸ”–

    I saved Estructura de archivos Ducks para Redux.js

  511. πŸ”–

    I saved Pruebas unitarias en Redux.js

  512. πŸ”–

    I saved Acciones asΓ­ncronas en Redux.js

  513. πŸ”–

    I saved Middlewares en Redux.js

  514. πŸ“

    I wrote about Como me iniciΓ© en el desarrollo web

  515. πŸ“

    I wrote about Why build a non-RESTful API

  516. πŸ“

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

  517. πŸ“

    I wrote about How shallow: true works in Rails

  518. πŸ“

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

  519. πŸ“

    I wrote about Como organizo mis aplicaciones de React

  520. πŸ“

    I wrote about How I Organize React Applications

  521. πŸ“

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

  522. πŸ“

    I wrote about Data-Aware Components

  523. πŸ“

    I wrote about Collected Notes TS Client

  524. πŸ› οΈ

    I published how to Use SWR with Geolocation

  525. πŸ“

    I wrote about Using Collected Notes as CMS

  526. πŸ› οΈ

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

  527. πŸ› οΈ

    I published how to Sync SWR cache with Web Storage

  528. πŸ› οΈ

    I published how to Configure Google Suite MX records in Vercel

  529. πŸ› οΈ

    I published how to Report Web Vitals in Next.js

  530. πŸ› οΈ

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

  531. πŸ› οΈ

    I published how to Purge unused CSS with TailwindCSS

  532. πŸ› οΈ

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

  533. πŸ› οΈ

    I published how to Use a scoped registry with Yarn

  534. πŸ“

    I wrote about Using Immer with SWR to mutate data

  535. πŸ“

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

  536. πŸ“

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

  537. πŸ“

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

  538. πŸ“

    I wrote about Using Tailwind with Next.js

  539. πŸ“

    I wrote about Using Suspense for Data Fetching Today with SWR

  540. πŸ“

    I wrote about Using Paginated Data with SWR

  541. πŸ“

    I wrote about Introduction to SWR

  542. πŸ› οΈ

    I published how to Automatically Publish to npm using GitHub Actions

  543. πŸ“

    I wrote about Feature Flags in React with Flagged

  544. πŸ“

    I wrote about Next.js File Structure

  545. πŸ“

    I wrote about Testing in Next.js: Dynamic Imports

  546. πŸ“

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

  547. πŸ“

    I wrote about Working with Forms in React without libraries

  548. πŸ“

    I wrote about Working with conditions and lists in React

  549. πŸ“

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

  550. πŸ“

    I wrote about Introducing Contentz

  551. πŸ“

    I wrote about Career Titles and Levels in Tech

  552. πŸ“

    I wrote about Deploy de Contentz a Netlify

  553. πŸ“

    I wrote about Contentz es Omakase

  554. πŸ“

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

  555. πŸ“

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

  556. πŸ“

    I wrote about Aplicaciones web con Zero Server

  557. πŸ“

    I wrote about Presentando Contentz

  558. πŸ“

    I wrote about Uso del prop children en React

  559. πŸ“

    I wrote about Componentes con Hijos Personalizables en React

  560. πŸ“

    I wrote about ComposiciΓ³n de Componentes en React

  561. πŸ“

    I wrote about Tipos de datos en React

  562. πŸ“

    I wrote about Props con valores predefinidos en React

  563. πŸ“

    I wrote about Componente de React personalizables usando props

  564. πŸ“

    I wrote about Componentes con React

  565. πŸ“

    I wrote about Hola Mundo con React

  566. πŸ“

    I wrote about Cargando React desde un CDN

  567. πŸ“

    I wrote about Mi Static Site Generator ideal

  568. πŸ“

    I wrote about AutomatizaciΓ³n con Shell Scripts

  569. πŸ“

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

  570. πŸ“

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

  571. πŸ“

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

  572. πŸ“

    I wrote about Usando Generadores AsΓ­ncronos en JavaScript

  573. πŸ“

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

  574. πŸ“

    I wrote about Scalable Real-Time Applications

  575. πŸ“

    I wrote about Aplicaciones Real-Time de Alta Escala

  576. πŸ“

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

  577. πŸ“

    I wrote about IntroducciΓ³n a MDX

  578. πŸ“

    I wrote about Documentation, Lessons Learned

  579. πŸ“

    I wrote about DocumentaciΓ³n, Lecciones Aprendidas

  580. πŸ“

    I wrote about ΒΏCΓ³mo mantenerse actualizado con el ecosistema de JavaScript?

  581. πŸ“

    I wrote about Renderizando Markdown en React.js

  582. πŸ“

    I wrote about An Accessible Approach to FrontendΒ Testing

  583. πŸ“

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

  584. πŸ“

    I wrote about Implementando un Servidor de GraphQL

  585. πŸ“

    I wrote about Bye Platzi, hi β–²ZEIT

  586. πŸ“

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

  587. πŸ“

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

  588. πŸ“

    I wrote about IntroducciΓ³n a GraphQL

  589. πŸ“

    I wrote about QuΓ© son y cΓ³mo funcionan las promesas en JavaScript

  590. πŸ“

    I wrote about Sobre el ecosistema y la fatiga de JavaScript

  591. πŸ“

    I wrote about Combinando React.js y Redux.js

  592. πŸ“

    I wrote about IntroducciΓ³n a Redux.js

  593. πŸ“

    I wrote about Compilando el Frontend con webpack

  594. πŸ“

    I wrote about InternacionalizaciΓ³n con React.js y FormatJS

  595. πŸ“

    I wrote about IntroducciΓ³n a ECMAScript 2016/7

  596. πŸ“

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

  597. πŸ“

    I wrote about Lo nuevo en React v0.14

  598. πŸ“

    I wrote about Usando ECMAScript 6 en tus tareas de Gulp

  599. πŸ“

    I wrote about Usando ECMAScript 6/2015 con Babel

  600. πŸ“

    I wrote about Buenas prΓ‘cticas del desarrollo FrontEnd

  601. πŸ“

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

  602. πŸ“

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

  603. πŸ“

    I wrote about CΓ³mo usar la etiqueta template en HTML5

  604. πŸ“

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

  605. πŸ“

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

  606. πŸ“

    I wrote about Escribiendo CSS de la forma correcta

  607. πŸ“

    I wrote about Definiendo conceptos - Closure y Scope en JavaScript

  608. πŸ“

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

  609. πŸ“

    I wrote about ΒΏQuΓ© es Scrum? ΒΏY cΓ³mo te ayuda trabajar?

  610. πŸ“

    I wrote about El mΓ³dulo Flexbox de CSS3

  611. πŸ“

    I wrote about JavaScript orientado a objetos