Remix uses native browser APIs — forms, HTTP caching, request/response — instead of inventing new abstractions. The result: apps that work even without JavaScript.
The Next.js Alternative
Next.js invented its own data fetching (getServerSideProps → Server Components), its own caching (complex, often confusing), and its own routing patterns.
Remix said: browsers already have great APIs for this. Let's use them.
What You Get for Free
Loaders (GET data):
export async function loader({ params }: LoaderFunctionArgs) {
const user = await db.user.findUnique({ where: { id: params.id } });
if (!user) throw new Response('Not found', { status: 404 });
return json(user);
}
export default function UserPage() {
const user = useLoaderData<typeof loader>();
return <h1>{user.name}</h1>;
}
Actions (POST/PUT/DELETE):
export async function action({ request }: ActionFunctionArgs) {
const formData = await request.formData();
await db.user.create({ data: { name: formData.get('name') } });
return redirect('/users');
}
export default function NewUser() {
return (
<Form method="post">
<input name="name" />
<button type="submit">Create</button>
</Form>
);
}
This form works without JavaScript. Progressive enhancement by default.
Nested routing — each route segment loads its own data in parallel
Error boundaries — per-route error handling
HTTP caching — standard Cache-Control headers, not custom caching logic
Progressive enhancement — everything works without JS, JS enhances the experience
Quick Start
npx create-remix@latest
Why Remix for Your Next Project
- Predictable data flow — loader gets data, action mutates data, component renders
- No client-side state management — URL IS your state, server IS your source of truth
- Works everywhere — Node.js, Cloudflare Workers, Deno, Vercel, Fly.io
- Smaller bundles — no need for React Query, form libraries, or state managers
If you're frustrated with Next.js complexity — Remix is the framework that respects web fundamentals.
Need web scraping or data extraction? Check out my tools on Apify — get structured data from any website in minutes.
Custom solution? Email spinov001@gmail.com — quote in 2 hours.
Top comments (0)