Why we build client sites with TanStack Start
Type-safe routing, server functions and deploy-anywhere output: what made us switch, and what to watch out for.
Lee
1 min read
Every framework choice is a trade-off. For the marketing sites and web apps we build, TanStack Start has become our default. Here's why.
Type-safe routing, end to end
Routes, params and search params are fully typed. If a link points at a page that doesn't exist, the build fails rather than your visitors finding a 404.
Server functions instead of an API layer
Server functions let us write backend logic (saving an enquiry, sending an email) right next to the component that calls it, while the code itself only ever runs on the server.
export const submitEnquiry = createServerFn({ method: 'POST' })
.validator((input: unknown) => input as EnquiryInput)
.handler(async ({ data }) => {
// runs on the server only: safe to use secrets here
})Deploy anywhere
The build output can target Node, Cloudflare, Vercel, Netlify and more. For small businesses that means we can pick the cheapest reliable host rather than being locked into one.
The ecosystem moves quickly. Pin your versions and read the changelog before upgrading.
When we'd choose something else
For a simple brochure site that rarely changes, a static site generator is still hard to beat. We pick the tool to fit the project.