dev-xo/remix-saas
A Lightweight, Production-Ready Remix Stack for your next SaaS Application.
A Lightweight, Production-Ready Remix Stack for your next SaaS Application.
- Public roadmap ๐ https://github.com/orgs/remix-run/projects/5 - RFCs ๐ https://github.com/remix-run/remix/discussions/categories/official-rfcs - "Open Development" blog post ๐ https://remix.run/blog/open-development 00:00 - Introduction and current work 10:18 - Overview of "In Progress" 13:44 - Fog of War 18:50 - Split out client loaders/actions 24:19 - Middleware and Server Context 40:48 - SSG Learn more at https://remix.run
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.
Zero-config PWA for Remix
Challenges, learnings, and scriptsโโโstill not done yet ๐ฐ
A case study on how Shopify rapidly built a web version of their popular iOS/Android app Shop with Remix
Example showing how to use global data in your Remix app
Remix App With NestJS Adapter
Studio is the revamped interface of Hygraph, the next-generation headless CMS. Sign up to use Studio today and experience how it can help you build higher-performance digital applications while empowering your editorial and development teams to work faster.
Remix 2.7 introduced official Vite support, making it ideal to migrate our Remix Apps to Vite. In today's episode, we'll step by step migrate a base Remix App to Vite. 00:00 Introduction 00:14 Step 1: Setup Vite 00:40 Step 2: HMR & HDR 00:58 Step 3: TypeScript Integration 01:26 Step 4: Migrating Remix App Server 02:00 Step 5: Path Aliases 02:26 Step 6: Remove @remix-run/css-bundle 03:00 Step 7: Enabling TailwindCSS 03:24 App Migration (Remix + Vite)
An example on how to run Remix with Nitro with HMR using Vite's 5.1 experimental runtime API.
Brooks walks through how to get started with Remix SPA mode (ssr: false) and how to setup a simple GitHub Action to deploy to GitHub Pages. Repo: https://github.com/brookslybrand/remix-gh-pages 00:00 - Intro 00:19 - Setting up a Remix SPA mode project 02:26 - Setting up GitHub Pages 03:47 - Setting up a GitHub Action 06:12 - Fixing asset 404s with basename 08:44 - Outro Learn more at https://remix.run
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.
Drizzle is a typescript ORM for type-safe database access and automatic migrations. Add it to your Remix app to get started with Cloudflare D1.
Learn how our new Remix adapters and templates add support for Vite with Remix for both Netlify Functions and Edge Functions.
Use formdata for progressive enhancement and json for a better developer experience. Parse request bodies based on their content type, and parse fetchers read pending requests.
Preview and test emails in Remix using [BLANK]
Remix is an excellent Web Application Framework I would use when building complex React-based applications.
Chat with LLMs locally utilizing llamafile as the underlying model executor.
Utility library to cache your client data in Remix.run
A package that adapts requests between Azure Functions and Remix.run
Learn how to create a custom CMS using Xata, Remix, Novel, LiteLLM, and Vercel.
Remix est un framework de React qui permet de dรฉvelopper des applications web full-stack. Son routing puissant permet de crรฉer un fichier dans le dossier routes pour crรฉer une route API ou une vue.
SaaSKits is a SaaS boilerplate built with Remix, Stripe, Prisma and Resend to help you bootstrap your SaaS idea quickly.
Welcome back to the "Remix Done Right" series! In this episode, we'll delve into the world of internationalization (i18n) in Remix Vite projects. Join me as I show you how to seamlessly integrate i18n into your Remix applications. ๐ ๏ธ What You'll Learn in Part 3: Setting Up i18n: Learn the intricacies of configuring internationalization in Remix Vite projects, ensuring smooth localization of your web apps. Language Switcher: Implement a language switcher to empower users to seamlessly toggle between different language options. Translating Content: Dive into translating content within your application, from static text to dynamic data, ensuring a fully localized user experience. ๐ Get Ready to Remix: Follow along and code with us as we lay the foundation for a globally accessible Remix application with robust internationalization support. Whether you're new to i18n or a seasoned developer, this tutorial is designed to be beginner-friendly yet packed with advanced insights. ๐ Resources and Links: GitHub Repo: https://github.com/AlemTuzlak/remix-ecommerce Remix Documentation: https://remix.run/docs/en/main Vite Documentation: https://vitejs.dev/ ๐ 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/AlemTuzlak59192 GitHub: https://github.com/AlemTuzlak โฑ๏ธ Timestamps: 00:00 - Intro 00:39 - Basic setup and overview 01:21 - Revealing entry files 02:00 - entry.client setup 02:20 - Adding everything we need 03:26 - Adding our first language file 04:06 - Adding resources file 05:45 - Modifying entry.server 08:02 - Modifying the root.tsx file 10:35 - Adding our first translation 10:46 - Fixing a Vite specific error with remix-i18n 11:14 - Our first demo 11:50 - Adding another language 12:37 - Making our resources type-safe 15:22 - Adding a language switcher 15:44 - Final demo 16:17 - Outro ๐ Tags: Remix framework, Vite, Remix Vite, internationalization, i18n, web development, frontend development, Remix tutorial, coding tutorial, i18n tutorial, Remix Vite tutorial, web app localization, i18n setup, language switcher, translating content, developer tools, open source, coding community.
Incremental Static Regeneration (ISR) is a powerful pattern for rendering pages on the web. Remix has useful tools to do fine-grained ISR and other advanced caching patterns when deployed to Netlify. This guide will show you how to do it.
๐ All-in-one remix starter template for Cloudflare Pages
Remix Done Right Series - Part 1: Project Setup with Remix and Vite Welcome to the first installment of our "Remix Done Right" series! In this episode, we dive into the essential steps of setting up the foundation for our Remix app using Vite. Get ready to embark on a journey of creativity and coding as we create a powerful remix application from scratch. ๐ ๏ธ What You'll Learn in Part 1: Project Setup: We guide you through the process of setting up a basic project structure using Remix and Vite, ensuring a solid foundation for your app. Remix Development Tools Installation: Learn how to install and configure Remix development tools to streamline your workflow and enhance the development experience. Plugin Integration: Discover the power of plugins as we add some essential ones to supercharge your Remix app development. Tailwindcss: Learn how to install tailwindcss in Remix and use it to style your projects. ๐ Get Ready to Remix: Follow along and code with me as we lay the groundwork for an exciting and feature-rich Remix application. Whether you're a seasoned developer or just starting, this series is designed to be beginner-friendly and packed with valuable insights. ๐ Resources and Links: Remix Documentation: https://remix.run/docs/en/main Vite Documentation: https://vitejs.dev/ Remix Development Tools: https://github.com/Code-Forge-Net/Remix-Dev-Tools ๐ 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/AlemTuzlak59192 GitHub: https://github.com/AlemTuzlak โฑ๏ธ Timestamps: 00:00 - Intro 01:23 - Installing a fresh Remix.run project 01:52 - Remix Vite vs old Remix bundler rant 04:12 - Initialing the project 05:02 - Going over what we initialized 05:33 - Modifing our Vite config & adding remix-development-tools 06:54 - tsconfig.json overview 08:49 - Looking at our application with remix dev tools 09:31 - Adding tailwindcss to the project 12:08 - Overview of app with tailwind 12:29 - Adding remix dev tools plugins 14:32 - Our first plugin overview 15:40 - Adding the icons plugin 16:58 - Outro & info on the part 2
Automatically generate responsive images on Remix using Unpic
The Full Stack Web Development Conference of Epic proportions.
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 โฆ
If you're using Remix, you can ask it to prefetch the data of a new route using `<Link prefetch`> prop, but if you need to use `fetcher.loaโฆ
Achieving the holy grail of server-side rendered local dates without hydration mismatches or flash of unhydrated content, by (ab)using synchronous scripts.
A community driven social networking app built using Remix and Supabase
In this video we go over view transitions in Remix.run, how they work, what you can do with them and we go in depth on granular image transitions between pages. The github repo for the video project: https://github.com/AlemTuzlak/remix-view-transition-pokemon If you wish to support the channel consider subscribing for more content. Twitter: https://twitter.com/AlemTuzlak59192 Github: https://github.com/AlemTuzlak Blog: https://alemtuzlak.hashnode.dev/ Timeline: 00:00 - Intro 00:22 - View transition demo 01:45 - View transitions API in depth explanation 05:01 - Project setup for view transitions in Remix 06:10 - View transitions in 1 LOC 07:52 - Main page with view transitions 08:39 - Granular image transitions with custom names 10:00 - How do granular transitions work in Remix 13:32 - Viewing our granular view transitions 14:25 - Even more granular transitions!! 17:07 - Final demo 17:47 - Outro
We go into what Remix.run is exactly, how it works under the hood and how it improves your DX and makes your users fall in love with your website. If you wish to support the channel consider subscribing for more content. Twitter: https://twitter.com/AlemTuzlak59192 Github: https://github.com/AlemTuzlak Blog: https://alemtuzlak.hashnode.dev/ 00:00 - Introduction to Remix.run 02:08 - How does Remix operate on a server 06:30 - Server framework deep dive 09:08 - Browser framework overview 11:17 - Outro
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
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
Learn how to create in-place optimistic UI to avoid flickering of state after submitting an action and waiting for the loader to revalidate. Explore the full code here ๐ COMING SOON 00:00 - Overview 00:57 - EditableText component 01:50 - Form submissions without optimistic UI 03:14 - Adding optimistic UI 06:58 - Handling focus management 10:19 - Demoing the optimistic UI Learn more at https://remix.run
With useNavigation we can render contextual pending UI to give our user feedback that our application is "thinking" while they way for an action to resolve. Explore the full code here ๐ COMING SOON 00:00 - Overview 00:45 - Adding pending UI via useNavigation 02:57 - Improving pending UI via formAction 04:10 - Pending UI for multiple actions Learn more at https://remix.run
By returning redirects we can improve the user's experience after they create a new board by changing a single line of code. Explore the full code here ๐ COMING SOON 00:00 - Overview 00:33 - Redirect after creating a record Learn more at https://remix.run
This video brings everything together from the first 9 videos to allow authenticated users to create a new board and automatically see their new board once it's created. This is the loader, component, action trifecta that makes Remix so powerful. Explore the full code here ๐ COMING SOON 00:00 - Overview 01:31 - Setting up a Remix Action 02:24 - Validating the form data 05:08 - Creating a new board 05:27 - Essential vs. incidental complexity 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
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
Learn how to log users out by invalidating the auth Cookie and redirecting after submitting the logout form. Explore the full code here ๐ COMING SOON 00:00 - Creating a logout route 00:38 - Deleting the auth cookie 01:39 - Demoing the logout form Learn more at https://remix.run
Learn how to create new users on signup, and enhances the user validation by checking whether or not the user exists. Explore the full code here ๐ COMING SOON 00:00 - Overview 00:20 - Exploring the signup/queries module 00:58 - Validating account existence Learn more at https://remix.run
A cookie is a small piece of information that your server sends someone in a HTTP response that their browser will send back on subsequent requests. In this Single we explore how to create, write, and read cookies to manage user authentication. Explore the full code here ๐ COMING SOON 00:00 - Overview 00:39 - Scaffolding a createAccount function 03:20 - Creating a cookie 04:14 - Writing the cookie 05:30 - Cookie attributes explained 09:03 - Reading the cookie 11:22 - Review Learn more at https://remix.run
Remix's routing convention allows you to convert a route to a folder so you can co-locate modules and keep your route logic clean. Explore the full code here ๐ COMING SOON 00:00 - Overview 00:27 - Converting route files into folders 01:12 - Moving validation code outside the route 02:05 - Cleaning up the code Learn more at https://remix.run
Learn how to validate form data inside a Remix Action and display useful error messages to your user. Explore the full code here ๐ COMING SOON 00:00 - Overview 00:29 - Setting up placeholder error messages 02:17 - Validating form data in Remix Actions 06:03 - Rendering validation errors Learn more at https://remix.run
Learn the difference between submitting a form with a GET vs. a POST method, and how to access that information using an Action in Remix. Explore the full code here ๐ COMING SOON 00:00 - Overview 00:26 - Submitting a GET request 01:16 - Submitting a POST request 2:00 - Accessing form data on the server 4:24 - Review Learn more at https://remix.run
The blog of sergiodxa
Remix template with Vite, Tailwind CSS, and Fly.io support
Remix is a full-stack framework with seamless backend-frontend integration, fewer states, and web standards emphasis
- Public roadmap ๐ https://github.com/orgs/remix-run/projects/5/views/1 - RFCs ๐ https://github.com/remix-run/remix/discussions/categories/official-rfcs - "Open Development" blog post ๐ https://remix.run/blog/open-development 00:00 - Introduction 02:47 - Middleware 25:37 - Server Context 50:24 - Client Middleware (Q&A) Learn more at https://remix.run
Andre teaches Brooks how to build a toast notification system in Remix using Cookies. Full Stack Web Development with Remix ๐ https://a.co/d/5BmioFi Repo (initial setup) ๐ https://github.com/PacktPublishing/Full-Stack-Web-Development-with-Remix/tree/main/15-advanced-session-management/bee-rich/solution Learn more about Andre ๐ https://github.com/andrelandgraf 00:00 - Introductions 06:33 - Setting up the project 12:53 - Client-side toast notifications 19:37 - Server-side toast notifications 28:00 - Cookie-driven toast notifications (diagram) 37:15 - Cookie-driven toast notifications (code) 1:10:30 - Progressively enhanced toast notifications 1:15:15 - Concluding thoughts Learn more at https://remix.run
Learn how to create a progressive enhancement image uploader that works for users with or without JavaScript.
The blog of sergiodxa
Learn how to eliminate CLS using client hints in the Epic Stack.
Learn how to implement real-time file upload progress updates to enhance the user experience with Remix. Keep users informed about the progress of their file uploads in real-time for a smoother and more engaging experience.
- Public roadmap ๐ https://github.com/orgs/remix-run/projects/5/views/1 - RFCs ๐ https://github.com/remix-run/remix/discussions/categories/official-rfcs - "Open Development" blog post ๐ https://remix.run/blog/open-development 00:00 - Introduction and recap 01:27 - Bundle Shredding ๐ธ for Lambda/Serverless Architecture 06:55 - RFC: React Elements and Promises as loader / action data 39:40 - Client Data 47:53 - Remix SPA Target 54:53 - Vite update (Q&A) 57:17 - unstable_parseMultipartFormData (Q&A) 1:00:15 - Middleware (Q&A) Learn more at https://remix.run
Alem teaches Brooks how to use Remix Forge and the Remix Dev Tools Remix Forge ๐ https://marketplace.visualstudio.com/items?itemName=CodeForge.remix-forge Remix Dev Tools ๐ https://github.com/Code-Forge-Net/Remix-Dev-Tools Learn more about/sponsor Alem ๐ https://github.com/AlemTuzlak 00:00 - Introductions 03:55 - Setting up the project 06:43 - Remix Forge 20:51 - Setting up the Remix Dev Tools 33:37 - Exploring the "Settings" tab 41:47 - Exploring the "Routes" tab 52:13 - Exploring the "Active page" tab 1:11:04 - Exploring the "Errors" tab 1:24:17 - New Vite plugin 1:33:46 - Remix Dev Tools plugins 1:36:19 - Remix Dev Tools enhanced logging 1:41:44 - Final thoughts Learn more at https://remix.run
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
Read the abstract โค https://www.conf42.com/JavaScript_2023_Ken_Snyder_remix_philosophy Other sessions at this event โค https://www.conf42.com/js2023 Join Discord โค https://discord.gg/DnyHgrC7jC Remix Demo - Shopping List โค https://github.com/kensnyder/remix-demo-shopping-list Chapters 0:00 intro 0:22 preamble 0:31 what we'll cover 0:48 about ken 1:27 why should you care? 2:02 let's create a real remix app 13:18 try it on github 13:27 outlet 14:20 more complex forms 16:29 philosophy: embrace server/client model 17:21 bundles 18:13 single page app 18:39 remix app 20:10 server & runtime adapters 20:41 official list 21:23 work with web foundations 21:43 standards 23:09 request, response 23:48 fetch loves requests & response 24:26 headers 25:28 url search params 26:13 traditional react components 27:11 more traditional react page 27:46 ...or just use remix 28:07 work without js 30:11 demo without js 31:15 roadmap and future flags 31:43 roadmap highlights 32:47 future flags 34:08 applying the philosophy outside remix 35:11 we chose a new mindset 36:14 hello shoreline 36:26 thank you
Learn Remix from scratch. Take your coding skills & career to the next level by building better websites with the hottest web framework based on React.
Use redirect routes to redirect users to the right place. Implement dynamic next/previous buttons. Send users back to onboarding or login pages.
Hosting your Remix sites and applications on Netlify just got even better thanks to a number of new capabilities in our core platform and updated integrations which unleash the features in the latest version of Remix. Learn how you can use advanced cache control, streaming, custom local dev servers, and more.
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
Effortlessly upload images using Supabase and Remix; set up, create client-side uploader, and manage server-side uploads with this guide
Introducing Remix v2.2.0: lightning-fast Vite integration, plugins, and better developer experience. Elevate projects and discover new potential!
Nessa postagem vamos aprender como fazer o deploy de uma aplicaรงรฃo Remix no serverless.
Learn this popular React framework by building and deploying your own Work Journal app.
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
Today weโre announcing that unstable support for Vite is available in Remix v2.2.0!
I think this demo shows why elysia and remix are actually a pretty nice technological matchup
Master integration testing for Remix apps using Vitest, TypeScript, Docker, and real databases, with adaptable techniques for any JS app like Next.js
The tutorial says 30m, but it took me about 80m, not including editing time. #remix #react * * * Nikos Katsikanis LTD Director/Producer: Visit https://nikoskatsikanis.com for more information. Check out "The Nikos Show" on my main channel: https://www.youtube.com/@NikosKatsikanis
From the perspective of web standards to concerns about increasing complexity, Kent C. Dodds shares his opinions on why he won't use Next.js.
The blog of sergiodxa
Containerizing and deploying a production Remix application on the LowOps platform Cycle.
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
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
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