Remix Todo App: Part 6 - Deploying the App
Step-by-step guidance on how to deploy your Remix Todo App to production.
Step-by-step guidance on how to deploy your Remix Todo App to production.
Add a theme switcher to your Remix Todo App to support light and dark modes.
Improve user experience by adding pending states and implementing network-aware UI feedbacks.
Learn how to implement multiple forms with a single button for mutations and handle concurrent mutations efficiently in Remix.
Discover how to load data into components and manage mutations using Remix forms.
Learn how to set up the layout and structure of your Remix Todo App.
Learn how to easily generate QR codes in your Remix app to share URLs and other information with your users.
Today we go over how actions inside of React Router v7 / Remix.run work. How you submit to them, what happens when you do, how they re-trigger loaders, resource routes, multiple forms on a single page handling. Custom HoC and middleware and much much more! π Don't forget to like, comment, and subscribe for more episodes in this series! Join our coding community and let's build something amazing together. π Stay Connected: Twitter: https://twitter.com/AlemTuzlak GitHub: https://github.com/AlemTuzlak Company Github: https://github.com/forge42dev β±οΈ Timestamps: 00:00 - Intro 00:33 - What are remix actions? 01:04 - Usual submission flow 03:37 - Action submission flow 06:13 - loaders re-triggering flow 07:19 - what you can use re-triggers for 07:59 - Why re-triggers are awesome 08:26 - what happens when you submit to an action? 08:46 - returning response from an action 09:36 - throwing responses 09:57 - throwing a redirect response 10:36 - when is it useful to throw responses 11:02 - throwing non-redirect responses 12:05 - difference between a thrown redirect and normal response 12:53 - useActionData important info 13:45 - resource routes 15:28 - why are resource routes awesome 17:13 - setting up the playground 17:56 - adding a progressively enhanced form 18:37 - triggering an action 19:03 - adding fields to the form 19:37 - seeing our server data 20:23 - progressive enhancement with no JS 22:19 - handling multiple forms on a page with single action 26:05 - handling multiple forms on a page with resource routes & tRPC like loaders 29:59 - redirecting from actions to new routes 31:30 - throwing responses & errors into error boundaries 33:03 - redirecting on successful submissions 33:39 - adding action middleware 35:20 - outro π Tags: Remix framework, Vite, Remix Vite, web development, frontend development, Remix tutorial, coding tutorial, Remix Vite tutorial, open source, coding community, remix framework tutorial
Learn how Remix's flat file-based routing generates routes from file names.
Today we go over how loaders inside of React Router v7 / Remix.run work. How you can cache loaders, how you can optimize them, where and how they re-trigger, and by the end of this video you will be ready to use them for any situation that might come up. π Don't forget to like, comment, and subscribe for more episodes in this series! Join our coding community and let's build something amazing together. π Stay Connected: Twitter: https://twitter.com/AlemTuzlak GitHub: https://github.com/AlemTuzlak Company Github: https://github.com/forge42dev β±οΈ Timestamps: 00:56 - What are loaders exactly? 04:19 - Single fetch approach with loaders 07:40 - What can you return from loaders 08:32 - Successful responses 08:50 - Thrown responses 09:25 - Error responses 09:54 - Streaming the data 11:53 - Streaming the data with single fetch 13:28 - When do loaders re-fire 13:43 - re-fire on action submission 14:40 - re-fire on param change 15:56 - re-fire on search param change 16:37 - re-fire on useRevalidate trigger 17:04 - re-fire on navigation to the same page 18:02 - how to stop loader re-triggers 20:14 - Practical examples 23:29 - Defering slow requests 25:56 - Using server caching for faster response times 28:25 - Caching with headers 30:25 - Using shouldRevalidate 32:44 - clientLoader caching (with remix-client-cache) 32:59 - Defer with single fetch π Tags: Remix framework, Vite, Remix Vite, web development, frontend development, Remix tutorial, coding tutorial, Remix Vite tutorial, open source, coding community, remix framework tutorial
Introduction I had some questions around Cache Control and using them in Remix. This is kind of just me answering my own questions lol. Before going over my questions, let's look at two examples and some of the values. Cache-Control without stale-whi...
Today we go over how to switch your Remix vanilla server over to Hono.js in your remix vite projects, how to type your AppLoadContext with TypeScript tricks and how to use middleware in Remix. We also use the i18n middleware for localization and internationalization. π Resources and Links: GitHub Repo: https://github.com/AlemTuzlak/remix-ecommerce π Don't forget to like, comment, and subscribe for more episodes in this series! Join our coding community and let's build something amazing together. π Stay Connected: Twitter: https://twitter.com/AlemTuzlak GitHub: https://github.com/AlemTuzlak Company Github: https://github.com/forge42dev β±οΈ Timestamps: 00:00 - Intro 00:28 - Going over what we need 01:25 - Adding the Hono server to Remix vite 02:20 - Extending our vite config 03:10 - Creating the load context 05:55 - Typing our app load context 07:28 - Adding internationalization i18n middleware 08:04 - Modifing our project 10:02 - Going over our implementation 11:10 - Going over what else you could do π Tags: Remix framework, Vite, Remix Vite, web development, frontend development, Remix tutorial, coding tutorial, Remix Vite tutorial, open source, coding community, Hono.js
Introduction This post is for my younger self. A post that would've helped me get up to speed with Remix faster. What is Remix? Remix is a web framework built on top of the Web Fetch API, allowing for deployment on multiple platforms. It acts as a ce...
Create your own route convention. Use a custom glob pattern. Add layouts automatically, or prepend an optional language segment.
Ever feel like updating your Remix app's UI is a circus act? One small change, and suddenly everything's breaking? You're not alone. This fragility often comes from tightly coupled components β a change in one place triggers a domino effect throughout your code. But there's a solution: hexagonal architecture. This pattern,
Lingui is an alternative to i18next for internationalization in Javascript project. It offers a different approach to i18n and is now available for Remix.run projects with Vite.
Snippets of code translated from Next.js to Remix. Learn Remix by example.
Learn more about Software Development
In Today's episode will cover: - @Stripe Integration - Webhook Setup - Checkout Session and Payment Testing These videos are free and created for the community, support will be much appreciated! π«Ά
Debouncing helps reduce server load. Create a custom fetcher hook that adds debounce support. Modify the type of useFetcher to support extra features.
Challenges, learnings, and scriptsβββstill not done yet π°
Today we go over how loaders inside of React Router v7 / Remix.run work. How you can cache loaders, how you can optimize them, where and how they re-trigger, and by the end of this video you will be ready to use them for any situation that might come up. π Don't forget to like, comment, and subscribe for more episodes in this series! Join our coding community and let's build something amazing together. π Stay Connected: Twitter: https://twitter.com/AlemTuzlak GitHub: https://github.com/AlemTuzlak Company Github: https://github.com/forge42dev β±οΈ Timestamps: 00:56 - What are loaders exactly? 04:19 - Single fetch approach with loaders 07:40 - What can you return from loaders 08:32 - Successful responses 08:50 - Thrown responses 09:25 - Error responses 09:54 - Streaming the data 11:53 - Streaming the data with single fetch 13:28 - When do loaders re-fire 13:43 - re-fire on action submission 14:40 - re-fire on param change 15:56 - re-fire on search param change 16:37 - re-fire on useRevalidate trigger 17:04 - re-fire on navigation to the same page 18:02 - how to stop loader re-triggers 20:14 - Practical examples 23:29 - Defering slow requests 25:56 - Using server caching for faster response times 28:25 - Caching with headers 30:25 - Using shouldRevalidate 32:44 - clientLoader caching (with remix-client-cache) 32:59 - Defer with single fetch π Tags: Remix framework, Vite, Remix Vite, web development, frontend development, Remix tutorial, coding tutorial, Remix Vite tutorial, open source, coding community, remix framework tutorial
This video shows how to configure VS Code to debug your Remix loaders and actions. NOTE: You can now use the `debugger` statement instead of the external `debug()` function. I tried this before, but it didn't work. Not sure why it works now. You still can't set a breakpoint inside a route module, but you can add `debugger` statement and it will break there. You can then step through your code. I will be re-recording this video with this new info. Get the launch configuration here: https://rmx.fyi/debug
Have you heard about our new Remix Stacks template the K-pop Stack? It combines Remix, Supabase, Tailwind, and more to give you a note creation app with auth to help jump start your own Remix creation. Check out how to make it your own and get it deployed to fast and free! Repo: https://github.com/netlify-templates/kpop-stack Blog Post: https://www.netlify.com/blog/deploy-your-remix-supabase-app-today!/
HTTP Caching is a web fundamental every web developer should eventually learn. The quickest way to a slow website is to not understand caching and ofc, the best way to make your website fast is to take advantage of it. In this video we'll explain the basics of HTTP caching, how web browsers respond to it, and how CDNs take advantage of it, by building a bare-bones Node.js server and then quickly see how to specify caching headers in a Remix App.
ReactNext 2022 www.react-next.com Israel's Annual React & React-Native conference Powered by EventHandler ----------------------------------------- Stream Away the Wait: When implementing the design of a user interface, we often finish before remembering that not everyone's running the app's services locally on their device. There's going to be network latency, long running database queries, and large datasets that can slow down the experience. We can and should do everything we can to speed things up, but not all of this is within our control. This means we need to start thinking about pending states. But pending UI is terrible. In this talk, Kent will walk us through building a pending experience that is quite delightful. Ultimately taking advantage of React 18's new streaming APIs and a soon-to-be-released API in Remix to give a top-notch user and developer experience. Prepare to have your mind blown. ----------------------------------------- Kent C. Dodds: Kent C. Dodds is a world renowned speaker, teacher, and trainer and he's actively involved in the open source community as a maintainer and contributor of hundreds of popular npm packages. Kent is a Co-Founder and Director of Developer Experience at Remix. He is the creator of EpicReact.Dev and TestingJavaScript.com. He's an instructor on egghead.io and Frontend Masters. He's also a Google Developer Expert. Kent is happily married and the father of four kids. He likes his family, code, JavaScript, and Remix. ----------------------------------------- #javascript #reactjs #programming #software #development #softwaredevelopment
Learn more at https://remix.run
We will walk through a simple demonstration of a remix application using nested routes and parameterized routes. The use of nested routes helps me with component design and separation when architecting an application. Parameterized routes / Dynamic Routes contain state information that can through the parameters that are defined on the route. This provides powerful flexibility when designing your app and app's components. Putting the two together in an simple solution to be a reference when you build something amazing. Speaker bio: Aaron is an Information Technology Strategist, Thought Leader, and Diversity and Inclusion Trailblazer - Founder & CEO of Clearly Innovative. He believes technology and in his case coding is an enabler and an equalizer. Aaron has focused a large part of his career training and developing individuals who want to get into tech but cannot find the opening; through the apprenticeship program he ran at Clearly Innovative, teaching web and mobile development at Howard University, and the free technical videos on his Youtube Channel he just want to help others get a seat at the table of tech and innovation. Learn more at https://remix.run/conf/2022/speakers/aaron-k-saunders