Details that make interfaces feel better 🔗
Read it on the web [...]
a collection of dev rss feeds - blogroll
Posts
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
A term used to describe APIs that follow the principles of REST, using standard HTTP methods, stateless communication, and resource-based URLs to prov [...]
A standardized identifier used by HTTP to describe the format of a file or response, such as text/html, application/json, or image/png. [...]
A browser security rule that restricts scripts from interacting with resources from a different origin unless explicitly allowed through mechanisms su [...]
A browser security mechanism that controls whether a web page can request resources from a different origin than the one that served the page. [...]
A type of access token used in HTTP authentication where possession of the token grants access to protected resources, commonly sent in the Authorizat [...]
An identity layer built on top of OAuth2 that allows applications to authenticate users and obtain identity information through standardized tokens su [...]
An authorization framework that allows applications to obtain limited access to user resources on another service without requiring the user to share [...]
A query language and runtime for APIs that allows clients to request exactly the data they need from a server rather than receiving fixed responses fr [...]
An architectural style for building Web APIs where resources are accessed through standard HTTP methods such as GET, POST, PUT, PATCH, and DELETE. [...]
A markup language used to represent structured data in a hierarchical format, historically common in web services before JSON became dominant. [...]
A lightweight data format commonly used in APIs to exchange structured data between clients and servers in a format that is easy for humans to read an [...]
A cryptographic protocol used to secure communications over a network, commonly used by HTTPS and WSS to encrypt data between clients and servers. [...]
A core internet protocol that ensures reliable, ordered delivery of data between devices communicating over a network. [...]
The protocol responsible for addressing and routing packets across networks so data can travel from a source device to a destination device. [...]
A broader identifier used to identify a resource, which may include URLs or other naming schemes that reference resources without specifying their loc [...]
A standardized address used to locate resources on the web, specifying the protocol, domain, path, and optionally query parameters or fragments. [...]
A distributed system that translates human-readable domain names into IP addresses so browsers can locate servers on the internet. [...]
A network protocol used to transfer files between a client and a server, historically common for uploading website files to hosting servers. [...]
A stylesheet language used to control the presentation of HTML documents, including layout, colors, typography, spacing, and responsive design. [...]
The standard markup language used to structure content on the web, defining elements such as headings, paragraphs, links, images, and other page struc [...]
A secure version of HTTP that encrypts communication between a client and server using TLS, protecting data from interception or modification during t [...]
The application-layer protocol used for communication between web browsers and servers, defining how requests and responses are formatted and transmit [...]
The encrypted version of the WebSocket protocol, using TLS to provide secure real-time communication between a client and a server over the internet. [...]
An API exposed over HTTP that allows clients such as browsers or mobile applications to interact with backend services. [...]
Files such as images, fonts, stylesheets, and scripts that are served directly to the browser without server-side processing. [...]
The mechanism that determines which content or component should be displayed based on the current URL, either handled by the server or by client-side [...]
The process of generating the UI of an application from data and components, either on the server (SSR) or in the browser (CSR). [...]
A browser technology that allows a server to push real-time updates to the client over a single HTTP connection, commonly used for notifications and l [...]
A protocol that provides persistent, bidirectional communication between a client and a server, allowing real-time features such as chat, live updates [...]
A property of an operation where performing the same request multiple times produces the same result, commonly used in APIs to make retries safe. [...]
A distributed network of servers that cache and deliver static assets such as images, scripts, and stylesheets from locations geographically closer to [...]
A performance technique where responses or computed data are stored temporarily so future requests can be served faster without repeating the same com [...]
A technique used by APIs and servers to restrict how many requests a client can make within a given time period, protecting systems from abuse or over [...]
A mechanism where one system sends HTTP requests to another when specific events occur, allowing applications to receive real-time updates without pol [...]
A lightweight JavaScript runtime designed to run code at the edge of a CDN network, commonly used for Edge Functions and SSR close to the user. [...]
A React rendering model where components run on the server and send serialized UI to the client, reducing the amount of JavaScript needed in the brows [...]
A UX pattern where the interface updates immediately after a user action assuming the server operation will succeed, later reconciling the UI state wi [...]
A web development strategy where a website works with basic functionality using HTML and server responses, and enhances the experience with JavaScript [...]
An extension to the OAuth2 Authorization Code Flow that protects public clients from authorization code interception by requiring a one-time secret du [...]
A server that hosts protected resources and validates access tokens before granting access, commonly implemented as an API that trusts tokens issued b [...]
A server responsible for authenticating users and issuing tokens such as access tokens and refresh tokens, acting as the central authority in OAuth2 a [...]
A token used to obtain new access tokens from an Authorization Server without requiring the user to authenticate again, typically long-lived and store [...]
A credential issued by an Authorization Server that allows a client to access protected resources on a Resource Server, typically short-lived and incl [...]
A JSON document containing one or more JWKs, typically exposed through a public endpoint so Resource Servers can retrieve the keys required to validat [...]
A JSON representation of a cryptographic key used in web security systems, commonly published by Authorization Servers so other services can verify si [...]
A compact and self-contained token format used to securely transmit claims between parties, commonly used in authentication systems where an Authoriza [...]
A service that acts as a single entry point for multiple backend services, handling routing, authentication, rate limiting, and request transformation [...]
Small serverless functions that run at the edge of a CDN network close to users, often used for authentication, request rewriting, personalization, an [...]
A cloud computing model where applications run as short-lived functions managed by a platform, allowing developers to deploy code without managing ser [...]
An architectural style where an application is composed of multiple independent services that communicate over a network, each responsible for a speci [...]
An application architecture where the frontend, backend, and business logic are developed and deployed together as a single system rather than split a [...]
An architectural pattern where a backend service is built specifically for a particular frontend, aggregating data from multiple services and shaping [...]
A rendering strategy where SSR runs on edge runtimes located close to users, reducing latency compared to rendering requests in a centralized server o [...]
A variation of SSR where the server sends HTML to the browser in chunks as it is generated, allowing the browser to begin rendering the page before th [...]
An architecture where most of a page is static HTML but small interactive sections, called islands, are hydrated as independent components instead of [...]
A rendering strategy where only specific parts of a server-rendered page are hydrated with JavaScript instead of the entire document, reducing the amo [...]
The process where client-side JavaScript takes control of HTML generated by SSR, attaching event listeners and restoring application state so the page [...]
Access React Router's context from any function without passing it through every layer. [...]
Read it on the web [...]
Manage database lifecycle with React Router middleware, ensuring connections close even when errors occur. [...]
Scale your route organization as your app grows by splitting into multiple directories, each using flat routes internally. [...]
Protect your React Router app from CSRF attacks using browser Sec-Fetch headers in middleware. [...]
Read it on the web [...]
Test your business logic, not your loaders and actions. Treat them as integration points and avoid mocking nightmares. [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Prevent duplicate API calls in React Router loaders using Remix Utils Batcher middleware for better performance. [...]
Transform form data to database objects and back using actions and loaders with proper separation of concerns. [...]
Read it on the web [...]
Understanding MVC, MVT, MVVM, and Component architectures through responsibility separation and data flow in modern web applications. [...]
Create a master-detail interface that adapts based on how users access it, full context when browsing, focused when direct. [...]
Learn how React Router's built-in deduplication system uses references to eliminate duplicate data transmission when combining promises in y [...]
Read it on the web [...]
Learn how to use a nested index route with a clientLoader in React Router to conditionally redirect based on screen size, ensuring a smooth [...]
Learn how React Suspense boundaries can cause or prevent data loading waterfalls, the difference between nested and sibling boundaries, and [...]
Three approaches to handle deferred promises in React Router v7: Await component, React.use hook, and direct promise rendering. [...]
Learn how to structure server and client actions in React Router using a clear and scalable pattern. Centralize logic, handle forms, manage [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Add a color scheme toggle to your React Router app using cookies for persistent, flash-free light, dark, or system preference. [...]
Read it on the web [...]
Read it on the web [...]
Debounce loaders and actions in React Router at the route level—cleaner code, better control, no extra wrappers needed. [...]
Use client_id and client_secret to authenticate your app with the Authorization Server in OAuth2 flows. [...]
Learn how to use the introspection endpoint in OAuth2 to validate opaque tokens and extract user and scope information. [...]
Learn how to securely revoke refresh tokens in OAuth2 and prevent unauthorized access after logout or token compromise. [...]
Learn how to securely implement PKCE in the OAuth2 Authorization Code flow and why it’s useful for public and server-rendered apps. [...]
Learn how to add custom claims to JWT access tokens in OAuth2 without exposing sensitive data. [...]
Learn how to validate exp, iat, and nbf claims in JWT access tokens to ensure your API only accepts valid tokens. [...]
Learn how to use the scope claim in OAuth2 access tokens to authorize actions in your API with fine-grained permissions. [...]
Learn how to verify JWT access tokens securely using JWKS, without hitting your Authorization Server on every request. [...]
JWTs used as OAuth2 access tokens contain claims that define identity, security, and permissions. Learn how to use and validate them. [...]
OAuth2 scopes define what an app can do with your data. Learn how they work, best practices, and how to enforce them in your API. [...]
Create a per-request singleton in React Router middleware to optimize request-based caching and batching without persistent global state. [...]
Learn how to test React Router middleware using Bun Test, mock requests, and validate session handling in just a few simple steps. [...]
OAuth2 uses Access, Refresh, and ID Tokens, each with a distinct role. Learn how they work and how to store them securely. [...]
The OAuth2 audience (aud) claim ensures tokens are used only by the right APIs. Learn how it works and why it matters. [...]
JWTs offer fast, stateless authentication, while opaque tokens provide better revocation control. Which one should you use? [...]
Enable middleware in React Router 7.3.0 to intercept requests and enhance loaders and actions on both server and client. [...]
Read it on the web [...]
Securely handle OAuth2 in a Backend-for-Frontend (BFF) with React Router, keeping tokens off the frontend for better security [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Throwing vs. returning redirects in React Router: understand when to use each, how they work, and how to handle them properly [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Learn how to populate your Rails database with fixtures for testing and development. [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Learn to display a toast notification after a Remix action by utilizing the clientAction function to ensure consistent user feedback. [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
A development-time compiler feature where the data used by an application is replaced at runtime without reloading the application and losing any in-m [...]
A development-time compiler feature where the code is replaced at runtime without reloading the application or server and losing any in-memory state. [...]
An application rendering strategy where SSG is used in combination with SSR to generate at build time the static parts of an HTML document and then us [...]
An application rendering strategy where SSG is used combined with SSR to update or generate new static HTML files at runtime without re-building the a [...]
An application rendering strategy where the server generates static HTML files at build time instead of runtime. Updating those static files require a [...]
A progressively enhanced SPA that uses SSR on document requests, and after JS loads start working as a SPA, while most if not all of the behavior can [...]
A progressively enhanced MPA that uses JS, general navigation happens like a MPA but in-page changes happens with or without JS to fetch more data as [...]
Read it on the web [...]
Read it on the web [...]
Use useRouteLoaderData hook to access route loader data inside ErrorBoundary components when handling errors. [...]
Access loader data from entry.client.tsx using the global window.__reactRouterContext object before hydrating your app. [...]
Read it on the web [...]
Store user language preferences in cookies to persist locale selections across sessions using middleware. [...]
Read it on the web [...]
Read it on the web [...]
@markdoc/markdoc@0.4.0 [...]
Read it on the web [...]
Code interface used to interact with an application. It can go from a function in a library, a method in the runtime of the code to an HTTP based one [...]
An application navigation strategy where the navigation between routes/views happens by requesting a new document from the server. [...]
An application navigation strategy where the navigation between routes/views of the application happens client-side without creating a new document re [...]
An application rendering strategy where the rendering happens in a client, typically the browser, in the same process event listeners are attached to [...]
An application rendering strategy where the rendering happens in a server, typically at runtime when a new render is requested. [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Forward browser cookies to external APIs by passing request headers through fetch calls. [...]
Read it on the web [...]
Read it on the web [...]
Use clientLoader to prevent server loader execution during client-side navigation while keeping it on document requests. [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
If you're using Remix, you can ask it to prefetch the data of a new route using Link's prefetch prop, but if you need to use `fetcher.loa… [...]
Using the useRevalidator hook we can revalidate our loader data on an interval to ensure that our data is always fresh. How fresh can depe… [...]
If you're building a Remix web app, and then you decide to expose an API from that app, you may be tempted to try to reuse the same routes … [...]
Learn how to access URL search params in React Router loaders and components using the URL and URLSearchParams APIs. [...]
If you want to add file upload to let users send you images, e.g., for an avatar, Remix provides a few (still unstable for some reason) too… [...]
Let's say you want to ensure a specific search param is always set. To do so, you can first check if the search param is set, and if not, r… [...]
If you're using Remix, you may have noticed that the loader data is not passed to the components as props. This is because the loader data … [...]
Let's say you're writing a loader that needs to do a fetch call to get some data, something simple just for the example: ```ts import { js… [...]
If you have a parameter like the locale `/:locale/*` that you want to get in entry.server for any reason, you can use the `EntryContext` ob… [...]
If you want to ensure your webs have the correct meta tags like the title, description, Open Graph or Twitter Cards. We can test the title… [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
When using something like `useRouteLoaderData()` we need to provide the route ID of the route we want to get the data from. This could als… [...]
Remix gives us two ways to work with assets, we can import them directly and get a string to the hashed file path, or we can place the file… [...]
Let's say we want to build a custom Form component for our application, this Form will do things inside like rendering a hidden input with … [...]
Let's say we're building a search form that needs to keep the value on the search params as the user type. We could directly update on the… [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Share data between React Router loaders efficiently using TanStack Query to avoid duplicate fetches and improve performance. [...]
If you're using Remix Auth together with Auth0, you may found out that if you just use the logout method from Remix Auth and try to login a… [...]
If you're creating route in Remix that needs to send a file from you may want to use `node:fs` to get the file content from the system and … [...]
If you have a form with one or more uncontrolled inputs you may have seen the case where the user submits the form but the inputs are not c… [...]
The traditional way to parse a form body in Remix is by using `request.formData()` to get a new FormData object, then use `formData.get()` … [...]
While [there's a proposal to add support for this](https://github.com/remix-run/remix/discussions/1959#discussioncomment-2205718), right no… [...]
Set multiple Set-Cookie headers in loader responses using header arrays or the Headers.append method. [...]
If you're using SSE in a Remix app, you may find you want to be able to close the connection from the server. The [Remix Utils `eventStrea… [...]
Add performance measurements to response headers to inspect route timing from the browser DevTools. [...]
When you use Remix's session feature you have to always remember to commit your session before sending the response. This is a simpler fun… [...]
Read it on the web [...]
Read it on the web [...]
If you're testing a feature that depends on Caps Lock to be on, e.g. detect Caps Lock and warn on password inputs. You can test this works … [...]
Read it on the web [...]
If we have set a cookie and we need to tell the browser to delete it, we can do that with a simple trick, we can set the cookie value to an… [...]
If you came to Remix from the Next.js world, you might wonder how to use SSG and ISR with Remix. The framework doesn't support it; instead… [...]
When Google crawls your website, it will try to execute all the JavaScript it finds. And even if your app… [...]
If for any reason, you want to add AMP to your Remix app, there are a few things you need to do. First, go to your `app/root… [...]
Remix always does SSR on document requests. Then it works as an MPA until JS loads and React hydrates your app. At that … [...]
Read it on the web [...]
Detect the Save-Data header and conditionally disable client-side JavaScript to reduce data usage. [...]
Rolling sessions is a technique to extend the maxAge of a session cookie by resetting the cookie's expiration date… [...]
Using Server-Sent Events (SSE) you can keep a connection between a browser (client) and an HTTP server open an… [...]
Support both JavaScript and no-JavaScript users by detecting hydration state in fetcher forms. [...]
Use process.env client-side with Remix The process.env thing is a Node.js-only feature that many front-end developers adopted as something t… [...]
Let's say you have a form with a few inputs. You want to persist the inputs' values after submitting… [...]
Read it on the web [...]
Read it on the web [...]
When you code a loader/action (we'll call them data functions from now) in Remix, you can either retur… [...]
Suppose we want to create a timeline component that lists different events. Each event type has a unique com… [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Let's say we have a URL structure like this: /:category/products /products Both routes need to work… [...]
Set flash messages while destroying user sessions using cookie or database session storage. [...]
The Remix approach to submitting forms is to replace the tag with their compone… [...]
Remix gives us a useful redirect helper function which lets us quickly create a new redirect Respon… [...]
React introduced a one-way data flow where a parent component has some data (state) and passes it to the children… [...]
Next.js released its new nested routes feature yesterday (Friday, 9th September). One of the things they … [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Markdoc is this new Markdown parser by Stripe, and it's a simple to use yet extendable library we can use i… [...]
Dependency Injection is a way our function or class can receieve from the caller the instancie… [...]
Zod is a great library to do schema based validations and get fully typed objects as a result. Environmen… [...]
Read it on the web [...]
When using an external API, you may need to keep an access token to send a request as a user. And a refresh… [...]
Read it on the web [...]
Vitest is a testing framework, similar to Jest, but way faster, built on top of Vite, which uses esbuil… [...]
If you're building some page like a landing with some images, you may want to optimize how these images l… [...]
Read it on the web [...]
Suppose you have a complex enough Remix application. In that case, you may have reached the point where a sing… [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
If you're using Remix Auth, you may want to add support to return the user to where it was before redirectin… [...]
Read it on the web [...]
Recently, the Tailwind Labs team published a new Combobox component on Headless UI and use… [...]
I have been migrating a Next.js app to Remix for a few months. I already wrote how to run them … [...]
Suppose you rendered a component in your UI with the idea of pref… [...]
Read it on the web [...]
If you use Remix together Tailwind (and you should!), you may have found out that you need to run th… [...]
If you want to add real-time capabilities to your Remix app without using an external service, the easiest way is proba… [...]
Remix has a feature called Resource Routes which let you create endpoints returning anything. Usin… [...]
Remix does a fantastic job of avoiding waterfalls everywhere. It preloads assets. It downloads JS a… [...]
If you want to migrate a Next app to Remix, you may be tempted to do a complete migration. Still, if your … [...]
When you build a web application, you may reach a point where some performance problems could be solved by a… [...]
El código síncrono se ejecuta una linea a la vez, cierto? Entonces si haces esto: let result = fn(… [...]
Remix makes it really easy to don't send JS to the browser. It even has a guide on how to let routes statically def… [...]
Read it on the web [...]
Read it on the web [...]
Document Request So, let's say you have a route at /my-super-route, and there you have a loader fun… [...]
If you use Remix, there's a hook that you can use called useMatches, this hook is a way to access some internal d… [...]
The Constraints API is a browser API that has been available since the times of IE10, yep, that old.… [...]
If you are using Remix, most of your application code will live in the loaders and actions instead of React compo… [...]
Remix's philosophy is to kill all the spinner! This is amazing, but sometimes it's not possible. Connections may be… [...]
Build resilient TypeScript apps that handle failures gracefully using the Result pattern to make errors explicit in your types. [...]
Most of the time, there is two way to implement dark mode support in an application. Using media queries with `pre… [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
If you want to use Fathom for your analytics and use Remix to build your app, you can configure it to work quite quickly. … [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Fix gyp: No Xcode or CLT version detected! error If you have this error, and you running xcode-select --install tells you you have them inst… [...]
If you use Dependabot to keep your project dependencies up-to-date, and if you use Remix you may have no… [...]
If you have used SWR or React Query, you may be used to a feature both libraries have called automatic revalidat… [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
If you need to generate a PDF for your users, maybe some reports or a document you want users to be abl… [...]
Read it on the web [...]
Hey! This is outdated, Remix Outlet component now supports sending data to leaf routes using … [...]
A Remix app is by default fast, the framework optimize a lot how the required resources for a page are loaded s… [...]
There's a lot if libraries to implement i18n in JS and React, and i18next is one of the most popular out ther… [...]
While you may not need CSRF if your cookies have the SameSite: Lax configured, it may still be a good idea to … [...]
If you are used to build SPA and your APIs are REST you probably have found the issue with over fetching, t… [...]
While this works, I recommend you to don't do all of this yourself, instead use Remix Auth with… [...]
Let's see how to do the setup of TailwindCSS for a project using Remix. Install Tailwind The first thing we ne… [...]
ETags are strings used to identify a particular version of a resource. If the URL is the identity of a resource the ETag is t… [...]
When testing the logic of an action in Remix, or any function returning a Response, even a Fetch API Response,… [...]
In Remix, each route can export a single action function used to handle any non GET request received b… [...]
A Policy is a design pattern used to define authorization rules that can be re-used easily across an app… [...]
Let's say the user is currently at the URL /:username, and there's a button to follow that … [...]
If you need to read the search params (aka query string) from a URL in JS the most common way is to use one of the mu… [...]
If you are trying to serialize an object which is not an instance of ActiveRecord, when… [...]
Most of the them, when working on Rails with ActiveModel::Serializer you will do something … [...]
If you are working with an API which expects and returns keys without using camelCase, e.g if… [...]
If you want to change the local used for internationalization a single time from the params of the … [...]
Para entender esto es un poco útil que aprendan como funcionaban las dependencias antes, hace mucho tiempo atrás (unos 6… [...]
I have been using Next for years, since the v1 was released, I even become an early contributor of the framework and… [...]
Read it on the web [...]
Add missing created_at and updated_at columns in Rails If, like me, you forgot to add the t.timestamps when creating a new table, you may … [...]
Read it on the web [...]
If, for some reason, you need to rename a column in a table you need to create a new migration and r… [...]
Read it on the web [...]
Las variables de entorno nos permiten configurar como un software se ejecuta dependiendo de la computadora … [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
RSS is a standard way to use XML to share content from a website so other apps could read it and show it in a differen… [...]
When building for the web one of the most common elements are the heading tags (h1 to h6) … [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
A photo of me Hi there! I'm a web developer currently based on Lima, Perú. I'm currently working in Silverback Ventures as the web devel… [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Ayer el team de React… [...]
When creating an effect in React, avoid arrow function and instead use a function with a name. This wil… [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
One of the most common ways to use MDX in a website is to have the .mdx files together with the rest of the webs… [...]
Read it on the web [...]
Read it on the web [...]
Since TailwindCSS v2 it comes with dark mode support. Enabling it is really simple, in the `tai… [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Conceptos Básicos Introducción En este artículo muy largo vamos a ver como usar esta librería para trabajar con d… [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Let's say you are in charge of building the UI of Twitter, how many states do you think that UI … [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
This is my current development setup. Tech Stack TypeSc… [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Read it on the web [...]
Corría el año 2002, tenía unos 10 años, un día me pregu… [...]
One of the most common architectural styles to build an HTTP API is… [...]
Most people when working with tools like webpack te… [...]
Learn how to create nested shallow resource routes in Rails [...]
Use the useMutation hook together with SWR to implement optimistic updates in your React components [...]
Hay muchas formas de organizar aplicaciones de React, con los años esta es la que más me ha convencido [...]
There are many ways to organize a React application, with the years this the the one I liked the most [...]
Aprende como usar React.Suspense para controlar el estado de carga de imágenes. [...]
Normalmente, al crear un app de React, un componente necesita un dato del API, ej. el usuario log… [...]
A TypeScript client for the Collected Notes API. TypeScript Support Types for the API returned value Types fo… [...]
Learn how to use SWR with the Geolocation WebAPI to show the user location in a map and keep it up-to-date with any change. [...]
Now that Collected Notes has an API to get the notes you wrote here it's possible to use it as a CMS (Content Manag… [...]
Implement a synced session status using SWR to keep the user logged in/out in all the tabs or windows [...]
Use Web Storage to retain SWR cache between page reloads [...]
Use Google Suite with a domain whose NS records is in Vercel [...]
Measure the performance of our Next.js application with Web Vitals [...]
Learn how to use React.Suspense to handle the loading state of an image. [...]
Learn how to use the built-in purge support of Tailwind to remove unused classes in production. [...]
Learn how you can create a redirect in any project deployed to the Vercel platform. [...]
Learn how you can configure Yarn to use a different registry for scoped packages [...]
Use Immer to make optimistic UI updates with SWR easier to follow [...]
Learn how to use the Render as you Fetch pattern with React and SWR. [...]
Optimizing the performance of a Next.js using SWR and data prefetching. [...]
Client-Side Applications could have different types of states based on the requirements, let's dig through them and learn their differences. [...]
Learn how to use Tailwind in a Next.js application. [...]
Learn how to use SWR for data fetching with Suspense to handle loading states. [...]
Learn how to use SWR to build an infinite scrolled paginated data. [...]
Learn how to start using SWR, the ZEIT data fetching library for React applications. [...]
Create a GitHub Actions workflow to automatically publish new version of a package when creating a new release on GitHub. [...]
Use Flagged to detect Feature Flags and render or not a React component [...]
Overview of the file structure I like to use in Next.js projects [...]
Learn how to test components using dynamic imports in a Next.js application. [...]
Learn how to create redirects when using Next.js in the most efficient way. [...]
Learn how to work with forms and form elements in React without using another library. [...]
Learn how to conditionally render elements and how to properly work with lists in React. [...]
Learn how to start a React project, create your first component and use the State and Effects hooks to implement basic behaviors. [...]
Contentz, a Pure Static Site Generator which let you focus on the content and gives you a highly optimized website. [...]
List of possible career paths, titles and level you could find while working as Software Engineer. [...]
Aprende como llevar tu sitio de Contentz a producción usando Netlify. [...]
Contentz toma decisiones por uno, a cambio nos ofrece un sitio optimizado para un mejor rendimiento y lectura. [...]
Aprende a usar Array#forEeach, como se implementa a mano y casos de uso prácticos de este método de los array en JavaScript. [...]
Aprende como crear un módulo y publicarlo a npm configurando Prettier, ESLint, pruebas, tipos y más. [...]
Introducción a Zero Server, el framework de desarrollo web con cero configuración. [...]
Contentz, un Pure Static Site Generator para obtener un sitio web super optimizado. [...]
El prop children tiene significado especial para React, veremos para que sirve y como usarlo en nuestros propios componentes. [...]
Para evitar prop drilling y hacer componentes aún más personalizables vamos a ver como usar un prop para cambiar el contenido de un componentes de Rea [...]
Una de las mejores cosas de React es poder combinar componentes para crear nuevo componentes más complejos [...]
Hay varias formas de definir que tipos de datos recibe un componente en React, puede ser TypeScript, Flow o PropTypes [...]
Es muy común querer tener props con valores por defecto en nuestros componentes de React, veremos varias formas de lograr este objetivo. [...]
Los props nos permiten crear componentes de React que sean personalizables y que nos sirven para muchos más casos [...]
Los componentes de React son la unidad básica de cualquier aplicación hecha con esta librería, aprende como crear y usar componentes de React [...]
En este tutorial vamos a ver como crear un Hola Mundo en React sin usar JSX [...]
En este tutorial vamos a ver como crear un Hola Mundo en React sin usar JSX. [...]
Un artículo con ideas de como sería mi generador de sitios estáticos ideal [...]
Aprende a usar Shell Scripts para automatizar tareas, todo con un ejemplo práctico para montar un entorno de trabajo para un proyecto en Node.js [...]
Aprende a usar Array#push, como se implementa a mano y casos de uso prácticos de este método de los array en JavaScript. [...]
Aprende a usar Array#filter, como se implementa a mano y casos de uso prácticos de este método de los array en JavaScript. [...]
Aprende a usar Array#map, como se implementa a mano y casos de uso prácticos de este método de los array en JavaScript. [...]
Tutorial sobre como se pueden usar Generadores Asíncronos de ECMAScript 2018 para realizar colas o paginaciones de un API fácilmente en JavaScript [...]
Tutorial sobre como implementar un carrusel para elementos de diferentes tamaños usando React.js [...]
Tips and recommendations to build real-time applications using WebSockets [...]
Consejos y recomendaciones para construir aplicaciones en tiempo real usando WebSockets [...]
Aprende a usar los nuevos features de React v16.6, lazy load, memoize, errores, contexto y más [...]
MDX es un formato de archivos que permite extender Markdown con código JS y JSX (Componentes de React) [...]
After working on the documentation of the API of ZEIT I want to share some insights I learned from it [...]
Después de trabajar en la documentación del API de ZEIT quiero compartir algunas lecciones que aprendí de ello. [...]
Cómo mantenerse actualizado es una pregunta común al comenzar, acá hay una lista de maneras útiles de hacerlo y no morir en el proceso. [...]
Crea un parser que transforme Markdown a componentes de React.js [...]
Testing is hard. Testing Frontend is harder. But you should do it anyways. [...]
How to keep updated is a common questions when starting, here you can find a list of useful ways to do it and not die in the process. [...]
Explicación paso a paso de como implementar un servidor GraphQL desde cero en Node.js. [...]
Today I leave my job as Frontend Developer at Platzi to start working as Support Engineer at ▲ZEIT. [...]
Repaso por los diferentes métodos del ciclo de vida de un componente de React.js [...]
Manejar flujos de datos síncronos es fácil, con Promises también es fácil hacerlos asíncronos. Ahora veamos como combinarlos. [...]
En 2015 Facebook anunció GraphQL, una tecnología que empezaron a desarrollar y usar internamente en 2012. ¿Pero qué es GraphQL? [...]
Manejar flujos de datos asíncronos es complejo, pero con Promesas esto se vuelve mucho más fácil [...]
Desde hace ya un tiempo han ido saliendo un montón de artículos sobre JS Fatigue, tantos que hasta hay artículos sobre la fatiga de esta. [...]
Redux es especialmente bueno al usarlo con librerías como React ya que facilita usar React solo para la UI y dejar el estado en Redux. [...]
Redux es una librería para controlar el estado de nuestras WebApps fácilmente, de forma consistente entre cliente y servidor y una gran DX. [...]
Cuando estamos haciendo desarrollo Frontend es una buena práctica separar nuestro código en distintos módulos, tanto el código de JavaScr… [...]
Guía de como usar FormatJS para internacionalizar aplicaciones hechas con React.js y poder pluralizar o formatear fechas y números. [...]
Desde finales del 2014, incluso antes de que se terminara de definir ECMAScript 6 ya se estaba empezando a trabajar en la siguiente versión… [...]
El nacimiento de Platzi Hace más de 5 años me enteré que los dueños de Cristalab y Maestros del Web se iban a juntar para crear Mejorando … [...]
React v0.14 es la nueva beta de la librería de Facebook que fue liberada recientemente. Esta primera versión llegará con dos grandes cambio… [...]
Algo muy molesto cuando estás usando ES6 con Babel.js y Gulp.js para automatizar tareas es que el archivo gulpfile.js sigue estando en ES5 … [...]
ECMAScript 2015, comunmente conocido como ECMAScript 6 o ES6, es la nueva versión del lenguaje estandarizado ECMAScript del cual sale JavaS… [...]
En el desarrollo FrontEnd con el tiempo han ido surgiendo lo que se conoce como buenas prácticas, cosas que normalmente hacemos porque mejo… [...]
React.js cada vez es más popular en el mundo del desarrollo web y una de las razones de esto es que permite crear código isomórfico, esto q… [...]
title: '' date: 2015-04-24T00:00:00.000Z published: true lang: es canonical_url: … [...]
Hasta hace unos años, cuando un desarrollador quería hacer templates de sus páginas, la opción era usar algún lenguaje en el Backend como P… [...]
Como desarrollador Frontend, hay ciertas tareas que se terminan volviendo repetitivas durante el desarrollo, como compilar el CSS desde un … [...]
JavaScript no tiene (por ahora) un sistema de módulos propio, aunque eso si, la comunidad fue creando varios para suplir esa necesidad. Act… [...]
Como desarrollador FrontEnd me encuentro constantemente utilizando CSS. Este lenguaje para dar estilos a páginas web tiende a empezar siend… [...]
Qué es el Scope El scope es el alcance de una variable, puede ser de dos tipos, global y local. Una variable cuyo scope es global se puede… [...]
Usar pre-procesadores de CSS de a poco se convierte un estándar en el mundo del desarrollo web front-end, pero primero empecemos hablando s… [...]
Scrum es una metodología de desarrollo ágil. Scrum propone una forma diferente de organizarse en el desarrollo de un proyecto, tanto en sol… [...]
Flexbox es un módulo de CSS3 que permite crear layouts flexibles de una forma más eficiente controlando la alineación de las cajas, el anch… [...]
La programación orientada a objetos o POO (OOP en inglés Object Oriented Programming) es una forma de realizar aplicaciones. Javascript por… [...]