We’re back with yet another Appwrite release! Appwrite 0.14 is now LIVE with a lot more improvements! With the new release we focused heavily on features that the Appwrite community requested the most. With many exciting features and important bug fixes, Appwrite 0.14 now enables even more flexibility, performance, and integrations to build your amazing next project! Let’s deep dive and learn what this release has to offer. 🏊♀️
⏰ TL;DR
Two areas that received the most attention are Events and Certificates. With the new event model, you can now trigger actions with a lot more precision. The improvements around certificates makes it more easy, scalable, and reliable to generate and manage Let’s Encrypt generated certificates. You can now lean back on your chair and enjoy the trusty 🔐 green lock in front of your domain 🍹
Alongside these features, we introduced new OAuth providers, Storage Adapters, and Function Runtimes to support an even wider range of amazing applications on more platforms. Some small features you can get excited about are Wildcard Hostnames, Async/Await support in Swift, and the ability to ignore files using the Appwrite CLI. We closed off the release with bug fixes and quality of life improvements around the Appwrite Console UI and API signatures.
New to Appwrite?
Appwrite is an open-source back-end-as-a-service that abstracts all the complexity of building a modern application by providing you with a set of REST and Realtime APIs for your core back-end needs. Appwrite takes the heavy lifting for developers and handles user authentication and authorization, databases, file storage, cloud functions, webhooks, and much more!
🧠 Event Model, the Smart Way

We’re thrilled to introduce support for a lot more events, allowing your configuration to be as specific or as generic as you require. Previously, the following event would be triggered, for instance, when a new database document was created:
database.collections.create
This is great, but what if you have dozens of collections? You would end up with many events triggered for each collection. What if you’re only interested in events from one of these collections?
With the new event model, we can specify specific resources we are interested in. The same example above could be written as follows if we were only interested in documents from the [MY_COLLECTION] collection:
collections.[MY_COLLECTION].documents.*.create
As you can see, we specified, we are only interested in events from the [MY_COLLECTION] collection in the new syntax. You can also notice the * symbol indicating we are interested in all documents inside a collection. This new syntax will allow developers to get exceptionally specific with their events and reduce the number of unwanted webhooks and function executions to zero.
🔐 Certificates You Can Trust
Certificate generation was fully refactored with a focus on simplicity and reliability. We introduced the concept of a main domain to ensure we don’t generate certificates for domains you don’t own.
Next, we updated the way we delete domains and certificates to ensure we only have one certificate per domain, and we delete it only once no domain needs it. This allows proper usage of the same domain under multiple Appwrite projects.
We then introduced a mechanism to automatically retry certificate generations. A certificate generation can fail for a lot of reasons like a 5XX error, NS downtime, DNS miss-configuration, cache etc. Some of them are recoverable while some others are not. The maintenance and certificates workers will now retry the certificate renewals and generations for up to 5 attempts to try and overcome the recoverable errors.
No need to worry about failed requests, since you will now receive an email notification every time a certificate generation fails, so you can investigate it 👀 Just ensure your email is set in the .env file.
Lastly, we introduced a new CLI command which comes in handy if you want to force the generation of a certificate for a specific domain:
docker-compose exec appwrite ssl domain="api.myapp.com"
👪 C++, .NET, Java & Kotlin join the party!

Let’s welcome on board four new runtimes 🎉 A well-established Java and its friend Kotlin have joined the Appwrite Runtime family. They’ve also invited C++ and .NET t
|