Before I even start let me tell you: Everyone is Entitled to their own opinion
The thoughts I share in this article are clearly my opinion based upon my experience and knowledge with Appwrite. ✌️
What actually is Appwrite?
Appwrite is an Open-Source End-to-End backend server for Web, Mobile and Flutter developers.
If you are not a frontend developer trying to build an full-stack application but don't know knowledge about how exactly to progress with backend then Appwrite is your savior. Appwrite is extremely awesome thus can be used by backend developers and full-stack developers as well!
Feat not! The team is constantly looking to extend the list of supported stuffs to make Appwrite better for everyone.
You can also join the Discord server or start a Github discussion/issue.
NOTE: Thanks to Hacktoberfest we are already seeing awesome stuffs like Minecraft plugins, heard about plans for Unity in various community talks over at Discord.
- Open-Source: The project is entirely open source so you can know what is being done, how things are being done in it and even help improve it.
- The consistent SDKs: What I personally love about Appwrite is the consistency between the SDKs in different languages. The only difference you would find is from the language itself i.e. how functions are called, parameters are defined and so on. Other than that, if you read the code for any SDK you will easily be able to understand what exactly is being done.
- Documentation: Just like the SDKs, Appwrite documentation are just top-notch. They are just to the point, descriptive enough and come with awesome code examples.
- The community: The core team and the community both are really active and helpful. It's just what you would expect in an ideal world.
- Self hosted: You can host Appwrite where ever you like, giving you the full control and power.
- LOTS OF OTHER STUFFS...
Below are the features of Appwrite which make task of any developer easy by 10x
Accounts service allows you to authenticate and manage a user account. It operates in the scope of the current logged-in user and usually using a client-side integration.
There are these awesome features like account creating, updating and deleting, JWT, lots of OAuth providers, account logs, session, magic URL session (confirmation), anonymous sessions and LOT MORE.
In short, it is the complete package if you are looking for account management/integration in your project.
Users service allows you to manage your project users. It operates in an admin scope with access to all your project users and is integrated from server-side.
There are features like list, create, update and delete users, get logs, status and preferences, get, update and delete sessions and more.
Teams service allows your to group users to provide them shared read and/or write access to resources like database storage. It is extremely useful in modern apps where we want to group resources for different users/groups.
There are features like list, create, update and delete teams. We can also add, remove users from the team, Update the team's permissions and status.
Learn more about Team here!
Database is the absolute need of any project. Appwrite's database service allows to create structured collection of documents.
There are features like list, create, update and delete collection as well as document on those collections.
Learn more about Database here!
Storage service allows to manage project files. It can be used to do stuffs like generating preview URL for project images with manipulations like height, width etc and much more.
Learn more about Storage here!
Functions I believe is one of the coolest thing about Appwrite. Functions are the code one can write and add to the project, which then can be fetched, executed upon various triggers or upon schedule.
The cloud functions can be written in various languages and then be uploaded to the project specifying a tag. A certain tag of the function can be activated and then executed.
Learn more about Functions here!
You can also view lots of cloud functions submitted by lots of developer in this repository!
Localization is really important if one want to connect with more depth to the users.
Appwrite provide features like fetching user's location based on the IP, and list stuffs like countries, currencies, continents, phone codes and languages in various locales.
NOTE: If you don't see your language, you can contribute through Github to spread the love 🥰
Learn more about Localization here
Avatar service is what I am really looking to integrate with my projects. This service provides the capability to create avatars and images for stuffs like credit cards, browsers, country flag, favicon, QR code and user's initials.
The images can be cropped, resized, quality can be changed and visibility can be changed as well.
Learn more about Avatars here
Health service in an awesome add-on feature in Appwrite. Using this service we can validate and monitor the Appwrite server instance and all of it's internal components.
It can be really helpful to keep track of the project's various aspects.
Learn more about Health here
Realtime is an absolute game-changer that is available in Appwrite. Using this, we can listen to realtime changes on the server-side using subscribe methods.
Subscriptions are done on a specific channel(s) which we want to listen to. When a change happens on that channel, we get data about the event, channel(s), timestamp and the payload containing the attributes.
As of writing this, subscriptions can be made to the following channels:
NOTE: As of now, the realtime feature is available in client-side only!
Appwrite provides lots of Quality Of Life features as well. Some of them are:
- Custom domains: We can host the Appwrite project at a custom domain. They even provide free SSL certificate through
Letsencrypt. More info here
- RateLimits: Some of Appwrite's API have rate-limits to avoid abuse. More info here
- Tasks: Appwrite has tasks which use CRON syntax to run a certain task on background periodically. More info here
- Permission system: Appwrite has a really cool permission system which can be used to provide specific user or team access to various resources. More info here
That's it folks for this time. Hope you got to know more about Appwrite and this article helped you in it.
There are many more other resources you can look into to get more information about Appwrite:
- Official Appwrite website - Contains all the information about Appwrite and has awesome documentation.
- 30 days of Appwrite - It is a event that happened for 30 days and contains awesome tutorials and guides. Definitely one of the best complete resource for anyone to get started with Appwrite
- Awesome Appwrite github Repoisitory - Contains collection of various guides, tutorials and projects built with Appwrite.
On a closing note though, after joining various events and hearing the talks from the Appwrite team I got to know that there are many awesome features planned for the Appwrite project like cloud deploy, various Databases support and more. While they are the planned features, it doesn't mean that they will be landing soon.
Stay SAFE, and Keep Appwriting! 👋