Skip to content
Brandon G. Neri edited this page Aug 24, 2021 · 1 revision

What is Centauri

Centauri is a framework aimed to build modern web applications while targeting the lowest infrastructure cost possible

How does Centauri works

We use a variety of technologies to accomplish our goal. The main one is JAMstack. The whole idea behind Centauri is to offload as much data as we can to a pre-rendered HTML file. In case of the server-side, we rely on simple and scalable services like Firebase o Amplify. And for serving the content through a CDN.

When to use Centauri

Of course Centauri is not ideal for all the projects. The best case scenario would be a project where a static site generator is to little and a full fledge single page application is too much. That's where Centauri comes handy. You can build an app where you have lots of data that doesn't really change so often and have light interaction on the client-side. A good example would be a simple e-commerce where you have lots of items and simple interactions on the client, like a cart, maybe some reviews and so on.

Is Centauri tied to some specific technology

One of the main design goals of Centauri is to bring a great developer experience. We're building Centauri keeping in mind that maybe you want to use Firebase for the hosting, database and building server instead of Netlify or AWS Amplify and that's ok! We let the developers choose between existing implementations for different parts of the framework and also building their own through accesible and easy to use interfaces.

Are Centauri projects completely static on the client-side?

No! We know that most websites need interaction for the client. That's why we use Preact to build our views/components and rendering them to static HTML files. When you define a route, you can specify if you want to re-hydrate Preact on the client to add more complex behavior.

Is Centauri projects bound to Preact?

No! For the initial release we're sticking with Preact only frontends, but in the near future you'll be able to choose which client technology you want to use and also create new integrations through user friendly interfaces

Want to go deeper? Try reading about Centauri architecture