The Appwrite team is incredibly excited to announce the release of Appwrite 0.8, packed with a ton of cool new features like , , , and more! Last month, we gave a of some of the changes, and we're back today to keep you waiting no longer. Let's dive in! 🤿 JWT support ARM support Anonymous Login sneak peek Appwrite is an open-source, self-hosted Backend-as-a-Service that aims to make app development with SDKs available in a variety of programming languages. Come hang out with us on . easier Discord Anonymous Login and JWT 🔐 Not every app needs users to create an account right away. With , save sessions without asking for email addresses, and convert those users to registered accounts later with ease. The implementation is just like creating a normal user session via the method: Anonymous Login createSession sdk = Appwrite(); sdk .setEndpoint( ) .setProject( ) ; promise = sdk.account.createAnonymousSession(); promise.then( { .log(response); }, { .log(error); }); let new 'https://[HOSTNAME_OR_IP]/v1' // Your API Endpoint '5df5acd0d48c2' // Your project ID let ( ) function response console // Success ( ) function error console // Failure Also, if you've ever needed to act as a user from a , Appwrite now supports authentication via JSON Web Tokens ( ). This change allows Appwrite to work with the server-side rendering capabilities of frameworks like , , and , as well as unlock user actions from server-side SDKs. server SDK JWT Next.js Nuxt.js Gatsby.js First, a JWT is created for the user from a Client SDK: appwrite .account.createJWT() .then( { .log(response); }, { .log(error); }); ( ) function response console ( ) function error console Then, the JWT is used to act on behalf of the user server-side: sdk = ( ); client = sdk.Client(); client .setEndpoint( ) .setProject( ) .setJWT( ) const require 'node-appwrite' let new 'https://[HOSTNAME_OR_IP]/v1' // Your API Endpoint '5df5acd0d48c2' // Your project ID '919c2d18fb5d4...a2ae413da83346ad2' // Your JWT ARM Support 🦾 The ARM ecosystem has been booming since Apple's M1 processors landed in their new lineup of devices. Starting with 0.8, install Appwrite on your favorite 64-bit ARM device, from Amazon Graviton2 down to the Raspberry Pi 4! [1] ARM support falls in line with our mission to make Appwrite , and we're excited to hear all of the new places where Appwrite can run. technology agnostic To celebrate this milestone, we have ARM systems to give away as a part of ! 🥳 Through the month of May, we're building a Medium.com blog clone to demonstrate how the developer experience is with Appwrite, and we invite you to build alongside us. Eligible submissions get some cool 😎 swag, and the best projects will receive Raspberry Pi 4 development kits. 😍 #30DaysofAppwrite easy [1] For both Graviton2 servers and Raspberry Pis, we recommend at least 2GB of RAM for the best Appwrite experience. Control your Console 🖥️ We've updated the console with a few new goodies. First, if you enable the new "root" account setting, only a single admin account can be created on your Appwrite server. If you need to share access to the Appwrite console, you can restrict account creation to specific IP addresses with the _APP_CONSOLE_WHITELIST_IPS environment variable. Additionally, Appwrite 0.8 brings new settings to users - now, you can choose which of our growing authentication methods you'd like to use for your apps: email/password login, anonymous login, JWT auth, and more! New Cloud Function Runtimes 🏃 Appwrite 0.8 introduces , , and as new runtimes for Cloud Functions. Upgrade existing functions or write new ones! If you're using Cloud Functions in a cool way, let us know on . Python 3.9 Deno 1.8 Dart 2.12 Discord Slimmer and Faster ⏩ You'll notice Appwrite 0.8 is a bit slimmer on system resources out-of-the-box. We found that the SMTP and antivirus services weren't helping new developers, so we've toggled off ClamAV and the included SMTP server for development. Because of these changes, we have been able to reduce our minimum requirements to (though we recommend 2GB for the better experience). 1GB of RAM We also updated our codebase to take advantage of the increased performance of some of our under the hood technologies. Based on our testing, we're seeing improved performance of about 8% compared to previous Appwrite versions 🚀 Breaking Changes ⚒️ Before you upgrade your Appwrite server to 0.8, check out the breaking changes that were introduced to see if you need to update any code. The in the Users API has been renamed to delete to remain consistent with the rest of the API. deleteUser method Only logged in users can execute functions. If your app relies on this behavior, check out Anonymous Login. with active sessions Only the user who gets access to the relevant execution logs. triggers an execution The has a new rate limit of 10 requests per 60 minutes per IP address. createMembership method The _APP_FUNCTIONS_ENVS has been renamed to APP_FUNCTIONS_RUNTIMES. environment variable Several function execution environment variables have been renamed: is now APPWRITE_FUNCTION_EVENT_PAYLOAD APPWRITE_FUNCTION_EVENT_DATA is now APPWRITE_FUNCTION_ENV_NAME APPWRITE_FUNCTION_RUNTIME_NAME is now APPWRITE_FUNCTION_ENV_VERSION APPWRITE_FUNCTION_RUNTIME_VERSION And More! 😍 That's not all! To get all the details on Appwrite 0.8, check out all the changes in the . Are you curious about the big ideas we have up next, or have a great idea for Appwrite's future? Check out the for more details. Also, our keeps growing with new tutorials, videos, and demos. changelog on GitHub RFC Repo awesome-appwrite repo If you've just discovered Appwrite and would like to get started, check out out our 30 Days of Appwrite series where we explain step-by-step everything you need to know to build awesome Appwrite-powered apps. Follow us on Twitter or anywhere you find your friendly neighborhood Appwrite. Also published on Dev.to