Celest: The Future of Full-Stack Flutter Development

Engineering

Celest

Flutter

Summary

Celest is a backend-as-a-service platform designed for Flutter developers, enabling them to build full-stack applications entirely in Dart, simplifying the development process. It enhances productivity by allowing code reuse between the frontend and backend. Founded by Dillon, a former AWS Amplify engineer, Celest offers innovative features like serverless functions, SQL-based data management, and flexible deployment options.

Key insights:
  • Celest’s Mission: Simplify development by unifying frontend and backend development using Dart, eliminating inefficiencies from using multiple languages.

  • Dart as the Core: Celest leverages Dart's strong type system, null safety, and concise syntax for both front and backend.

  • Core Features: Offers serverless functions, authentication, SQL data management through Drift, and seamless cloud integration via Turso for scaling.

  • Deployment Flexibility: Supports both self-hosting via Docker and cloud hosting, providing control and scalability.

  • Upcoming Features: Includes an intuitive cloud dashboard and offline-online database synchronization to enhance user-friendliness.

  • Comparison with Firebase and AWS: Celest’s Dart-based approach allows a single codebase for both frontend and backend, unlike Firebase or AWS, which require multiple languages and tools.

Introduction

Celest, a backend-as-a-service platform, stands out by allowing developers to build full-stack applications entirely in Dart, offering a level of integration and simplicity that surpasses existing solutions like Firebase or AWS Amplify. This approach simplifies the development process and enhances productivity by providing a seamless way to share logic between Flutter apps and the backend.

By enabling backend development in Dart, Celest removes the typical need for juggling multiple tools or languages, ensuring consistency across the Flutter ecosystem. This insight covers Celest’s innovative features, upcoming updates, and key decisions made by Dillion, the CEO of Celest, as revealed in our chat with him.

Celest's Mission and Vision

Dillon’s extensive experience in leading the development of Flutter libraries at AWS Amplify gives him unique insight into the gaps between frontend and backend development. His vision for Celest emerged directly from his frustration with the existing siloed approach to app and backend development which often required developers to juggle multiple languages and tools. 

At the core of Celest is a commitment to simplifying development, a principle that drives both its mission and vision. Celest envisions unifying frontend and backend development through the use of Dart, allowing a single team or developer to manage both. This approach allows for greater collaboration and removes the traditional barriers between app developers and backend engineers. By doing so, Celest eliminates the inefficiencies caused by having separate teams for different aspects of development. 

Another key goal for Celest is to simplify cloud development by removing unnecessary complexity and streamlining processes. The platform is designed to enhance the overall developer experience, enabling teams to focus on building products rather than dealing with technical roadblocks. This vision directly aligns with Celest’s broader mission of expanding the Dart ecosystem beyond Flutter and establishing Dart as a robust language for backend development. Celest aims to provide developers with the tools required to create integrated systems where all components are written in Dart and communicate seamlessly - something that traditional cloud services like AWS and GCP often struggle to achieve. 

Much like how Flutter bridged the gap between iOS and Android development by eliminating the need for two separate codebases, Celest aims to take the next step by bridging the gap between frontend and backend teams. The platform aims to remove the need for two separate development teams and enable a more unified and efficient workflow across both areas of application development. 

Why Dart? 

During our chat, Dillon emphasized that Dart is an excellent language for several reasons. First, its null safety ensures that developers can avoid many common runtime errors leading to more reliable and stable code. Second, its strong type system enforces clear rules that help catch potential bugs early in the development process. Dart also delivers impressive performance, making it well-suited for both front-end and back-end tasks. Additionally, Dillion highlighted Dart’s concise and readable syntax, which makes it easier to both learn and maintain, especially for teams that want to work more efficiently across both app and backend development. These factors, combined, make Dart a powerful choice for unifying development with Celest. 

What Can You Build with Celest?

Celest provides developers with several core building blocks to create backend systems. One of the key features is the ability to build serverless functions that run in the cloud, allowing backend logic to be executed without the need to manage servers. Additionally, the platform offers authentication methods that currently support email-based authentication via one-time passcodes as well as the ability to integrate third-party auth providers like Firebase. Celest also simplifies data management by supporting the definition of SQL types and relationships directly in Dart - removing the need for external database tools and enabling a fully integrated solution for managing data. 

Data Management in Celest with Drift and Turso

Celest redefines backend data management by integrating Drift and Turso to offer developers a comprehensive and scalable solution. Drift, a Dart-native Object-Relational Mapping (ORM) library, allows developers to define their database schema directly in Dart code. It automatically generates the necessary SQL queries which streamlines data handling for both frontend and backend development. Drift is highly optimized for SQLite, which makes it an ideal choice for fast development. However, SQLite’s traditional limitation of being confined to a single server poses challenges for larger applications that require more scalability.

To address this, Celest has partnered with Turso, a distributed database solution that extends SQLite’s capabilities for production. Turso allows developers to build scalable and secure backends without needing to switch databases as their applications grow. This integration makes Celest the first Dart platform to provide a fully distributed database solution out of the box which is a major leap forward in simplifying backend development for Flutter developers. For example, developers can define a database schema for a task management app using Drift, and Celest handles everything from there. Once the setup is complete, Celest manages the database infrastructure automatically, allowing developers to interact with it through cloud functions.

