-
Notifications
You must be signed in to change notification settings - Fork 195
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1066 from appwrite/feat-author-snezhanna
feat: add snezhanna
- Loading branch information
Showing
8 changed files
with
117 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- | ||
layout: author | ||
slug: snezhanna | ||
name: Snezhanna Markova | ||
role: Content and Socials | ||
bio: I handle all things content and socials @Appwrite | ||
avatar: /images/avatars/snezhanna.png | ||
linkedin: https://www.linkedin.com/in/snezhanna-markova/ | ||
--- | ||
|
107 changes: 107 additions & 0 deletions
107
src/routes/blog/post/baas-vs-custom-backend/+page.markdoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
--- | ||
layout: post | ||
title: "BaaS vs. Custom Backend: making the right choice as a freelancer" | ||
description: Discover whether BaaS or a custom backend is the best fit for your freelance projects. In this blog we weigh the pros and cons to help you make the right choice. | ||
cover: /images/blog/baas-vs-custom-backend/cover.png | ||
timeToRead: 6 | ||
date: 2024-06-20 | ||
author: aditya-oberai | ||
category: product | ||
--- | ||
|
||
As a freelance developer, you juggle multiple roles – project manager, designer, coder, and even a bit of a salesperson. The job is not for the faint of heart. Add to that the need to build, scale and maintain complex backends for each client, and now your day-to-day is taken over by time-consuming, grinding tasks. | ||
|
||
This is where Backend-as-a-Service (BaaS) comes in. BaaS abstracts away backend complexity, allowing you to deliver an elevated product without getting bogged down in the repetitiveness of server-side development. And often, a BaaS can be a game-changer for freelance developers. | ||
|
||
# What is a BaaS? | ||
|
||
Backend-as-a-Service (BaaS) is a third-party service that lets developers delegate common backend operations of a web or mobile application. Such operations include but are not limited to: | ||
|
||
- User Authentication | ||
- Database Management | ||
- Push Notifications | ||
- File Storage | ||
- Hosting | ||
|
||
Implementing these from scratch is quite tedious and repetitive, especially if you’re making multiple apps for multiple clients. These tasks take focus away from what you do best: inventing creative and functional solutions that bring value to your client. | ||
|
||
BaaS providers take care of the boring stuff, which makes them an attractive solution for freelancers who want to gain back time without compromising on quality. | ||
|
||
# BaaS vs Custom Backend | ||
|
||
Custom-built backends let you tailor everything to your client’s needs. Normally, you would create the reusable components for one client, and then it's just a matter of copying and pasting. The real pain comes in maintaining them. Let's say you find a bug and fix it for one client. Now, you have to fix it for every client, copying the changes and deploying them each time. While automation could simplify this, you're already stuck in the hole you dug by reusing custom backends. | ||
|
||
With a BaaS platform, you can build an entire backend in minutes. For example, you can design a database, add your data, and seamlessly communicate with a frontend using a REST API, SDK, or GraphQL. This means you can turn around projects faster, save money, and leverage reliable technologies across all your work. | ||
|
||
What if you already have a library of technologies? A dedicated platform ensures they’re robust, up-to-date, and integrate well with your existing tools. This way, you can maintain the reliability and performance of your applications without the hassle of constant manual updates and compatibility checks. | ||
|
||
Let's take a look at some of the most common products that backend-as-a-service providers offer. We'll use [Appwrite](https://appwrite.io/) as an example, but many BaaS vendors offer similar technologies. What makes Appwrite convenient is that it combines everything into a single open-source platform, simplifying the development process. Our philosophy is to meet you — the developer — where you are, empowering you to use the tools and technologies you love. | ||
|
||
# BaaS for Authentication | ||
|
||
As a freelancer, you’ve probably built more authentication systems than you want to admit. However, a tricky solution like user authentication often requires additional support and expertise. One of our software engineers, Matej Bačo, who got his start as a freelance developer, said that finding a good authentication solution was crucial: “What was the safety standard 20 years ago is considered unacceptable now. Who knows what it will be like in 10 years? A freelancer should be able to build safe and secure apps without needing to keep an eye on every security change.” | ||
|
||
For example, [Appwrite Authentication](/docs/products/auth) simplifies the process to just a few clicks and a couple of lines of code. In Appwrite, you can securely authenticate users using multiple login methods, such as Email & Password, SMS, OAuth2, Anonymous, Magic URLs, and more. If your client requires specific authentication methods such as Auth0, tailored authentication using Web3 or AI, or integration with company-specific hardware cards, custom tokens let you implement your own authentication flow to meet these needs. There’s also support for teams, roles, and user labels, and includes rate-limiting and advanced user protection features. | ||
|
||
![Appwrite Authentication](/images/blog/baas-vs-custom-backend/auth.png) | ||
|
||
You also get 30+ OAuth2 integrations. From Google and Github to Twitch and Yandex, you can set up your user auth in minutes – quite literally! | ||
|
||
[Take a look at how Dennis Ivy set up Google OAuth sign-in in less than 6 minutes using Appwrite.](https://youtu.be/tgO_ADSvY1I?feature=shared) | ||
|
||
Additionally, BaaS handles password recovery, multi-factor authentication and other security aspects, giving you peace of mind and allowing you to focus on building great apps instead of worrying about [authentication and security issues.](/blog/post/goodbye-plaintext-passwords) For example, with a custom backend, you'll probably need a custom database, custom authorization store, and validator — lots of work in a feature where even the smallest mistake is critical. | ||
|
||
With a BaaS like Appwrite, it's as simple as clicking a few checkboxes. | ||
|
||
# BaaS for Databases | ||
|
||
Database management is challenging even for the most experienced developer. While storing data may be pretty straightforward, making your database fast and high-performing is where most spend ages. | ||
|
||
BaaS providers offer pre-configured database solutions, allowing you to quickly set up and manage databases without spending time on complex configurations and deploying to Cloud. | ||
|
||
The beauty of [Appwrite Databases](/docs/products/databases) is that it simplifies database management with a user-friendly interface. This makes it easier for developers to perform tasks like data storage, retrieval, and backup without deep expertise. | ||
|
||
![Appwrite Databases](/images/blog/baas-vs-custom-backend/database.png) | ||
|
||
If you require a more specific functionality, you can integrate [any external database into your Appwrite project, such as SQL, NoSQL, Vector, Graph, and more](/blog/post/integrate-sql-nosql-vector-graph-or-any-database-into-your-appwrite-project) – there’s absolutely no vendor lock-in. | ||
|
||
By delegating database management to a BaaS, you can focus on enhancing core application features and user experience, free from repetitive backend tasks. | ||
|
||
# BaaS for Cloud Storage | ||
|
||
Dealing with the complexities of cloud infrastructure takes valuable time and focus from innovating solutions. | ||
|
||
With BaaS platforms, you get a friendly interface to tap into the powerhouses of cloud services like AWS, Google Cloud, or Azure, all at warp speed. As a freelance developer, you get easy-to-use APIs and SDKs that allow you to integrate cloud storage functionality into their applications quickly, without building complex storage infrastructure from scratch. | ||
|
||
For example, [Appwrite Storage](/docs/products/storage) lets you securely store files with advanced compression, encryption and image transformations. You can edit, crop and resize images straight from the console. The feature also includes access controls, and data backups to protect stored data from unauthorized access, data loss, or breaches. No need to worry about security! | ||
|
||
Additionally, you can upload files as they are or in chunks for better speeds, ensuring a smoother experience. Plus, if a user's internet goes down during an upload, resumable uploads allow them to re-upload only the missing parts, saving time and frustration. | ||
|
||
![Appwrite Storage](/images/blog/baas-vs-custom-backend/storage.png) | ||
|
||
Security features let you control allowed file formats and set maximum sizes for specific features. For slow (usually mobile) networks, Appwrite optimizes uploads by converting images to WEBP or lowering quality and resolution, ensuring fast and efficient performance. | ||
|
||
Appwrite’s pricing model makes it easy to scale your project without the upfront costs associated with setting up and managing dedicated storage servers. Alternatively, you can always choose self-hosting if pricing were ever to get out of hands. | ||
|
||
# BaaS for Messaging | ||
|
||
Messaging is hard to home brew – it requires expertise in designing and implementing fault-tolerant systems, scalable architectures, robust security measures, and more. While building from scratch offers customization, it demands significant time, effort, and resources. Many freelance developers opt for existing messaging platforms or Backend-as-a-Service solutions to save time and money. | ||
|
||
In [Appwrite Messaging](/docs/products/messaging), with just a few lines of backend code, you can set up a full-functioning messaging service for your application that covers email, SMS, and push notifications under one unified API. It supports a variety of third-party messaging services: | ||
|
||
![Appwrite Messaging](/images/blog/baas-vs-custom-backend/messaging.png) | ||
|
||
You can group your users by topic, user type or target, and draft messages directly inside the Appwrite Console. Drafting directly in the Appwrite Console is great for promo messages, newsletters, and other announcements. You can see a preview of what your message will look like right in the console and control how your message will look before sending. | ||
|
||
Additionally, you can schedule messages, set up real-time alerts and send automated emails, all from the console. | ||
|
||
# Making the right choice as a freelance developer | ||
|
||
For a freelance developer, time is quite literally money. If you want to maximize your time, you must find ways to work smart, not hard. Choosing a BaaS instead of building your own backend can save you tons of time and money, all while delivering a better product. With a BaaS like [Appwrite](https://appwrite.io/), you can quickly roll out effective solutions for multiple clients, ensuring your apps are robust and scalable. And if anything were ever to change, you can always migrate your project elsewhere — there’s no vendor lock-in. | ||
|
||
Plus, Appwrite has an awesome community of developers who are ready to help. If you want to enhance your efficiency and project quality, explore Appwrite today. | ||
|
||
- [Get started](https://cloud.appwrite.io/) | ||
- [Join the Discord community](https://appwrite.io/discord) | ||
- [Explore docs](/docs) | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.