December 12, 2022
Please keep in mind that whatever framework you pick, it needs to support server-side rendering and/or endpoints support. Indeed, any call to Xata needs to be server-side to avoid leaking credentials.
Let's take a quick tour of our new options for starters
SolidStart is the meta-framework on top of SolidJS and Solid router. You can use Xata in any server-side function. In the SolidStart world, you can use Xata inside
To try out easily, you can use the SolidStart starter:
npx degit xataio/examples/apps/starter-solidstart solidstart-sample-app
This is the starter for Astro:
npx degit xataio/examples/apps/starter-astro astro-sample-app
A few highlights, the server is set in SSR mode, and you will need a specific adapter depending on where you want to deploy application.
For example, if I want to deploy to netlify, I can run
npx astro add netlify. Please note that if you don’t want to setup Astro in SSR mode, you can, but you will need to rebuild your application whenever you want new data. Indeed, without SSR mode enabled, the data are requested and injected at build time!
Last but not least, from the new starers list -- SvelteKit! Another great option is to have SSR support with TypeSafety between your frontend and backend (and database if you are using Xata!).
Please note that you need to have the dev server running to generate some types (I figured this the hard way).
All your database calls need to be in
+page.server.ts to stay server-side. You can load any data in
load and react to any action in
actions ; very straight forward!
As always, this is the command to let you play by yourself:
npx degit xataio/examples/apps/starter-sveltekit sveltekit-sample-app
What ever flavor you are choosing, my advice (and this is just my point of view), is to check if you have a end to end type safety. This is important because when you will run
xata codegen, TypeScript will compile or not, telling you what needs to be adjust in your application.
Therefore, you are more confident that your application doesn’t consume stale data, so no bugs, and happy customer at the end :)
If you encounter any issues or you just want to talk, please join us on discord
Fabien is a senior TypeScript engineer at Xata who is passionate about type-safety and predictable code. He has been creating solutions to problems around brittle code patterns for years. In his free time, he enjoys climbing, woodworking, and other creative projects.