Self-Hosting and Cloud deployment with Celest

One of the standout features of Celest is its flexibility in deployment options which makes hosting simple and efficient for developers. Starting with Celest V1, developers can self-host their projects on any server capable of handling Docker containers. This means Celest projects can be hosted locally, on-premises, or on any cloud service of choice - providing a high degree of control over the infrastructure.

The self-hosting process is streamlined using the celest build command, which packages all dependencies into a lightweight Docker container. This container is pre-configured with the necessary environment variables and settings, allowing developers to easily deploy their projects on any server without manual configuration. Whether you are working with local machines, private servers, or a cloud provider, Celest’s container-based approach ensures seamless deployment.

For those who prefer a cloud-based solution, Celest launched its cloud platform on October 17, 2024, with a strong focus on enhancing developer efficiency through a simplified deployment process. With a single command - celest deploy - developers can push their applications to the cloud effortlessly. According to Dillon, this deployment model is designed to eliminate many of the complexities associated with cloud development, allowing teams to focus on building and iterating faster. 

At the moment, Celest offers three pricing plans for cloud deployments: Community, Pro, and Enterprise. The Community plan is free and allows developers to manage up to five projects. It provides one CPU instance with 1GB of memory and up to 10 GB of file storage. However, it comes with cold starts, which could impact performance during scaling. The Pro plan, currently priced at $10 per month, offers more features for developers who need additional capacity. This plan includes unlimited projects, 2 CPU cores with 1GB of RAM, always-on instances, and auto-scaling between projects to ensure that performance is maintained as demand increases. Lastly, the Enterprise plan is customizable to the meet specific needs of large-scale operations. It includes multi-region deployments, HIPAA compliance, 24/7 support, and a dedicated support representative which makes it ideal for businesses with more complex and mission-critical requirements. 

Sneak Peek: Celest’s Next Big Features for Developers

During our chat, Dillon shared exciting details about the upcoming features that will further enhance Celest’s platform to make it even more user-friendly for developers. One of the standout features currently in development is a streamlined cloud dashboard for monitoring and managing deployments. Dillon emphasized that this dashboard will be designed with simplicity at its core, unlike traditional cloud consoles that often overwhelm developers with cluttered data. 

The goal is to create an intuitive interface where essential information is easily accessible, enabling developers to quickly assess system health and make informed decisions. This approach is particularly aimed at developers who may lack extensive DevOps experience to allow them to manage deployments without needing to sift through complex configurations or navigate difficult-to-read metrics. Dillon noted that the dashboard would focus on surfacing only the most important data points to eliminate the typical overload of information found in other cloud services.

Another highly anticipated feature involves seamless offline-online synchronization for databases. As more mobile apps require offline functionality, Celest is working on providing developers with an easy way to set up syncing between local and cloud databases. Dillon plans to make this process straightforward by allowing developers to select which data should be available offline and synced when connectivity is restored. This feature will allow for granular control over offline storage and help developers optimize performance while ensuring that important data remains synchronized across devices once users regain internet access.

By focusing on removing unnecessary complexity and providing developer-friendly tools, Celest aims to become the go-to platform for teams looking to streamline their entire app development process. These upcoming features reinforce Celest’s commitment to simplifying the developer experience while offering powerful and scalable backend solutions for apps of any size.

Celest vs Firebase, AWS Amplify, and Traditional Backend Solutions

As a backend-as-a-service platform, Celest is designed to compete with established solutions like Firebase and AWS Amplify. What makes it unique is its focus on providing a unified Dart environment for Flutter developers. Below, we compare Celest with Firebase, AWS Amplify, and traditional backend solutions like PostgreSQL/MySQL and highlight the key advantages and differences.

1. Unified Development in Dart

Celest’s primary strength lies in its ability to use Dart for both frontend (Flutter) and backend development. This approach eliminates the need for developers to learn and maintain multiple programming languages and tools which is often the case with Firebase or AWS Amplify where developers may need to use JavaScript, TypeScript, or other backend-specific languages. Celest allows developers to focus on a single codebase, reducing cognitive load and making the development process more streamlined. 

For example, while Firebase uses Firestore (a NoSQL database), AWS Amplify might involve using GraphQL or REST APIs, alongside configurations in multiple languages like Python, JavaScript, or TypeScript. This creates a steeper learning curve, especially for Flutter developers who are primarily familiar with Dart. With Celest, everything is written in Dart. This allows for seamless logic sharing between the frontend and backend and simplifies debugging, enhances code reuse, and reduces friction for teams working across the full stack.

2. SQLite vs Firestore and DynamoDB

One of Celest’s standout features is its use of SQLite (via Drift and Turso) as the core database engine. This not only ensures that the data models are consistent across the app but also provides key advantages over Firebase’s Firestore and AWS’s DynamoDB - both of which use NoSQL document-based databases. While NoSQL databases offer flexible, schema-less structures that are highly scalable, the lack of enforced schema can lead to data inconsistencies as projects grow. Additionally, document-based models may not always suit applications that require complex relationships between data entities. On the other hand, Celest takes advantage of a SQLite backend which ensures structured and consistent data through a defined schema. This reduces the risk of inconsistencies and allows developers to benefit from reliable SQL constraints.

