Remix vs Next.js
An objective comparison between Remix and Next.js
An objective comparison between Remix and Next.js
WIP
Remix takes the idea of “one-way data flow” and extends it across the network, so your UI truly is a function of state: from the client to the server and back again.
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.
The Remix Stack for deploying to Fly with SQLite, authentication, testing, linting, formatting, etc.
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
“The edge” isn’t just about static assets anymore. It’s increasingly becoming a place for dynamic assets resulting from compute. Remix is taking full advantage of this next generation of edge computing.
Check out the new v2_dev docs 👉 https://remix.run/docs/en/main/other-api/dev-v2 Indie stack 👉 https://github.com/remix-run/indie-stack
Spend A Full Day Immersed in Remix with Kent C Dodds
The web ecosystem can feel like it moves too fast sometimes. We're sensitive to that at Remix so we've designed it with your future in mind. Get good at Remix, get better at the web.
This podcast will inspire you to build excellent user experiences for the web. Sometimes with Remix, the modern web framework.
Learn more at https://remix.run
Remix relies on CDNs and cache control headers to get the best web performance possible. Here we’ll compare various caching strategies, including Static Site Generation and Increment Static Regeneration, and compare the tradeoffs.
The first thing you usually need for any route is a way to load data from the server. Remix makes it easy with loaders. Learn more at https://remix.run/docs
While Remix and browsers model mutations as form navigations, `useFetcher` allows you to get the same programming model without causing a navigation. This allows apps to add pending and optimistic UI to multiple elements at the same time. Concurrent Mutations! Learn more at https://remix.run
Instead of adding pending states and busy indicators while we wait for the server to process a mutation, we already know what the UI will look like when its done. Skip the spinners with Optimistic UI! Learn more at https://remix.run
Maintaining a stack with multiple programming languages can drastically increase the cognitive load of a team. Unifying the frontend and the backend under a single language has always been a tantalizing prospect. With Remix this becomes an achievable goal, however, migrating without a big rewrite is always challenging, while migrating with a big rewrite is often disastrous. This is the story of how we are planning a migration feature by feature, using an integrated authentication system that works on both our Rails backend and on the Remix server. We also disastrous leveraged resource routes to proxy the old application and integrate everything under the same domain, making the back and forth between legacy and rewritten features seamless. Speaker bio: Diogo Biazus has been a software developer since the late 90s. Since then, he has also worked as an open-source contributor, conference organizer, PostgreSQL instructor and consultant, systems integrator (yay, EDI!), "the DevOps guy", and team lead. He has contributed to PostgREST (https://github.com/PostgREST/postgrest) and published PostgreSQL tools such as postgres-websockets (https://github.com/diogob/postgres-websockets), postgres-copy (https://github.com/diogob/postgres-copy), and hasql-notifications (https://github.com/diogob/hasql-notifications). He now focuses on improving DX at Seasoned. Diogo Biazus' GitHub: https://github.com/diogob Repo: https://github.com/SeasonedSoftware/remix-migration
What is Remix? > Remix is a seamless server and browser runtime that provides snappy page loads and instant transitions by leveraging distributed systems and native browser features instead of clunky static builds. > -- remix.run But that summary only scratches the surface. Remix has great mental models, is extremely fast, and has a plethora of components and features that will make your life easier and web apps perform better. And in this course, you'll be learning how to take full advantage of what Remix has to offer. You will learn by building a full-featured blog with a database, authentication, CRUD operations, user roles, and more! If you want to read more about why should give Remix a chance, give Kent's blog post, Why I Love Remix, a read! Check out this repo to see the project code for this course
Decoupling data-fetching from rendering introduces some complexities if you want to lazily load your route components. Check out how the newly introduced `route.lazy()` method helps solve this to keep your app bundles small and your UX snappy!
We've introduced the concept of future flags to give you a smooth upgrade path for your Remix app.
A new package helps you upgrade from React Router v5 to v6 incrementally
Spend A Full Day Immersed in Remix with Kent C Dodds
Recorded live at Reactathon 2022. Learn more at https://reactathon.com Shipping to the Edge The landscape of the web has evolved drastically since the first website was published to the World Wide Web in 1991. Over the years, the pendulum has swung from servers rendering HTML to JavaScript-heavy clients and now it's swinging toward something more in the middle.What about the web today is enabling us to overcome the shortcomings of the web of the past? In this talk, we'll get a little peak into the history of each of these stages of the web and what that means for anyone building on the web platform in the future. About 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 React. Event production and post-production by EventLoop. Let's build your conference brand, or take it to the next level. info@eventloop.app
Recorded live at Reactathon 2022. Learn more at https://reactathon.com When To Fetch: Remixing React Router We've learned that fetching in components is the quickest way to the worst UX. But it's not just the UX that suffers, the developer experience of fetching in components creates a lot of incidental complexity too: data fetching, data mutations, busy spinners, optimistic UI, error handling, form state, network race conditions, user event interruptions, and all the code that holds it together gets pretty difficult! As we've built Remix, we've gotten a lot of practice leaning on React Router's nested route abstraction to solve all of these problems all at once. Now, millions of React Router apps in production can get the same benefits because we've moved the responsibility of knowing When To Fetch into React Router itself! About Ryan Florence Ryan is the co-founder of Remix, co-creator of React Router, and co-founder of React Training. Event production and post-production by EventLoop. Let's build your conference brand, or take it to the next level. info@eventloop.app
Remix Conf Recap That’s a wrap for Remix Conf 2022! A big shout out to everyone who attended the conference, spoke at the conference, planned the conference, filmed the conference, or had anything else to do with the conference whatsoever. It was a huge success! Workshop The Remix...
Love or hate Tailwind, one thing it gets right is only shipping the CSS _you_ use. However, you still have to ship your **entire** site's CSS, no matter how big it gets or what page the user is on. Love or hate Remix (wait, who hates Remix?), one thing it does best is only shipping the CSS each _page_ needs. Remix also removes stylesheets when you navigate away, which avoids clashing styles and class names. What if we could combine these two features? In this talk I will show you how to generate only the CSS _you_ use, while shipping no more CSS than each _page_ needs? Speaker bio: Hi, my name is Brooks Lybrand and I work as Web Engineer for the best grocery store in the world (okay, at least in Texas): H-E-B! I specialize in building proof of concepts, evaluating tools, and creating highly interactive, data-rich applications. I am passionate about exploring new ideas and technologies, discovering how they can better other's lives, and guiding people to these solutions. When I'm not coding, I love spending time with his wife and dogs, camping, playing board games, and pretending I know what I'm talking about when it comes to coffee and beer. Brooks Lybrand's Twitter: https://twitter.com/BrooksLybrand Repo: https://github.com/brookslybrand/purge-per-route Statechart representation of logic: https://stately.ai/registry/editor/105a41c2-1cd9-41a9-a27a-324c71bfb735
Learn how to implement internationalization (i18n) in your Remix project. Discover the significance of i18n, gain an understanding of the core principles, and learn various strategies for effective i18n management with Remix.
Moishi Netzer teaches Brooks how to implement server-sent events in Remix! Repo 👉 https://github.com/moishinetzer/remix-live-loader Server-sent events docs 👉 https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events Learn more about Moishi 👉 https://github.com/moishinetzer 00:00 - Introductions 02:44 - Walkthrough of the app 08:50 - Setting up server-sent events 27:18 - Adding multiple listeners 39:14 - Live Chat 52:40 - Final thoughts Learn more at https://remix.run
Learn more at https://remix.run
Learn more at https://remix.run GitHub: https://github.com/remix-run/remix Join discord: https://rmx.as/discord
Learn more at https://remix.run
In this live stream, Kent will be going through the Remix tutorial and you can follow along. Join the discord #live-stream-chat channel to ask questions as we go. By the end of it, we'll have a full CRUD-based application with authentication and everything. Should be a good time! Make sure you have Node 16 installed on your computer before attending! GitHub Repo: https://github.com/kentcdodds/remix-tutorial-walkthrough Learn more at https://remix.run Join the discord at https://rmx.as/discord Timestamps (thanks Tejas Ahluwalia!): 00:00:00 Intro Music 00:00:35 Stream starts 00:03:37 About the tutorial 00:05:35 Let's start: Overview 00:10:58 Let's start: Outline & Prerequisites 00:14:30 Questions 00:17:27 Generating a new Remix Project 00:20:35 Exploring the structure 00:30:09 Questions 00:44:19 Routes 00:53:00 Questions 01:02:45 Parametrized Routes 01:04:20 BREAK 01:09:23 Questions 01:13:10 Styling 01:26:17 Alternate CSS methodologies 01:29:41 Questions 01:35:45 Database: Setting up 01:43:00 Questions 01:46:10 Database: Connecting to the DB 01:50:22 Questions 01:51:45 Database: Reading from the DB 01:58:50 Questions 02:00:39 Database: More data fetching 02:06:00 Questions 02:09:07 Database: Type safety and other stuff 02:19:25 BREAK 02:24:35 Mutations / Forms 02:32:56 Questions 02:34:00 Form Validation 02:43:30 Questions 02:47:40 Authentication 03:17:45 Questions 03:19:30 Authentication continued 03:31:30 Questions 03:35:10 Authentication continued 03:52:57 Questions
Learn more at https://remix.run Sign up for our newsletter: https://remix.run/newsletter Join the Discord: https://discord.gg/remix
Learn more at https://remix.run/stacks
Learn more at https://remix.run/stacks
The Remix Stack for deploying to Fly with PostgreSQL, authentication, testing, linting, formatting, etc.
The Remix Stack for deploying to AWS with DynamoDB, authentication, testing, linting, formatting, etc.
After a form submission completes, you often want to clear out the form fields. You can `useTransition` to know when to reset the form. Learn more at https://remix.run
How to handle multiple forms in one route, and modeling mutations with a single button form. Learn more at https://remix.run
Learn more about Remix: https://github.com/remix-run/remix My task management app: https://www.centered.app Other stuff I use (font, theme, etc.): https://kcd.im/uses
Learn to prevent scroll reset on navigation and how to take control over how it restores on back/forward. Learn more at https://remix.run
Remix is joining Shopify
The second major release of Remix is stable today.
Let's dive into different CSS approaches in Remix! We will look at styling your Remix application in three different ways while analyzing different implications. These considerations include performance, developer experience, and scalability. See how to leverage Remix and CSS to create amazing experiences for your users. Speaker Bio: I am currently a freelance full-stack developer with experience in developing JavaScript applications in a variety of frameworks. I am passionate about web development and have recently been building different projects using Remix. I am also getting a master's degree in information systems at BYU. Outside of development, my wife and I just had our first child. We enjoy playing board games and reading numerous (mainly fantasy) books. Follow Noah: https://twitter.com/jnoahjohnson Repo: https://github.com/jnoahjohnson/remix-css Learn more at https://remix.run
Vite announcement blog post 👉 https://remix.run/blog/remix-heart-vite Migration guide 👉 https://remix.run/docs/en/dev/future/vite Vite announcement discussion 👉 https://www.youtube.com/watch?v=qyo5of7EDjY 0:00 - Migrating the default template 2:19 - Migrating the Express template 5:11 - Migrating the Indie Stack
Ryan takes us for a first look at Remix Streaming from the v1.11.0 release Learn more at https://remix.run
The React Router website
Tying all of the previous Trellix Singles together, this videos shows how you can build something as complex as optimistic Drag and Drop with the simple primitives of Remix. Explore the full code here 👉 COMING SOON 00:00 - Overview 00:46 - Drag and Drop implementation 05:45 - UX before optimistic UI 06:52 - Board state implementation 07:45 - Adding optimistic drag and drop 11:42 - UX with optimistic UI 12:28 - Canceling fetches with fetcher keys Learn more at https://remix.run
Can I build and deploy a Remix site in 5 minutes? Let's find out! In this talk I will attempt to build a basic Remix site with a couple of pages and deploy it to a cloud provider. Will I succeed in setting a web development record or fail spectacularly? Speaker Bio: Ian is a full stack software developer, open source maintainer and speaker. He's currently the head of Developer Experience at Neo Financial, the maintainer of Create React App and a member of the Node.js team. You can find him on Twitter and GitHub @iansu. Follow Ian: https://twitter.com/iansu Code: https://github.com/iansu/remix-fan-club Learn more at https://remix.run
Learn more at https://remix.run/stacks
Add pending UI and busy indicators for specific interactions when the app is working. Learn more at https://remix.run
Join us in Salt Lake City, UT for our innaugural conference. Featuring distinguished speakers, workshops, and lots of fun in between. See you there!
Remix makes data mutations a breeze by emulating browser behavior with HTML forms and server side actions. It then offers special hooks to build modern web app user experiences. Learn more at https://remix.run
Learn more at https://remix.run Code: https://github.com/remix-run/remix/tree/9b46b9025f534fc8e7bf4c4839ab46092505706e/examples/newsletter-signup
Brooks shows off the new experimental View Transition API in Remix v2.1.0 Release Notes 👉 https://github.com/remix-run/remix/releases/tag/remix%402.1.0 unstable_viewTransition API 👉 https://remix.run/docs/2.1.0/components/link#unstable_viewtransition Matt Brophy's React Router Demo 👉 https://github.com/brophdawg11/react-router-records Chapters 00:00 Introduction 02:41 Remix.run blog example 05:29 Transitioning specific elements 13:24 Accessibility and prefers-reduced-motion Learn more at https://remix.run
Migration guide 👉 https://remix.run/docs/en/main/pages/v2#dev-server v2_dev docs 👉 https://remix.run/docs/en/main/other-api/dev-v2 Chapters 0:00 intro 0:15 Remix App Server 1:08 Express adapter 1:17 enable new dev server 2:02 package.json commands 3:40 removing require cache purging 5:03 broadcastDevReady 5:47 review 6:41 avoiding restarts
Today we’re announcing that unstable support for Vite is available in Remix v2.2.0!
Try it out the new plugin for yourself using a minimal server npx create-remix@latest --template remix-run/remix/templates/unstable-vite Or a custom Express server npx create-remix@latest --template remix-run/remix/templates/unstable-vite-express Learn more at https://remix.run/docs/future/vite 00:18 Initialize the project 00:39 HMR + HDR 03:08 MDX routes 05:29 Importing SVGs 07:36 Conclusion
Remix picked up where React Router v3 left off, and now almost everything great about Remix is coming back to React Router!
Apps that depend on Webpack loaders and plugins weren't able to incrementally migrate to Remix. Until now!
Learn more at https://remix.run/stacks
You’re not going to want to miss what Ryan had to say at Render 2022. Oh no. You've rendered a button and want to change some data when the user clicks it. This wasn't always hard, and doesn't have to be anymore. Don’t miss what Render is doing next. Make sure you’re following @renderatl for updates!
React Router 6.4 was released today, adding all of data loading, data mutation, pending navigation, and error handling APIs from Remix to every React Router app.
Edited videos available on this playlist: https://www.youtube.com/playlist?list=PLXoynULbYuEC36XutMMWEuTu9uuh171wx Learn more at https://remix.run/conf/2022 Chat at https://rmx.as/discord 00:00:00 Starting title 00:40:00 Michael Jackson keynote 01:10:00 Henri Helvetica on webpage test 01:35:00 Shaundai Person on remix as browser framework 01:54:45 Erik Rasmussen on state machines 02:45:15 Anthony Frehner on Remixing Hydrogen 02:59:50 Ryan Dahl on deno + remix 03:21:40 Nick Small on remix-three 03:29:20 Erick Tamayo on web vitals 03:38:00 Scott Smerchek on stale-while-revalidate 03:43:25 Lunch 05:55:00 Vic Vijavakumar on social good with low code 06:07:51 Ben Wishovich on remix + rust 06:15:10 Greg Brimble on Full Stack Fast: Data on the Edge 06:24:00 Arisa Fukuzaki on ui + ux 06:48:10 Daniel Weinmann on remix-forms 07:06:30 Jon Jensen on incremental remix 08:00:00 Sarah Dayan on search with algolia + remix 08:24:00 Dennis Beatty on switching to remix at neighbor 08:45:00 Closing Notes
Remix makes it easy to protect routes that require the user to be authenticated. With a single function you can get the user's data if they're authenticated and otherwise redirect them to the login page. Explore the full code here 👉 COMING SOON 00:00 - Overview 00:36 - Requiring a user on routes 02:32 - Throwing a redirect 04:40 - Demoing the protected route Learn more at https://remix.run
Ryan shows us how to get granular with our errors and prevent slow, risky data loads from taking down the entire page if it has an error. Learn more at https://remix.run
Speaker Bio: Ryan Florence has been obsessed with UX since using an Intellivision. https://remix.run/conf/2023/speakers/ryan-florence Speaker Bio: Michael Jackson, the author or Remix, not the pop star. https://remix.run/conf/2023/speakers/michael-jackson Learn more at https://remix.run
For a deeper dive, check out Pedro's talk at Remix Conf 2023 👉 https://pedrocattori.dev/blog/legendary-dx
A case study on how Shopify rapidly built a web version of their popular iOS/Android app Shop with Remix
Learn how to leverage useSubmit and useFetchers to handle the complex use case of optimistically updating multiple forms without a single useState or useEffect. Explore the full code here 👉 COMING SOON 00:00 - Overview 02:14 - Before optimistic UI 04:16 - Using useSubmit 06:47 - Update data with pending items 09:45 - Get pending items with useFetchers 15:54 - Add pending items to data 17:50 - Demoing optimistic UI 18:26 - Auto scroll with flushSync 21:15 - Review Learn more at https://remix.run
Like protecting routes from unauthenticated users, sometimes you also want to redirect authenticated users away from other routes. This video shows you the best way to handle redirecting a users from the root of Trellix to the "home" route. Explore the full code here 👉 COMING SOON 00:00 - Overview 00:19 - Redirecting from the root route (❌) 02:11 - Redirecting from the index route (✔️) 03:44 - Demoing redirecting logged in users 04:44 - Remix in the future: middleware Learn more at https://remix.run
Michael will kick the inaugural Remix Conference off! Speaker bio: Michael Jackson is the CEO and co-creator/co-founder of Remix. He is the co-author of React Router and a prolific contributor to open source. He is the creator of unpkg.com and gets a kick out of discussing distributed system design as much as he enjoys front-end architecture. Michael lives in Carlsbad, CA with his wife, two boys, and two girls. Learn more at https://remix.run/conf/2022/speakers/michael-jackson
React Router 6.4 adds all of data loading, data mutation, pending navigation, and error handling APIs from Remix to every React Router app.
Remix is a full stack web framework but how "full stack" can we make it? Voice user interfaces have seen substantial growth in adoption and popularity over the past years. Unfortunately, there hasn't been much visible effort to apply the latest advancements in web development (frontend development) to the field of voice UIs. I created react-ssml-dom to apply the component-based approach to voice UIs. It was a fun project and I was able to create a small Google Assistant action using React to render SSML! Now, a few years later, Remix is out and has changed the way I develop for the web! What if we could use Remix to also render voice applications? Or full stack web and voice apps? Speaker Bio: Hey there! I am a Software Engineer from Germany with a background in Information Systems. I am currently doing my master's degree in Computer Science in Palo Alto, CA! I love to develop web and voice apps. Sometimes I also study for my degree. On the weekends, I hike, watch Marvel, or listen to Syntax.fm. Please find me on Twitter or the Remix Discord server and get in touch! Follow Andre: https://twitter.com/AndreLandgraf94 Learn more at https://remix.run
This podcast will inspire you to build excellent user experiences for the web. Sometimes with Remix, the modern web framework.