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 Your code is your responsibility, even if AI wrote it

  2. I saved No Meat Proxy

  3. I published how to Make Regional HTTP Requests with Durable Objects

  4. I published how to Add URL Normalization Middleware in React Router

  5. I published how to Think in Remix UI Instead of React

  6. I published how to Hydrate Isolated UI with Remix Client Entries

  7. I wrote about Multi-Entry Package Architecture

  8. I wrote about Structuring a Bun Monorepo with Shared Packages

  9. I published how to Create Animated Tab Indicators with CSS Variables

  10. I wrote about Compound Component Pattern in React

  11. I wrote about Building Accessible UI with React Aria Components

  12. I published how to Create a Copy Button for Code Blocks

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

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

  15. I published how to Build a Cache Abstraction for Cloudflare KV

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

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

  18. I saved Render JSX to images.Skip the browser.

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

  20. I published how to Handle Custom Invoker Commands in React

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

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

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

  24. I saved Ship the policy, not the code

  25. I saved The Field Guide to Grid Lanes

  26. I saved The Best Loading States Are No Loading States

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

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

  29. I wrote about How AI is Industrializing Software Engineering

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

  31. I saved The Boring Internet

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

  33. I saved Accept: text/markdown

  34. I saved Domain structure for SaaS products

  35. I saved The Vertical Codebase

  36. I saved Details that make interfaces feel better

  37. I saved Expand your hit areas

  38. I saved Nobody Gets Promoted for Simplicity

  39. I saved Why I don't use down migrations

  40. I saved How we enabled Content Security Policy for everyone

  41. I added the definition of RESTful

  42. I added the definition of MIME Type

  43. I added the definition of Same-Origin Policy

  44. I added the definition of CORS

  45. I added the definition of Bearer Token

  46. I added the definition of OIDC

  47. I added the definition of OAuth2

  48. I added the definition of GraphQL

  49. I added the definition of REST

  50. I added the definition of XML

  51. I added the definition of JSON

  52. I added the definition of TLS

  53. I added the definition of TCP

  54. I added the definition of IP

  55. I added the definition of URI

  56. I added the definition of URL

  57. I added the definition of DNS

  58. I added the definition of FTP

  59. I added the definition of CSS

  60. I added the definition of HTML

  61. I added the definition of HTTPS

  62. I added the definition of HTTP

  63. I added the definition of WSS

  64. I added the definition of Web API

  65. I added the definition of Static Assets

  66. I added the definition of Routing

  67. I added the definition of Rendering

  68. I added the definition of SSE

  69. I added the definition of WebSockets

  70. I added the definition of Idempotency

  71. I added the definition of CDN

  72. I added the definition of Caching

  73. I added the definition of Rate Limiting

  74. I added the definition of Webhooks

  75. I added the definition of Edge Runtime

  76. I added the definition of RSC

  77. I added the definition of Optimistic UI

  78. I added the definition of Progressive Enhancement

  79. I added the definition of PKCE

  80. I added the definition of Resource Server

  81. I added the definition of Authorization Server

  82. I added the definition of Refresh Token

  83. I added the definition of Access Token

  84. I added the definition of JWKS

  85. I added the definition of JWK

  86. I added the definition of JWT

  87. I added the definition of API Gateway

  88. I added the definition of Edge Functions

  89. I added the definition of Serverless

  90. I added the definition of Microservices

  91. I added the definition of Monolith

  92. I added the definition of BFF

  93. I added the definition of Edge Rendering

  94. I added the definition of Streaming SSR

  95. I added the definition of Islands Architecture

  96. I added the definition of Partial Hydration

  97. I added the definition of Hydration

  98. I published how to Access React Router Context with AsyncLocalStorage

  99. I saved Hire managers of one

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

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

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

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

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

  105. I saved The Too Early Breakpoint

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

  107. I saved sergiodxa/agent-skills

  108. I saved The Incredible Overcomplexity of the Shadcn Radio Button

  109. I saved Affordances: The Missing Layer in Frontend Architecture

  110. I saved Confirmation dialogs with zero JavaScript

  111. I saved Stylish dialogs

  112. I saved Logging Sucks - Your Logs Are Lying To You

  113. I saved Micro-libraries need to die already

  114. I saved The stacking workflow

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

  116. I saved Tips for good UI implementation

  117. I published how to Dedupe Server Calls with Remix Utils Batcher

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

  119. I saved The Perils of Reactivity

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

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

  122. I published how to Stream Shared Promise Results in React Router

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

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

  125. I published how to Avoid Waterfalls in React Suspense

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

  127. I published how to Create Reusable Action Routes in React Router

  128. I saved Prefer Gaps To Margins

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

  130. I saved Resilient Import Maps - Better Theme Development and Beyond

  131. I saved Toasts are Bad UX

  132. I saved The XY Problem

  133. I saved Don't ask to ask, just ask

  134. I saved no hello

  135. I saved never just

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

  137. I saved JSX Over The Wire

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

  139. I published how to Debounce Loaders and Actions in React Router

  140. I published how to Authenticate OAuth2 Clients with client_id and client_secret

  141. I published how to Use the OAuth2 Introspection Endpoint

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

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

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

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

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

  147. I published how to Validate JWTs with JWKS

  148. I wrote about JWT Claims in OAuth2 Access Tokens

  149. I wrote about OAuth2 Scopes Explained

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

  151. I published how to Test React Router Middleware with Bun Test

  152. I wrote about OAuth2 Tokens Explained

  153. I wrote about OAuth2 Audience Explained

  154. I wrote about JWT vs. Opaque Tokens

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

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

  157. I wrote about Using OAuth2 in a Backend for Frontend

  158. I published how to Show a 404 in React Router

  159. I saved Class methods are Rubyโ€™s useEffect

  160. I saved What I learned at Campsite

  161. I wrote about Throwing vs. Returning Redirects in React Router

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

  163. I saved How I Stay Sane Implementing Stripe

  164. I saved Domain driven boldness

  165. I saved Good concerns

  166. I saved Vanilla Rails is plenty

  167. I saved Active Record, nice and blended

  168. I saved Globals, callbacks and other sacrileges

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

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

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

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

  173. I published how to Configure the tracking branch in Git

  174. I published how to Reuse route modules in React Router

  175. I saved Stop just using โ€œFrontendโ€ or โ€œBackendโ€ to describe the Engineering you like

  176. I published how to Populate Your Rails Database with Fixtures

  177. I saved You Can't Not Have a Framework

  178. I saved This doesn't warrant a blog post

  179. I saved Because I wanted to

  180. I wrote about Making Web Component good enough

  181. I saved Layered Architectures with Laravel

  182. I saved Don't Sleep on AbortController

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

  184. I published how to Show toast after a Remix action

  185. I saved Building a Proper REST API

  186. I saved How I would do auth

  187. I published how to Simplify Component Imports with TypeScript Namespaces

  188. I saved Card Stack

  189. I saved Counterscale and the New Self-Hosted

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

  191. I published how to Validate a Form in Remix with clientAction

  192. I published how to Generate a Cloudflare Environment Type with wrangler

  193. I published how to Configure Scoped Private Packages in Bun

  194. I wrote about When to use Route Modal in React Router

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

  196. I saved Ultimate guide to multi-tenant SaaS data modeling

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

  198. I saved Creating a pointer-friendly submenu experience

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

  200. I saved Building future facing frontend architectures

  201. I saved Navigating the future of frontend

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

  203. I saved Margin considered harmful

  204. I saved In Loving Memory of Square Checkbox

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

  206. I saved The Copenhagen Book

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

  208. I saved Documenting Architecture Decisions

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

  210. I added the definition of HDR

  211. I added the definition of HMR

  212. I added the definition of PPR

  213. I added the definition of ISR

  214. I added the definition of SSG

  215. I added the definition of PESPA

  216. I added the definition of PEMPA

  217. I published how to Nest Routes with Dynamic Params in Remix

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

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

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

  221. I published how to Handle not found URLs with Remix

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

  223. I published how to Add dynamic canonical URL to Remix routes

  224. I saved Parallelized Decision Making

  225. I published how to Add custom attributes to Markdoc code fences

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

  227. I added the definition of API

  228. I added the definition of MPA

  229. I added the definition of SPA

  230. I added the definition of CSR

  231. I added the definition of SSR

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

  233. I published how to Create a CRUD with Remix

  234. I saved I miss RSS

  235. I saved RSC is React Server + Component | bobae kang

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

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

  238. I published how to Use React Portal in Remix

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

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

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

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

  243. I published how to Defer a Fetch response in Remix

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

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

  246. I published how to Build an app with Remix and Bun

  247. I saved Designing better target sizes

  248. I published how to Find and remove unused code with Knip

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

  250. I saved Kind of annoyed at React

  251. I saved Increasingly miffed about the state of React releases

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

  253. I published how to Test meta tags using Playwright

  254. I saved gilest.org: Make the indie web easier

  255. I saved Why Fetch Promise Does Not Reject on Error Responses

  256. I saved A Well-Known Links Resource - Jim Nielsenโ€™s Blog

  257. I saved The OG Social Network: Other Peopleโ€™s Websites - Jim Nielsenโ€™s Blog

  258. I saved Rationale for a Browser-Level Color Scheme Preference - Jim Nielsenโ€™s Blog

  259. I saved A Well Known URL For Your Personal Avatar - Jim Nielsenโ€™s Blog

  260. I saved React Aria

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

  262. I published how to Prefetch data for Remix Fetcher usage

  263. I published how to Keep Your Loader Data Fresh in Remix

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

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

  266. I published how to Upload Images in a Remix Application

  267. I published how to Redirect with Search Param in Remix

  268. I published how to Access the Loader Data in Remix

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

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

  271. I published how to Test meta tags with Cypress

  272. I saved Challenging Established Norms: Making Component Fetching the Exception

  273. I saved Be the browserโ€™s mentor, not its micromanager

  274. I saved The ideal viewport doesnโ€™t exist

  275. I saved My thoughts on open-source

  276. I published how to Strongly type Remix route IDs

  277. I published how to Strongly type public assets in Remix

  278. I published how to Create a reusable Form component in Remix

  279. I published how to Sync text input with URLSearchParam in Remix

  280. I saved Social RSS

  281. I saved The fediverse and the indieweb

  282. I saved Blogging as DRY

  283. I saved Everything You Can Test In Your Laravel Application

  284. I saved Dear Open Source: letโ€™s do a better job of asking for money

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

  286. I saved Generating income from open source

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

  288. I published how to Logout from Auth0 with Remix Auth

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

  290. I published how to Reset a form on success in Remix

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

  292. I published how to Send JSON to a Remix action

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

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

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

  296. I published how to Automatically commit sessions on Remix

  297. I published how to Customize Remix AppLoadContext type

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

  299. I published how to Turn on Caps Lock on Cypress

  300. I saved Fast and maintainable patterns for fetching from a database

  301. I published how to Delete a Cookie using Remix cookie helpers

  302. I published how to Add runtime SSG and ISR to Remix

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

  304. I published how to Use AMP with Remix

  305. I published how to Use Remix as a SPA only

  306. I saved A Theory of Web Relativity

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

  308. I published how to Add rolling sessions to Remix

  309. I published how to Use Server-Sent Events with Remix

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

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

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

  313. I saved Streaming: is it worth it?

  314. I saved Prioritise content over components

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

  316. I published how to Lazy-load React components in Remix

  317. I saved Overcoming Popular Issues With React Projects

  318. I saved ๐Ÿ’ฟ remix simplifies things

  319. I saved Progressively enhance for a more resilient web

  320. I saved Get in Zoomer, We're Saving React

  321. I wrote about Reusing Remix Routes for Optional Segments

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

  323. I published how to Add additional data before submitting on Remix

  324. I published how to Redirect to an external website with Remix

  325. I published how to Bubble up data on Remix routes

  326. I published how to Group related routes together in Remix

  327. I saved What if your Index Page was Smart?

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

  329. I saved How to Section Your HTML

  330. I saved Block Links: The Search for a Perfect Solution

  331. I published how to Parse Markdown with Markdoc in Remix

  332. I wrote about Dependency injection in Remix loaders and actions

  333. I wrote about Validating Environment Variables with Zod

  334. I saved Debug your server-side Remix code using VSCode

  335. I saved RSS

  336. I wrote about Handling Refresh Tokens in Remix Loaders and Actions

  337. I saved Device-Agnostic

  338. I wrote about E2E Testing Remix with Vitest and Puppeteer

  339. I published how to Optimize image loading with plain HTML

  340. I saved Using rel=preload for responsive images

  341. I wrote about Multiple forms per route in Remix

  342. I saved How to avoid layout shifts caused by web fonts

  343. I saved โ€œGuys, weโ€™re doing pagination wrongโ€ฆโ€

  344. I saved Why Remix doesnโ€™t infer types from loaders for useLoaderData

  345. I published how to Add returnTo behavior to Remix Auth

  346. I saved Survivorship Bias in Web Performance

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

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

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

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

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

  352. I published how to Use Remix with socket.io

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

  354. I published how to Avoid waterfalls of queries in Remix loaders

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

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

  357. I wrote about Clase rรกpida de programaciรณn asรญncrona

  358. I wrote about On-Demand Hydration in Remix

  359. I saved Live validation is problematic

  360. I saved Stop building client-side forms

  361. I wrote about Loader vs Route Cache Headers in Remix

  362. I wrote about The useMatches hook in Remix

  363. I wrote about Validating Remix forms with Constraints API

  364. I published how to Test Remix loaders and actions

  365. I published how to Use NProgress in a Remix app

  366. I wrote about Result Objects in TS

  367. I wrote about Dark Mode and Dark Context

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

  369. I saved When You Stop Counting

  370. I saved Why I Quit Google to Work for Myself

  371. I published how to Use Fathom with Remix

  372. I saved Donโ€™t Build A General Purpose API To Power Your Own Front End

  373. I saved Why You Should Never Use MongoDB

  374. I saved A Case For Use Cases

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

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

  377. I wrote about Automatic Revalidation in Remix

  378. I saved People read on the web

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

  380. I saved Building a resilient frontend using progressive enhancement

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

  382. I saved Browsers and Representation

  383. I saved Google vs. the web

  384. I saved Back to the Bad Old Days of the Web

  385. I saved The Mythical Document Web

  386. I saved Breaking the web forward

  387. I saved Back to the Future with RSS

  388. I saved Client-Side Architecture Basics

  389. I saved Organizing App Logic with the Clean Architecture

  390. I saved Implementing DTOs, Mappers and the Repository Pattern

  391. I saved Screaming Architecture

  392. I saved Better Software Design with Application Layer Use Cases

  393. I saved Anemic Domain Model

  394. I saved Value Objects - DDD w/ TypeScript

  395. I saved iOS 15, Humane

  396. I saved Don't overabstract your components

  397. I wrote about Creating a PDF with React in the Browser

  398. I saved Meta Theme Color and Trickery

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

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

  401. I wrote about Localizing Remix apps with i18next

  402. I wrote about Adding CSRF protection to Remix

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

  404. I wrote about Implementing Auth0 Login in Remix without Express

  405. I wrote about Using TailwindCSS with Remix

  406. I published how to Use ETags in Remix

  407. I wrote about Jest Matchers for Remix responses

  408. I wrote about Using Form Objects inside Remix actions

  409. I wrote about Route protection in Remix with Policies

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

  411. I published how to Read search params with JS

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

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

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

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

  416. I wrote about Que es un bundler de JS

  417. I wrote about Remix vs Next.js Comparison

  418. I saved Imagining native skip links

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

  420. I saved Rails design patterns - The big picture

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

  422. I saved Before You memo()

  423. I wrote about Usar variables de entorno en Next.js

  424. I saved Implement a Skip Link for Navigation-Heavy Sites

  425. I saved Meaningful Motion with Action-Driven Animation

  426. I saved An Interactive Guide to CSS Transitions

  427. I published how to Build your own RSS Reader

  428. I published how to Keep Heading Levels Consistent with React Context

  429. I saved Preload: What Is It Good For?

  430. I saved The unreasonable effectiveness of simple HTML

  431. I saved Open Peeps

  432. I saved System Design 101

  433. I saved A primer on investing for designers and developers

  434. I wrote about About

  435. I saved In Critical Defense of Frontend Develop

  436. I saved Be Wary of Nesting Roles

  437. I saved Accessible SVGs

  438. I wrote about ยฟQuรฉ son Server Components de React y cรณmo se relacionan con SSR/SSG/ISR?

  439. I wrote about ๐Ÿ”ฅ Pro Tip: Name your useEffect functions

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

  441. I saved Alt-texts: The Ultimate Guide

  442. I saved Polymorphic React Components in TypeScript

  443. I saved CSS and Scalability

  444. I wrote about Using MDX with Remote Content

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

  446. I saved Practical React Query

  447. I published how to Use TailwindCSS Typography with Dark Mode Styles

  448. I saved Don't design for mobile

  449. I saved Stop Using โ€œDrop-downโ€

  450. I saved Decoupling, Architecture and Teams

  451. I saved The Lava Layer Anti-Pattern

  452. I saved UI as an afterthought

  453. I wrote about Todo lo que sรฉ de SWR

  454. I saved In 2020, what is "frontend" ๐Ÿคจ

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

  456. I saved Wormhole state management

  457. I saved Todo el software estรก roto

  458. I saved What is the Value of Browser Diversity?

  459. I saved Margins and Composability in CSS

  460. I saved Nailing Your First (Info-Product) Launch

  461. I saved Defining Component APIs in React

  462. I saved The Modern Front-End Design System Stack

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

  464. I saved Architecting UIs for Change

  465. I saved When frontend means full stack

  466. I saved Building a Button Part 2: Hover Interactions

  467. I saved Building a Button Part 1: Press Events

  468. I wrote about The States of the UI

  469. I saved About HTML semantics and front-end architecture

  470. I saved "Semantic" CSS

  471. I saved CSS Utility Classes and "Separation of Concerns"

  472. I saved Second-guessing the modern web

  473. I saved A clean start for the web

  474. I wrote about What I Use

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

  476. I saved Using SwiftUI's Spacer to Create Complex Layouts

  477. I saved Most tech content is bullshit

  478. I saved The Art of UI Skeletons

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

  480. I saved Shared Hook State with SWR

  481. I saved Testing in the Frontend World

  482. I saved The Real Dark Web

  483. I saved The Elements of UI Engineering

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

  485. I saved The Great Divide

  486. I saved We have a problem with promises

  487. I saved Taming the asynchronous beast with ES7

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

  489. I saved 7 Principles of Rich Web Applications

  490. I saved ๐ŸŒฑ My blog is a digital garden, not a blog

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

  492. I saved How the Blog Broke the Web

  493. I saved Turning the database inside-out with Apache Samza

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

  495. I saved How to Section Your HTML

  496. I saved write on your own website

  497. I saved Going Indie. Step 2: Reclaiming Content

  498. I saved Just write

  499. I saved The Documentation Compendium

  500. I saved Why Text Buttons Hurt Mobile Usability

  501. I saved Bulletproof node.js project architecture ๐Ÿ›ก๏ธ

  502. I saved The Power of Sensible Defaults

  503. I saved HTML Reference

  504. I saved CSS Reference

  505. I saved The God Login

  506. I saved Your Body Text Is Too Small

  507. I saved Architecture as a burden

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

  509. I saved Scaling React Server-Side Rendering

  510. I saved Refactoring UI

  511. I saved Cards

  512. I saved Introducing Grial

  513. I saved Aplicando estilos a Pulse Editor con styled-components

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

  515. I saved Depurando aplicaciones de Node.js v8.0.0

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

  517. I saved Creando botones propios para Pulse Editor

  518. I saved Te presentamos la nueva versiรณn de Node.js

  519. I saved Creando sitios estรกticos con Next.js

  520. I saved Implementando Pulse Editor

  521. I saved Aplicaciรณn de escritorio Pulse

  522. I saved Presentamos Pulse Editor

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

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

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

  526. I saved Manejo de dependencias JavaScript con Yarn

  527. I saved Deploy y orquestaciรณn de microservicios con now.sh

  528. I saved Introducciรณn a JSON Web Tokens (JWT)

  529. I saved ยฟQuรฉ es y para quรฉ sirve Babel?

  530. I saved Desarrollando aplicaciones de escritorio con Electron.js

  531. I saved ยฟQuรฉ es una aplicaciรณn isomรณrfica?

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

  533. I saved Usando React.js en el servidor con Django

  534. I saved Estado inmutable con Redux e Immutable.js

  535. I saved Componentes de Alto Orden en React.js

  536. I saved Obteniendo datos en aplicaciones de Redux

  537. I saved Usando Redux en el servidor con Socket.io

  538. I saved Creando cรณdigo modular con ducks de Redux

  539. I saved Renderizando aplicaciones de Redux en el servidor

  540. I saved Manejo de errores en Redux.js

  541. I saved Migrando a Redux

  542. I saved Ruteo en aplicaciones de Redux y React.js

  543. I saved Glosario de tรฉrminos de Redux

  544. I saved Estructura de archivos Ducks para Redux.js

  545. I saved Pruebas unitarias en Redux.js

  546. I saved Acciones asรญncronas en Redux.js

  547. I saved Middlewares en Redux.js

  548. I wrote about Como me iniciรฉ en el desarrollo web

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

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

  551. I wrote about How shallow: true works in Rails

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

  553. I wrote about Como organizo mis aplicaciones de React

  554. I wrote about How I Organize React Applications

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

  556. I wrote about Data-Aware Components

  557. I wrote about Collected Notes TS Client

  558. I published how to Use SWR with Geolocation

  559. I wrote about Using Collected Notes as CMS

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

  561. I published how to Sync SWR cache with Web Storage

  562. I published how to Configure Google Suite MX records in Vercel

  563. I published how to Report Web Vitals in Next.js

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

  565. I published how to Purge unused CSS with TailwindCSS

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

  567. I published how to Use a scoped registry with Yarn

  568. I wrote about Using Immer with SWR to mutate data

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

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

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

  572. I wrote about Using Tailwind with Next.js

  573. I wrote about Using Suspense for Data Fetching Today with SWR

  574. I wrote about Using Paginated Data with SWR

  575. I wrote about Introduction to SWR

  576. I published how to Automatically Publish to npm using GitHub Actions

  577. I wrote about Feature Flags in React with Flagged

  578. I wrote about Next.js File Structure

  579. I wrote about Testing in Next.js: Dynamic Imports

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

  581. I wrote about Working with Forms in React without libraries

  582. I wrote about Working with conditions and lists in React

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

  584. I wrote about Introducing Contentz

  585. I wrote about Career Titles and Levels in Tech

  586. I wrote about Deploy de Contentz a Netlify

  587. I wrote about Contentz es Omakase

  588. I wrote about Conceptos bรกsicos de JS: Array#forEach

  589. I wrote about Cรณmo crear y publicar un mรณdulo para npm

  590. I wrote about Aplicaciones web con Zero Server

  591. I wrote about Presentando Contentz

  592. I wrote about Uso del prop children en React

  593. I wrote about Componentes con Hijos Personalizables en React

  594. I wrote about Composiciรณn de Componentes en React

  595. I wrote about Tipos de datos en React

  596. I wrote about Props con valores predefinidos en React

  597. I wrote about Componente de React personalizables usando props

  598. I wrote about Componentes con React

  599. I wrote about Hola Mundo con React

  600. I wrote about Cargando React desde un CDN

  601. I wrote about Mi Static Site Generator ideal

  602. I wrote about Automatizaciรณn con Shell Scripts

  603. I wrote about Conceptos bรกsicos de JS: Array#push

  604. I wrote about Conceptos bรกsicos de JS: Array#filter

  605. I wrote about Conceptos bรกsicos de JS: Array#map

  606. I wrote about Usando Generadores Asรญncronos en JavaScript

  607. I wrote about Carrusel de elementos dinรกmicos con React.js

  608. I wrote about Scalable Real-Time Applications

  609. I wrote about Aplicaciones Real-Time de Alta Escala

  610. I wrote about React v16.6: lazy, memo y mรกs

  611. I wrote about Introducciรณn a MDX

  612. I wrote about Documentation, Lessons Learned

  613. I wrote about Documentaciรณn, Lecciones Aprendidas

  614. I wrote about ยฟCรณmo mantenerse actualizado con el ecosistema de JavaScript?

  615. I wrote about Renderizando Markdown en React.js

  616. I wrote about An Accessible Approach to Frontendย Testing

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

  618. I wrote about Implementando un Servidor de GraphQL

  619. I wrote about Bye Platzi, hi โ–ฒZEIT

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

  621. I wrote about Mezclando flujos sรญncronos y asรญncronos usando promesas en JavaScript

  622. I wrote about Introducciรณn a GraphQL

  623. I wrote about Quรฉ son y cรณmo funcionan las promesas en JavaScript

  624. I wrote about Sobre el ecosistema y la fatiga de JavaScript

  625. I wrote about Combinando React.js y Redux.js

  626. I wrote about Introducciรณn a Redux.js

  627. I wrote about Compilando el Frontend con webpack

  628. I wrote about Internacionalizaciรณn con React.js y FormatJS

  629. I wrote about Introducciรณn a ECMAScript 2016/7

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

  631. I wrote about Lo nuevo en React v0.14

  632. I wrote about Usando ECMAScript 6 en tus tareas de Gulp

  633. I wrote about Usando ECMAScript 6/2015 con Babel

  634. I wrote about Buenas prรกcticas del desarrollo FrontEnd

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

  636. I wrote about ECMAScript 6: nueva sintaxis y caracterรญsticas para JavaScript

  637. I wrote about Cรณmo usar la etiqueta template en HTML5

  638. I wrote about Automatizaciรณn de tareas de frontend usando Gulp.js

  639. I wrote about Uso de mรณdulos en JavaScript con ECMAScript 6

  640. I wrote about Escribiendo CSS de la forma correcta

  641. I wrote about Definiendo conceptos - Closure y Scope en JavaScript

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

  643. I wrote about ยฟQuรฉ es Scrum? ยฟY cรณmo te ayuda trabajar?

  644. I wrote about El mรณdulo Flexbox de CSS3

  645. I wrote about JavaScript orientado a objetos