DEV Community

Cover image for Why I moved from BaaS to Appwrite (self-hosted Backend)
Torsten Dittmann
Torsten Dittmann

Posted on

Why I moved from BaaS to Appwrite (self-hosted Backend)

Me

I am a frontend developer who is working in his spare time on an app that is used for creative writing and managing of novels. I also offer the possibility to synchronize projects via the cloud and make them available on all devices.

GitHub logo TorstenDittmann / OmniaWrite

A text editor engineered for creative writing.

Backend decision

When I was looking for a provider or software that would provide a backend for my needs, I was quickly overwhelmed.

Basically all providers offer the same functions and features and differ only in pricing and service.

After I created about 10 prototypes for the providers on my shortlist, I decided to go for one that satisfied all my needs in the free plan and didn't make any high price jumps if I should make use of it.

After running this backend for about a year and growing my app, the realization came.

For the following reasons I was not completely satisfied with it:

Dependency

BaaS providers take work off your hands, but this dependence comes at a price. Also when I think back a few years to Parse.com, where a service simply shuts down and leaves its users standing in the rain makes me wanna move away from providers.

Control

I had no control over my data and the data of my users, which ended up in me creating my own solutions for backups, for example. The solution of the provider was unfortunately linked to a paid plan.

...

I realize right now that when I go too deep into detail it gets a little exhausting to read. So I'm gonna leave the two reasons.

Then I came across this article by chance

I read through the documentation of Appwrite and was immediately thrilled that there is a solution that meets all my needs and at the same time is still available free of charge.

I joined the official Discord, which you should absolutely do when you are interested in using Appwrite, and asked a few questions regarding some minor concerns.

Immediately the creator himself answered me and suggested to implement some of my points in the next release.

So I set out to create a proof of concept and waited eagerly for the next release to completely rewrite my app for Appwrite.

Wait a minute, what can Appwrite actually do?

Let me quote from their site:

Appwrite provides developers with a set of easy-to-use and integrate REST APIs to manage their core backend needs.

  • Database
  • Storage
  • Users
  • GEO & Localization
  • Scheduled Tasks
  • Console
  • Privacy
  • Security

Everything ready with a "one-liner" to try out on your local machine.

GitHub logo appwrite / appwrite

Appwrite is a secure end-to-end backend server for Web, Mobile, and Flutter developers that is packaged as a set of Docker containers for easy deployment 🚀


Appwrite Logo

A complete backend solution for your [Flutter / Vue / Angular / React / iOS / Android / *ANY OTHER*] app

Discord Swag Store Docker Pulls Build Status Twitter Account

Appwrite 0.8 has been released! Learn what's new!

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 & 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.

Appwrite

Find out more at: https://appwrite.io

Table of Contents:

Installation

Appwrite backend server is designed to run in a container environment…

Result

Liquid error: internal
Last week I moved the production to Appwrite and came to the following result:

Average API calls per month: ~120.000
Total users: ~560
Average total Bandwidth: ~500 mb
Storage used total: ~80 mb

All this can be handled by small virtual servers and costs you only a small amount compared to service providers.

PS: Of course this solution is not for everyone, because not everyone is willing or has enough knowledge to manage their own server. Also, you have a little more work in the beginning, because you have to manage things like server security, email server, possible updates, etc. Also Appwrite is still in beta, which can lead to breaking changes in future releases.

Top comments (5)

Collapse
 
intermundos profile image
intermundos

Found this a bit late to join, but nevertheless....

Appwrite seems cool, but the moment you start messing up with self hosting/backups/restores/ssh and other devops stuff you pay price much higher than 20 bucks a month.

Yes, you will save $10 a month on self hosting, but ask yourself do you want to handle all the peripherals yourself?

Collapse
 
qm3ster profile image
Mihail Malo

Butt what is it? For example, what database does it provide?
Does it provide a message broker? Websockets?

Collapse
 
eldadfux profile image
Eldad A. Fux

Hey Mihail, I'm the creator of Appwrite. Appwrite providers you with the most commonly used APIs you would probably need to build when coding a data-driven website or application. Appwrite provides you with APIs for HTTP Database, Authentication (+15 OAuth providers, device management, logs, user prefs), storage (with data encryption and build in AV) and others services. The best way to learn more is to check out the docs: appwrite.io

You can also join our Discord community: discord.gg/GSeTUeA

Collapse
 
ayyappa99 profile image
Ayyappa

Can you share read and write latencies on an average and what are the minimum system requirements?

Thread Thread
 
eldadfux profile image
Eldad A. Fux

We have mad a lot of performance boosting in version 0.7, actually Appwrite API is going to be about 8 times faster. Hopefully we could share in our our community some comparison benchmarks soon. You can check min requirements here: appwrite.io/docs/installation some setups can even run on a 5$ DigitalOcean droplet.