Skip to content
Dashboard

Remix without limits (historical)

Deploy and scale Remix apps of any size and complexity.

Link to headingRemixing Adapters

Link to headingServer-rendering with multiple runtimes

Link to headingAdvanced Caching

export function headers() {
return {
"Cache-Control": "s-maxage=1, stale-while-revalidate=59",
};
}

Adding caching headers can help improve your Remix application SSR performance

export function headers() {
return {
"Cache-Control": "s-max-age=2592000, stale-while-revalidate=86400, stale-if-error=604800",
};
}

Easily make your Remix application resilient to transient downtime in your backend or database

import { cacheHeader } from 'pretty-cache-header';
export function headers() {
return {
"Cache-Control": cacheHeader({
sMaxAge: '30days',
staleWhileRevalidate: '1day',
staleIfError: '7days'
})
};
}

Easily work with cache-control strings using this community package

Link to headingStreaming SSR on Vercel

app/entry.server.tsx
import { handleRequest } from '@vercel/remix';
import { RemixServer } from '@remix-run/react';
import type { EntryContext } from '@vercel/remix';
export default function (
request: Request,
responseStatusCode: number,
responseHeaders: Headers,
remixContext: EntryContext
) {
const remixServer = <RemixServer context={remixContext} url={request.url} />;
return handleRequest(
request,
responseStatusCode,
responseHeaders,
remixServer
);
}

Isomorphic support for streaming in both Node.js and Edge runtimes.

import { Suspense } from 'react';
import { Await, useLoaderData } from '@remix-run/react';
export async function loader({ request }) {
const version = process.versions.node;
return defer({
version: sleep(version, 1000),
});
}
function sleep(val, ms) {
return new Promise((resolve) => setTimeout(() => resolve(val), ms));
}
export default function App() {
const { version } = useLoaderData();
return (
<Suspense fallback={'Loading…'}>
<Await resolve={version}>
{(version) => <strong>{version}</strong>}
</Await>
</Suspense>
);
}

To simulate slow network speeds, we can delay the promise to retrieve the Node.js version.

Link to headingTry Remix on Vercel today

Ready to deploy?