Pro course

Ship an app with Remix

Learn this popular React framework by building and deploying your own Work Journal.

19 Lessons
5h 0m
Sam Selikoff

Taught by

Sam Selikoff

In this course you'll learn Remix by building a personal Work Journal app. You'll set up a database, render pages with dynamic data, use actions and forms to save user input, explore nested routing, learn how to render custom error pages, and finish by adding authentication and deploying your app.

By the end, you'll have a polished Remix app of your own that you can use as both a personal journal, as well as a rock-solid side project you can keep working on as you continue to learn Remix and other libraries in the React ecosystem.

Ryan Florence

Sam's Remix content is REALLY good.

His videos demonstrate a deep understanding of why we created Remix.

Ryan Florence

Co-creator of Remix

Roman Sandler

What I love the most about how Sam teaches you Remix is that he builds upon literally decades of MVC practices and patterns, and translates them into the Remix way of doing things.

Follow these steps and you will fall into the pit of success every time!

Roman Sandler

Frontend Tech Lead

Simeon Griggs

Your videos do a really good job of distilling the web fundamentals that the platform uses.

Simeon Griggs

Solution Engineer at Sanity


Scaffolding a new app12:31

Create a brand new Remix project and add tooling for TypeScript, Tailwind and Prettier.

Creating an entry form22:49

Build the frontend form and define an action for our first user flow.

Saving new entries20:44

Set up Prisma and SQLite to persist our dynamic data.

Adding pending UI15:12

Improve our form's UX with validations, default values, and a styled pending state.

Loading entries8:22

Use our homepage's loader to render dynamic entries from our backend.

Displaying entries by week24:09

Map and reduce our dynamic entries into weekly groups using the date-fns library.

Creating the edit page13:43

Define a new dynamic route that loads an entry based on the URL.

Editing entries9:47

Build a form and action that lets users edit entries.

Making the entry form reusable10:20

Refactor our form component so it can be used to both create and edit entries.

Deleting entries10:25

Learn how progressive enhancement works in Remix by making a form to delete entries.

Adding an authenticated state23:43

Let admins sign in by adding a login route that creates a session cookie.

Adding a logout button6:48

Let admins sign out by creating a form that destroys the session.

Customizing the public UI5:01

Use the session to hide admin-only user flows from public guests.

Securing our app12:58

Learn how to secure our backend data from unauthorized requests.

Customizing the error pages13:19

Use an Error Boundary to provide better feedback to users when they encounter an exception.

Adding error messages to the login form13:37

Use the return value from our login action to show validation errors to the user.

Mobile redesign41:57

Give our UI a facelift on smaller screens using Tailwind CSS and some digital design best practices.

Desktop redesign18:46

Finish up our redesign by adapting the UI for larger screens.

Deploying our app16:14

Deploy your brand new Work Journal to so you can share it with the world!

Buy Ship an app with Remix

Learn this popular React framework by building and deploying your own Work Journal.

Buy the course

$149one-time payment

Get everything in Ship an app with Remix.

  • 5+ hours of video
  • 19 lessons
  • Private Discord
  • Summaries with code
  • Unlimited access to course materials

Lifetime membership

access all coursesone-time payment

Lifetime access to all current and future premium Build UI courses, forever.

  • Access to all five Build UI courses
  • New videos added regularly
  • Refactoring videos on React
  • Private Discord
  • Summaries with code
  • Full access to all future Build UI courses

What's included

Stream or download every video

Watch every lesson directly on Build UI, or download them to watch offline at any time.

Live code demos

Access to a live demo of each lesson that runs directly in your browser.

Private Discord

Chat with Sam, Ryan and other Build UI members about the lessons – or anything else you're working on – in our private server.

Video summaries with code snippets

Quickly reference a lesson's material with text summaries and copyable code snippets.

Source code

Each lesson comes with a GitHub repo that includes a diff of the source code.

Invoices and receipts

Get reimbursed from your employer for becoming a better coder!