Today is day 9 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my 29 Days of Open Source Alts Page or if you want more open source to learn-to-code programs, check out this list.
In the United States, it's National Pizza Day! That means we're going to start this post with a pizza story.
Sometimes, having your questions answered is the best onboarding to a new project. As my friend Jason was learning about Backend as a Service (BaaS), he started asking questions on X/Twitter. And Appwrite responded. They were welcoming, supportive, and happy to accept new contributors. And with that kind of support, he was able to hit the ground running. He wanted to experiment with features like databases, storage, forums, and real-time chat. And because he had the support of the Appwrite team, access to thorough docs that were approachable to beginners with open source access to the codebase, he was ready to start some projects with Appwrite, including his pizzapics project.
Pizzapics spawned from a tutorial that used supabase, but Appwrite became a great place for Jason to start because of the beginner and user-friendly tutorials. And if it was a great place for a new user to start, it had awesome opportunities for experts.
What is Backend as a Service (BaaS)?
Backend as a Service (BaaS) is a cloud service model that provides developers with a way to connect their web and mobile applications to cloud-based servers via APIs and SDKs. BaaS platforms offer a suite of features that typically include database management, user authentication, cloud storage, push notifications, server-side logic, and more, without the need for developers to manage or maintain the underlying server infrastructure.
If that sounds a little jargon-y to you, let's break it down with an analogy.
Imagine you're building a LEGO castle. To make it awesome, you not only need the exterior with towers and drawbridges but also the hidden parts inside, like a throne room and secret passages. Now, imagine if there was a magical box that could instantly create all those hidden parts for you, so you could focus on designing the coolest castle exterior without worrying about the details inside. That's what Backend as a Service (BaaS) is like for app development.
When you're making an app or a website, there's a lot of stuff that needs to happen in the background (like managing user accounts, storing data, or sending notifications) for the app to work properly. Doing all this from scratch is like building every single room of the LEGO castle by hand — it takes a lot of time and effort.
BaaS is like that magical box for app developers. It gives them pre-built pieces of the castle's interior (or, in app terms, pre-built backend services). This means developers can just pick what they need (like user login or data storage), and it's ready to use in their app. They don't have to build these services from scratch. It's faster and lets them focus on making the app look good and work well — just like focusing on building the exterior of your LEGO castle.
Plus, if more people start visiting your LEGO castle, the magical box automatically adds more rooms and secret passages as needed, so everyone fits comfortably. That's similar to how BaaS can scale or grow with your app, handling more users without the developer needing to do anything extra.
In simple terms, BaaS helps app developers by taking care of the, behind-the-scenes stuff, allowing them to focus on creating an amazing app experience for users, just like letting you focus on building the best LEGO castle ever.
Why Use BaaS?
Developers often choose BaaS because they want to streamline the development process, reduce costs, and go to market with their product faster. Other reasons they may choose to use BaaS include:
Simplification: BaaS provides pre-built backend components, like databases, authentication systems, cloud storage, and server-side logic, allowing developers to focus on building the frontend and user experience of their applications.
Scalability: Most BaaS platforms automatically scale based on the applications use. This means that infrastructure can handle increased usage without a lot of manual changes.
Cost Efficiency: For some small to medium-sized projects, using a BaaS can decrease upfront investments in server hardware of long-term contracts with cloud services.
Faster Time to Market: Because developers don't have to worry about creating complex backends, they're able to go to market more quickly.
Security: BaaS platforms typically offer built-in security features, including data encryption, authentication, and compliance with various regulatory standards.
BaaS Spotlight: Appwrite
Build like a team of hundreds_ Appwrite's open-source platform lets you add Auth, DBs, Functions and Storage to your product and build any application at any scale, own your data, and use your preferred coding languages and tools.
Appwrite Init has concluded! You can check out all the latest announcements on our Init website 🚀
Appwrite is a backend platform for developing Web, Mobile, and Flutter applications. Built with the open source community and optimized for developer experience in the coding languages you love.
English | 简体中文
Announcing Appwrite Cloud Public Beta! Sign up today!
Appwrite is an end-to-end backend server for Web, Mobile, Native, or Backend apps packaged as a set of Docker microservices. Appwrite abstracts the complexity and repetitiveness required to build a modern backend API from scratch and allows you to build secure apps faster.
Using Appwrite, you can easily integrate your app with user authentication and multiple sign-in methods, a database for storing and querying users and team data, storage and file management, image manipulation, Cloud Functions, and more services.
Find out more at: https://appwrite.io
Table of Contents:
Features
AppWrite's features cater to developers' needs, including database management and authentication services, file storage, server-side functions, and real-time capabilities. We can think of AppWrite as a one-stop-shop for building modern applications. And it's worth mentioning that its multi-platform support allows you to develop for web, Flutter, Android, or iOS. Moreover, the developer experience, dashboard, and integration processes, have had positive reactions from many developers using the platform.
As you can imagine, there are a lot of features available. Here's a list of some of AppWrite's key features:
Database Management: Provides a scalable database to store, retrieve, and manage application data with ease, supporting complex queries, real-time data, and various data types.
User Authentication: Offers a complete authentication system, including secure sign-up, sign-in, password recovery, and third-party logins (like Google, Facebook, etc.), making it easy to manage user identities.
File Storage: Developers can securely upload, download, and manipulate files, including images, videos, and documents.
Cloud Functions: Enables the execution of server-side logic in response to events triggered by AppWrite services or HTTP requests. This feature supports multiple programming languages, allowing for custom backend logic.
Real-time Capabilities: Provides real-time data synchronization across clients, enabling interactive features like live chat, notifications, and dynamic content updates.
Push Notifications: Facilitates sending notifications to users across platforms, helping to engage users and keep them informed about important updates or events.
Access Control and Permissions: Offers a flexible and powerful system for managing user permissions and access control, ensuring data security and privacy.
Localization: Supports multiple languages and regions, making it easier to create applications that cater to a global audience.
Email and SMS Services: Allows for sending emails and SMS messages directly from your app, useful for verification codes, welcome messages, or marketing campaigns.
APIs and SDKs: Provides a wide range of RESTful APIs and client SDKs for popular platforms (iOS, Android, Flutter, Web, etc.), enabling seamless integration of backend services with your application.
Custom Domains: Supports custom domains for your projects, allowing you to use your own branding and domain names for APIs and web apps.
Security Features: Includes robust security measures such as automatic encryption, OAuth 2.0 support, and compliance with security standards to protect your application and user data.
Analytics and Logs: Offers analytics and logging tools to monitor app performance, user behavior, and system health, helping you make informed decisions based on data insights.
Open Source
We can look at the community from two different perspectives. The first is contributors:
The second is their Heroes program. Jason Torres, who I spoke to for this post, is one of their newest ambassadors. They also encourage non-code contributions as a way to contribute to their open source community.
I really appreciated this particular story that showed how important contributions are to Appwrite. Graham- a community member - did a live stream accessibility audit of Appwrite. From that experience, he created issues to improve the accessibility of Appwrite, and they were incredibly receptive and motivated to improve their app.
Appwrite Repo
- 🌠 39.3k
- 👀 370
- forks: 3.6k
- license: BSD-3-Clause license
Takeaways
AppWrite stands out as a powerful Backend as a Service (BaaS) platform that simplifies the process of backend development for web and mobile applications. By offering a wide array of features like database management, user authentication, file storage, cloud functions, and real-time capabilities, Appwrite enables developers to focus on the user experience and building the front end of their applications without getting bogged down by backend infrastructure.
If you have questions or suggestions for what topic we should cover let us know in the comments below or sign up for our newsletter.
Top comments (5)
Having used Sanity as a backend. I feel like it at least deserves mentioning. It's very customizable and has a built in CMS for in-house teams to use. Couple that with the version control options and user level access controls. It's quite adaptable for many projects.
So relatable! Thank you for sharing.
AppWrite does not seem to be as powerful as Supabase.
Can you expand?
Sure, Supabase utilizes PostgREST as its underlying technology, granting you unrestricted access to your assigned database. Unlike AppWrite, there are no limitations imposed on writing custom functions in SQL, which can be subsequently referenced through the API. AppWrite, on the other hand, confines you to using edge functions for any required customizations. Additionally, it appears that AppWrite employs a NoSQL database, at least in the user-provided information. In terms of authentication capabilities, Supabase outshines AppWrite by offering robust options for configuring any OAuth Provider, facilitating seamless logins. While my knowledge is based on the free plan, differences in the paid plans might exist.