We're excited to share that Appwrite 0.12 is now officially available! The new Appwrite version includes our biggest ever performance improvements, enhanced developer experience, and many new features designed to make developers' lives easier. Trust us, this one's a biggie! In addition, the latest release includes over 1,500 commits and contributions from 29 new contributors that have helped make this release possible.
🧪 Database on Steroids
In version 0.12, we have completely rewritten the Appwrite data management layer. We have improved the internal data structures, background workers, and we’ve enabled new concepts such as attributes (instead of rules) and indexes to allow maximum performance and flexibility.
We’ve also added a new easy-to-understand query syntax. The new syntax allows new capabilities, like OR statements, and opens the door for the core team to implement many more advanced features we’re passionate about, like includes
operator and GEO-based queries.
The team has done a lot of work to enable other databases providers, and we hope to release support for more loved databases soon. A major part of our agenda is to enable dev teams the comfort and confidence to use Appwrite the way they wish to, with tools they already love, know, and feel confident with.
The new database does introduce some breaking changes before we move to version 1.0. Please take time to review the list of changes and our migration tutorial. To support existing Appwrite users we'll continue to support the 0.11 branch for at least the next six months.
📑 Pagination Just Got A LOT Faster!
With Appwrite 0.12, we are happy to introduce the new cursor pagination strategy. While the traditional offset and limit pagination is very intuitive and easy to understand it doesn’t scale well. To tackle this problem, we have limited the limit+offset pagination to a maximum of 5,000 documents. With this limit, you can still use the offset+limit pagination for small dataset, but as your data grows, you can migrate to the new cursor pagination that scales very well with almost no regard to your collection size.
The chart below demonstrates how significant this performance difference can be on a collection containing 1M documents. The bigger the dataset, the bigger the difference, and now Appwrite can allow you to scale your pagination with confidence.
The new change will apply to all the Appwrite resources where pagination is possible. Whether it's your custom collections, list of files, users, functions and other relevant resources.
🚧 Permissions are Easier and More Flexible
When we initially designed Appwrite, we wanted to have a simple declarative permission model that is also secure by default. With the release of Appwrite 0.12, we're happy to introduce the next evolution of the Appwrite permissions: Permission Models. You will now be able to choose between two different permission models for your collections, collection-level permissions and document-level permissions.
If you're already familiar with Appwrite, the document-level model will act in the same way as you already know. Each document can have read and write permissions that define which Appwrite entity (user/team/role) has access to each operation.
The new Collection Level model introduces new and easier to use collection permissions. Using the collection permissions, you only need to set the read and write permissions once. In addition, the collections permission will act the same for all the documents regardless of any permissions that may have been set on a specific document.
The new model offers more flexibility for other use cases, which may not require you to leverage the original, document-level permissions. The new collection-level permission can also lead to enhanced performance as the Appwrite API is not required to validate each permission individually.
🎛 More Dashboards, and More Control
We have upgraded the Appwrite console with more dashboards with your Appwrite projects' usage metrics. This is the first of many upgrades where we aim to make more usage metrics easily available through the console. Using our new dashboards, you can quickly get insights into your project performance, size, and cost. In addition, the new dashboard will now show data for your entire project, files, users, collections and documents over time. We've also added charts for your CRUD operations.
🤟 Anyone Ask for Custom IDs?
Custom IDs were probably one of the most requested features we’ve ever got. Now they're here! With custom IDs, you can define human-readable IDs on most Appwrite resources including users, teams, functions, projects, files, collections, and documents. If you still want to use the previous unique IDs, you can use the reserved unique()
keyword.
With custom IDs, you can have a much smoother development experience. Instead of using meaningless strings in your code, you can now use proper naming conventions that allow you to easily migrate your code between different Appwrite environments without managing complex configuration files or programmatic setups for your project.
✅ Your Services, Your Choice!
We always wanted Appwrite to play well with other tools. However, we understand that one tool can’t always be the right solution to every problem. For that reason, we’ve created our server API, Cloud Functions, and our Microservice architecture that enables you to use Appwrite alongside your existing stack and even your own backend server.
With version 0.12, Appwrite became more flexible by allowing you to choose which Appwrite services you wish to enable or disable. This is also a great security feature designed to reduce your attack surface by blocking services and resources you don’t consume. You can visit the new Services
section from your project settings and choose which services to use. For convenience, each project you own can have different settings.
🚨 Introducing Logging Providers!
Error logging and monitoring are crucial for any application, Appwrite being no exception. We wanted to make it extremely easy to collect and monitor your logs while staying true to our philosophy of being completely platform agnostic. With Appwrite 0.12, we've introduced support for some amazing open source logging providers like Sentry, Raygun and AppSignal!
We're always on the lookout for more logging providers and we'd love your contributions to the logging library.
📚 Learn More
Appwrite 0.12 includes many more features, bug fixes, and security patches you should really care about that just can’t fit in one blog post. You can learn more by reviewing our official release notes. In the next couple of weeks, we will continue the Appwrite 0.12 release party with more content, events, and demos created by the core team to highlight the different features and powerful capabilities in this new version of Appwrite.
🗂⚡️☁️ What's Next?
If you like Appwrite 0.12, you will love Appwrite 0.13! Appwrite 0.12 release will enable us more flexibility and solid foundations to take Appwrite to new places, never seen in the backend-as-a-service space.
Appwrite 0.13 will be the first release of many to enjoy the perks of the hard work the Appwrite core team with over 500 collaborators have done for the Appwrite project and ecosystem. The next version will include some very cool features like buckets support for the Appwrite storage, more flexibility with new storage devices, Sync & Async serverless functions that have been highly requested, and amazing performance boost thanks to our improved function execution model and new runtimes.
Beside the upcoming releases and features, we’ve just recently announced the ability to sign up and be the first to use the upcoming Appwrite Cloud. The Appwrite Cloud is already in the works, and once available it will provide the easiest way to build on top of Appwrite and to scale your backend effortlessly. You can learn more on our new dedicated landing page for the Appwrite Cloud.
Top comments (19)
is Appwrite ready to be used in production on an enterprise level?
Appwrite is still pre 1.0 release, but you can find many production use-cases in the wild. Although we'll still introduce some breaking changes until reaching stability (1.0) the Appwrite team works very hard to provide easy migrations, and backward compatibility fallbacks for each release.
@eldadfux any roadmap planner 1.0?
appwrite is just the best for me... from local to cloud. so amazing. how about increasing video size. max is 10mb.
You can change the file size limit using env vars: appwrite.io/docs/environment-varia... - 0.13 release will support big files and range headers.
Hardly waiting for this release
github.com/utopia-php/storage/pull/16
you are doing a wonderful job every day .. is there a relase day for 0.13 ?
I love Appwrite. Its great that you guys relesed new version but personally I think that you should put all hands into Appwrite Cloud. Im a flutter developer who knows a little bit about docker and kubernetes. The only reason why Im using appwrite only in my side small projects is because I dont know a lot about hosting. Cloud will allow me to dont think about anything else than my Flutter code and Im ready to pay a lot for it. Thank you for attention. Appwrite cloud will be a game changer.
We're working hard on the 🌩 version 💪, don't forget to sign for updates on appwrite.io/cloud
Amazing work! This project is evolving so damm fast
Thank you ❤️
Is there a way to stop a document from being updated or created eg if one of the fields don’t match a regex?
Parse call this Triggers
docs.parseplatform.org/cloudcode/g...
Thanks
In Appwrite you will want to use Cloud Functions to handle this kind of extra logic. We're still checking for ways to make data validation more flexible without regex, as regex validation is complex and might come with some security risks: sec.okta.com/articles/2020/07/dang....
You should set this menu to sticky
Yeh, listed it down for us to work on it as soon as we can 👍
I use appwrite mostly for web applications on a private network. It would be so nice to be able to setup/manage the web hosting from within appwrite, just like I can do with Firebase.
It's on the roadmap 🤞
How similar is this to supabase?
Supabase and Appwrite are both great products, but Appwrite focuses on simplicity in use and better productivity by maintaining a great developer experience and is also agnostic to the Database technology you want to use.
We definitely have some awesome features in Appwrite such as Cloud Functions, Database, File Storage, User Authentication and Management, Websocket Server for Realtime updates and more. And top it off, all you need to self host Appwrite on your system is a single Docker command. So do give it a try and let us know if you need any help along the way 😁
What about Directus?