Skip to content
Prerender Base44

Base44: keep pre-rendering or move to server rendering?

When pre-rendering is enough for a Base44 app and when it's worth exporting to a server-rendered framework like Next.js or TanStack Start. Costs, effort and SEO.

8 min read

For most Base44 apps, pre-rendering is the right answer: it gives crawlers complete HTML without changing how the app is built. Server rendering is worth it when you’re leaving Base44 anyway, or when search traffic across many record pages is the business and you want full control of every page’s HTML. It means exporting the frontend and rebuilding its routing and data loading in a framework like Next.js or TanStack Start.

The difference

  • Pre-rendering renders the page in a headless browser ahead of time and serves the result to crawlers. Your app stays client-rendered for visitors. Base44 does a version of this itself; see how it works.
  • Server rendering (SSR) builds the HTML on the server for every request, for visitors and crawlers alike.

Both give crawlers the page. SSR only does it if each page loads its data on the server before responding. A server-rendered page whose data is fetched in the browser still ships an empty list to crawlers, which is a common trap.

Base44 can’t server-render

Base44 apps are React and Vite apps rendered in the browser, with data loaded through the Base44 SDK after the page starts. There’s no server-rendering mode to switch on. To server-render, you’d export the frontend (Builder plan) and move it to a framework that renders on the server.

Comparing the paths

Stay on Base44 + pre-renderingExport to a server-rendered framework
Code changesNone, or a small proxyRebuild routing and data loading
BackendBase44Base44 with limits, or your own
Crawlers get complete HTMLYes, once pages are renderedYes, on every request
Control over each page’s headThrough Base44 settings and codeFull
HostingBase44Yours
Ongoing workLowYou own the stack

When to stay with pre-rendering

  • Your app is working and your team edits it in Base44.
  • Search traffic matters, but not across thousands of pages.
  • You want the problem solved this week.

Monitor what crawlers get, and put a pre-rendering service in front of your domain. See the options guide.

When server rendering is worth it

  • You’re already migrating off Base44’s backend, for example to Supabase. The data layer is being rewritten anyway.
  • Your traffic is record pages, such as a directory or catalog, and you want each one to load its data on the server with its own title and schema.
  • You need hosting-level control Base44 doesn’t offer.

What the move involves

  1. Export the code from Base44 as a ZIP or through GitHub.
  2. Set up the framework. Next.js and TanStack Start both run React, so components move across with light changes.
  3. Move data loading to the server. Every page that fetched in a component through the Base44 SDK needs a server loader (a Server Component in Next.js, a route loader in TanStack Start).
  4. Decide on the backend. Base44’s service-role access only works inside Base44-hosted backend functions, so server code in your framework would use Base44 with user-level permissions. Most teams making this move replace the backend at the same time.
  5. Recreate SEO basics: titles, canonicals, sitemap, robots.txt, redirects and structured data.

What to do next

  1. Test your pages with the testing guide.
  2. If pre-rendering closes the gaps, stop there.
  3. If you’re planning a backend migration, fold server rendering into it.

Found something wrong or out of date? Base44 ships changes every week and we'd rather fix a guide than let it rot.

Frequently asked questions

Does Base44 support server-side rendering?
No. Base44 apps are React apps rendered in the browser. Base44 pre-renders pages for recognized crawlers instead. To server-render, you'd export the code and move it to a framework like Next.js or TanStack Start.
Is server rendering better for SEO than pre-rendering?
Both can give crawlers complete HTML. Server rendering does it on every request with nothing extra in between, but only if each page loads its data on the server. Pre-rendering gets the same result for a client-rendered app without rewriting it.
How hard is it to move a Base44 app to Next.js?
It's a rebuild of routing and data loading. Base44 pages fetch data in the browser through the Base44 SDK, and a server-rendered page must load it on the server. If you also leave Base44's backend, you replace the database, auth and integrations too.
Can I server-render and keep Base44's backend?
In principle, by calling Base44's backend from server code, but Base44's service-role access is only available inside Base44-hosted backend functions. Server-side calls from your own framework would run with user-level permissions, which limits what public pages can load.

Read next