"Write once, deploy literally anywhere."
Build your backend, Flutter-style — From your Flutter app to your backend in the cloud, Celest helps you build every piece of your application in Dart, all without leaving your IDE. Celest is a backend-as-a-service for Flutter and Dart developers, empowering them to become full-stack developers.
They are introducing "Cloud Widgets," a set of primitives that enable you to declaratively define every piece of your backend and infrastructure in Dart. Celest allows developers to build and connect their apps to their backend with no additional tooling, enabling Flutter developers to focus on building features and delivering value to their customers rather than learning additional domains and using disparate toolchains.
Founded by Dillon Nys
When Dillon was at AWS building Amplify Flutter, he found himself wanting to write more and more of his code in Dart. He loved being able to maintain his flow state and use a single programming language—one he'd grown quite fond of—for everything. CLIs, tooling scripts, HTTP servers… if he needed a piece of code, he would find a way to write it in Dart.
The ecosystem for these use cases was immature but that just made it a challenge, which he loved. Use the right tool for the job, you may say. Nah… he'd want to use Dart. He thought he was alone in this quest but, he was okay being the crazy one.
And then, to his surprise, customers began asking
“When can I write my Lambdas in Dart?”
“When is AWS going to release an SDK for Dart so I can use it in my backends?”
It dawned on him that there was perhaps something deeper we were all experiencing, something more fundamental about coding being expressed.
JavaScript is one of the most popular server-side languages in use today. A reasonable person with no knowledge of JavaScript may conclude from this that it’s because JavaScript is performant, efficient, or otherwise designed for the server.
The reality, though, is that developers will often seek the path of least resistance in an environment replete with friction. It’s easy to deride a choice in language, but it’s hard to downplay the numbers. Software engineers are human, after all—and humans are constantly optimizing their flows.
Flutter was born from a desire to solve this age-old quest of optimization—first, as a way to build iOS and Android apps from the same codebase, saving teams the burden of managing two separate products. Then, to desktop and web applications, dramatically reducing the barrier to entry for these platforms too. The vision is largely realized. And, thanks to Dart, it’s been done without sacrificing performance.
The mission with Celest is to fill in the last piece of this puzzle—the cloud. They do that, simply, by starting and ending with Dart.
Here’s how you define a cloud function with Celest.
And here’s how you add authentication.
To test it out, you run[celest start]
and iterate on your backend locally as you build your Flutter app. Your functions hot reload as you save your changes, and integration comes free with an auto-generated client library.
And when you’re ready to turn this into a fully managed and auto-scaled backend, you run [celest deploy]
That’s it.
As a Flutter developer, Dillon never left the Dart programming language, never thought about the many layers of abstraction beneath, and didn’t even need to leave his IDE to solve an otherwise laborious and flow-breaking task. He's back to writing his app in less than 5 minutes.
Celest is the product he always wanted as a Flutter developer, the tool he had felt crazy for wanting at one point. It feels a little less crazy now, but only time will tell :-)
You can try and play with Celest today, check them out @ celest.dev