DEV Community

Alex Spinov
Alex Spinov

Posted on

Remix Has a Free Web Framework That Actually Uses Web Standards

While most React frameworks add layers of abstraction on top of the web platform, Remix does the opposite — it embraces web standards so aggressively that your React skills become transferable web platform skills.

Here's why Remix is worth your attention in 2026.

What Remix Gives You for Free

  • Nested routing with parallel data loading (no request waterfalls)
  • Form handling via web-standard <form> with progressive enhancement
  • Error boundaries at every route level — errors don't crash your whole app
  • Built-in race condition handling — stale requests are automatically cancelled
  • Web Fetch API everywhere — same code runs on server and edge
  • No client-side state management needed for most apps

Quick Start

npx create-remix@latest my-app
cd my-app
npm run dev
Enter fullscreen mode Exit fullscreen mode

Nested Routes (The Killer Feature)

Remix loads data for all nested routes in parallel:

/dashboard              → root.tsx + dashboard.tsx (parallel load)
/dashboard/settings     → root.tsx + dashboard.tsx + settings.tsx (parallel load)
/dashboard/settings/billing → all 4 layouts load data simultaneously
Enter fullscreen mode Exit fullscreen mode
// app/routes/dashboard.tsx
import type { LoaderFunctionArgs } from '@remix-run/node';
import { json } from '@remix-run/node';
import { useLoaderData, Outlet } from '@remix-run/react';

export async function loader({ request }: LoaderFunctionArgs) {
  const user = await getUser(request);
  return json({ user });
}

export default function Dashboard() {
  const { user } = useLoaderData<typeof loader>();
  return (
    <div>
      <Sidebar user={user} />
      <Outlet /> {/* Child routes render here */}
    </div>
  );
}
Enter fullscreen mode Exit fullscreen mode

No loading spinners, no layout shift — all data arrives before paint.

Form Actions (Web Standards FTW)

// app/routes/contact.tsx
import type { ActionFunctionArgs } from '@remix-run/node';
import { json, redirect } from '@remix-run/node';
import { Form, useActionData } from '@remix-run/react';

export async function action({ request }: ActionFunctionArgs) {
  const formData = await request.formData();
  const email = formData.get('email');
  const message = formData.get('message');

  const errors = validate({ email, message });
  if (errors) return json({ errors });

  await sendMessage({ email, message });
  return redirect('/thank-you');
}

export default function Contact() {
  const actionData = useActionData<typeof action>();

  return (
    <Form method="post">
      <input name="email" />
      {actionData?.errors?.email && <p>{actionData.errors.email}</p>}
      <textarea name="message" />
      <button type="submit">Send</button>
    </Form>
  );
}
Enter fullscreen mode Exit fullscreen mode

This form works without JavaScript. When JS loads, Remix enhances it with fetch — no page reload.

Error Boundaries at Every Level

export function ErrorBoundary() {
  const error = useRouteError();

  if (isRouteErrorResponse(error)) {
    return <div>Oops! {error.status}: {error.statusText}</div>;
  }

  return <div>Something went wrong</div>;
}
Enter fullscreen mode Exit fullscreen mode

An error in /dashboard/settings shows the error boundary for settings while the rest of your app continues working.

Remix vs Next.js: Philosophy

Aspect Remix Next.js
Data mutations Web Forms + actions Client state + API routes
Caching HTTP Cache-Control headers Custom ISR/SSG system
Race conditions Handled automatically Manual AbortController
Error handling Nested error boundaries Global error page
API layer Web Fetch standard Custom Node.js API
Learning transfer Web platform skills Next.js-specific skills

Who's Using Remix

  • Shopify — adopted Remix as their official React framework
  • NASA — internal tools
  • Intercom — customer messaging platform

The Verdict

Remix doesn't fight the web platform — it leverages it. Your forms work without JavaScript. Your data loads in parallel. Your errors are isolated. And the skills you learn transfer to any web project.


Need help building production web scrapers or data pipelines? I build custom solutions for startups and enterprises. Reach out: spinov001@gmail.com

Check out my awesome-web-scraping collection — 400+ tools for extracting web data.

Top comments (0)