Saruni is a web application framework that provides the foundational tooling startups need to write and release apps. Our goal is for small development teams to feel comfortable writing and deploying world-class applications without breaking a sweat. Saruni offers sensible defaults for common challenges but aims to give developers full control.
We wrote Saruni after building web and native applications for a large online community.
There were elements of that project that we loved, like GraphQL for modular data fetching; the ACID guarantees and ease of querying a traditional relational database, and the portability of React. But we noticed limitations, too: our backend logic was written in PHP which added technical overhead, and our server-based infrastructure added complexity when scaling.
Saruni ships with code to handle common challenges in web applications, which we call packages. Out of the box you’ll have access to production-ready code for:
In the future, we have plans to write packages to handle analytics, localization and payments.
In our experience, the framework today should get you far (and faster!). But there are limitations. Specifically, the engine powering migrations in Saruni is still considered experimental so you may wish to choose an alternative means of performing migrations.
We’re also yet to deploy a Saruni application at significant scale. That’s important, because although the database we recommend for production instances of your application should prevent a common problem in applications accessing their datastore through a serverless function (exceeding concurrent connection limit) we have no proof of that.