// the find
jaredpalmer/after.js
Next.js-like framework for server-rendered React apps built with React Router
After.js bolts Next.js-style server rendering and data fetching onto React Router 4, giving you getInitialProps-style page components instead of Next's file-system routing. It's aimed at teams who want SSR/code-splitting conventions but specifically dislike Next's routing model and are willing to hand-roll an Express server via Razzle.
Route-based code splitting via asyncComponent is straightforward and works with plain dynamic import(). The redirectTo/statusCode return values from getInitialProps handle redirects and dynamic 404s without littering render() with conditionals. Static site generation is a real first-class path (renderStatic + page-data.json), not bolted on as an afterthought.
Last push Feb 2024 and the whole stack sits on React Router 4/5-era APIs, Express, and Razzle — Razzle itself has had long stretches of inactivity, so you're pinning to two aging projects at once. Class-component-only API (static getInitialProps) with no documented hooks equivalent or React 18 concurrent features/Suspense story. No first-class TypeScript route typing shown in the docs despite the package being written in TS. This is fundamentally an abandoned middle ground between Next.js and Remix, both of which solved the same problem more completely and are still maintained.