Additionally, SQLite allows Celest to handle more complex data relationships using SQL capabilities like joins, filtering, and aggregation which are difficult to achieve with NoSQL databases. Lastly, using Drift, Celest can accommodate developers who might want to perform database migrations as applications evolve. Unlike other providers, where changes in data structure require complex processes, Celest’s schema-based approach ensures smoother transitions and data migration.

3. Ease of Deployment and Developer Experience

Celest has focused on making deployment as straightforward as possible. With a simple command (celest deploy), developers can push their apps to the cloud without worrying about infrastructure setup. Furthermore, Celest gives developers the flexibility to self-host their backend using Docker. The hybrid approach of local/cloud deployment allows teams to maintain full control over their infrastructure when needed or rely on Celest’s cloud for easy scalability. In our chat with Dillon, he emphasized the importance of a cloud dashboard with simplicity in mind. We can expect to see further updates on the platform that make the complications associated with traditional cloud deployments simplified and accessible for developers without DevOps expertise. 

4. Packages Support and Ecosystem Integration

Celest’s ability to work seamlessly with any Dart package available on pub.dev is a significant advantage over other backend solutions. Since Celest is built entirely around Dart, developers can tap into the vast ecosystem of Dart packages without compatibility issues to speed up development. Pub.dev already hosts thousands of packages, covering everything from HTTP requests and state management to advanced features like machine learning and cloud integrations. 

In contrast, solutions like Firebase and AWS Amplify often require using specific SDKs or libraries tailored to their platforms which can introduce complexity and require learning new tools. Celest’s tight integration with the Dart ecosystem ensures developers can use their favorite tools and packages natively, leading to faster development, easier maintenance, and better overall consistency across the full stack. This also means that developers can immediately integrate popular Flutter packages for the frontend and backend without needing to search for separate solutions which makes Celst a highly attractive choice for those already familiar with Dart and Flutter.

Celest’s focus on Dart as the central language for both frontend and backend development, combined with its SQLite-based architecture and flexible deployment options, set it apart from Firebase, AWS Amplify, and traditional backend solutions. For Flutter developers specifically, Celest aims to provide an all-in-one solution that eliminates the friction associated with working across multiple platforms to enable faster development cycles, consistent data models, and seamless integration. Whether you are building a small mobile app or a large-scale enterprise solution, Celest offers the tools and flexibility to scale effortlessly while maintaining simplicity and performance. 

Conclusion

In conclusion, by merging frontend and backend development under Dart, Celest offers a complete solution for Flutter developers. Its focus on code reuse, productivity, and simplicity which makes it an alluring choice for developers looking to optimize their workflow. It aims to expand the Dart ecosystem beyond Flutter and provides a strong substitute for Firebase by providing serverless functions, enforced schema, SQL-based data management, and seamless authentication. With the recent release of its cloud platform, Celest has become a more user-friendly and scalable platform for developing apps.

References

Celest | the Flutter Cloud Platform | Celest. celest.dev.

Other Insights

Got an app?

We build and deliver stunning mobile products that scale

Got an app?

We build and deliver stunning mobile products that scale

Got an app?

We build and deliver stunning mobile products that scale

Got an app?

We build and deliver stunning mobile products that scale

Got an app?

We build and deliver stunning mobile products that scale

Our mission is to harness the power of technology to make this world a better place. We provide thoughtful software solutions and consultancy that enhance growth and productivity.

The Jacx Office: 16-120

2807 Jackson Ave

Queens NY 11101, United States

Book an onsite meeting or request a services?

© Walturn LLC • All Rights Reserved 2024

Our mission is to harness the power of technology to make this world a better place. We provide thoughtful software solutions and consultancy that enhance growth and productivity.

The Jacx Office: 16-120

2807 Jackson Ave

Queens NY 11101, United States

Book an onsite meeting or request a services?

© Walturn LLC • All Rights Reserved 2024

Our mission is to harness the power of technology to make this world a better place. We provide thoughtful software solutions and consultancy that enhance growth and productivity.

The Jacx Office: 16-120

2807 Jackson Ave

Queens NY 11101, United States

Book an onsite meeting or request a services?

© Walturn LLC • All Rights Reserved 2024

Our mission is to harness the power of technology to make this world a better place. We provide thoughtful software solutions and consultancy that enhance growth and productivity.

The Jacx Office: 16-120

2807 Jackson Ave

Queens NY 11101, United States

Book an onsite meeting or request a services?

© Walturn LLC • All Rights Reserved 2024

Our mission is to harness the power of technology to make this world a better place. We provide thoughtful software solutions and consultancy that enhance growth and productivity.

The Jacx Office: 16-120

2807 Jackson Ave

Queens NY 11101, United States

Book an onsite meeting or request a services?

© Walturn LLC • All Rights Reserved 2024