DocsGuidesGitHub

Overview

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.

Motivation

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 adopts the parts we liked and leans on more recent developments in the world of JavaScript and cloud computing to replace the others. We hope you’ll find that Saruni has all you need to build and deploy fantastic applications more easily, and that the resources we have put together here can lend a helping hand if and when you need them.

Stack

Packages

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:

  • Authentication
  • Forms

In the future, we have plans to write packages to handle analytics, localization and payments.

Limitations

Often when building web applications, we’ve stumbled across great resources that cover some part of the development-to-deployment process (hat tip to Ben Awad for particularly stellar resources). Our goal with Saruni was to produce a framework that could enable JavaScript developers to get from zero to production-ready deployment.

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.

Credits

Saruni would not be possible without the open-source contributions of wonderful folks working at Prisma, Vercel, Facebook, Apollo, Serverless and more—so our thanks goes to each of them. We also owe a debt of gratitude to the teams behind fantastic open-source offerings like Redwood and Create React App, who opened our eyes to how modern JavaScript frameworks and workflows might look. Finally, to the likes of Taylor Otwell, David Heinemeier Hansson and others who have shown the joy a web framework can bring to creators on the web for inspiring our commitment to Saruni.