Which Remix does your project use?
Remix 3 is the current separate framework and is published as the remix package. Remix v2 was built on React, and its documented upgrade path is React Router v7.
Look at the package list in the project. A project using @remix-run/react at version 2 belongs to the older line. The team marked Remix v2 end of life in June 2026 and says it no longer receives security updates. React Router v7 is the documented migration step, with its own later upgrade path.
The Remix 3 starter uses the remix package and Remix’s own screen components. Pick examples for the version you actually use.
Where does a booking form send its choice?
In Remix 3, the form sends the choice to a route in your app. The matching server function receives it and returns the next response, such as the booking page with a confirmation or a useful error.
The documentation calls the code that handles the request a controller or action. Your action checks the submitted time and asks your database to save it. It decides what the visitor sees if the time is already taken.
How can you sketch the form and saved result before writing code?
Draw a form with 2:00 and 3:30, then trace what the server should show after each submission. Keep the exercise on paper and use fictional times only.
- Sketch the first pageWrite the two time choices and the address where the form sends the selection.
- Trace a successful saveHave the server check the time and save 2:00 in your paper database. Show a confirmation only after that save succeeds.
- Trace a second visitHave the server read the saved record on the next page load. A second visitor should see that 2:00 is unavailable and be able to choose 3:30. Decide what the page says if a save fails.
What does the Remix starter need to run?
The documented starter runs a Node server. The current remix package requires Node.js 24.3 or newer. Choose a compatible supported release before deploying the server-handled form.
Your host must run the starter’s server and let you configure private settings and storage. A folder of website files alone cannot accept the booking in this example.
The Remix package is MIT-licensed and has no framework subscription. Hosting, a managed database and any other services you connect have separate costs.
What keeps bookings when the app restarts or moves?
Remix has database tools for SQLite, PostgreSQL and MySQL. Connect a store that persists across restarts and can serve every copy of the booking app.
A SQLite file can hold a disposable example. For a live app with several server copies, check that they read the same durable booking store. Separate local files could each show 2:00 as open.
Keep the project source, package lockfile and database setup files. Move the actual saved bookings with the database’s backup and restore tools. Reconfigure private settings in the destination and verify that the new app reads the restored test records before switching real traffic.