Appwrite is a secure end-to-end backend server for Web, Mobile, and Flutter developers that is packaged as a set of Docker containers for easy deployment ๐Ÿš€

Last update: Aug 17, 2022

Appwrite Logo

A complete backend solution for your [Flutter / Vue / Angular / React / iOS / Android / *ANY OTHER*] app

Discord Docker Pulls Build Status Twitter Account Translate Swag Store

Appwrite 0.12 has been released! Learn what's new!

Appwrite is an end-to-end backend server for Web, Mobile, Native, or Backend apps packaged as a set of Docker microservices. Appwrite abstracts the complexity and repetitiveness required to build a modern backend API from scratch and allows you to build secure apps faster.

Using Appwrite, you can easily integrate your app with user authentication & multiple sign-in methods, a database for storing and querying users and team data, storage and file management, image manipulation, Cloud Functions, and more services.

Appwrite

Find out more at: https://appwrite.io

Table of Contents:

Installation

Appwrite backend server is designed to run in a container environment. Running your server is as easy as running one command from your terminal. You can either run Appwrite on your localhost using docker-compose or on any other container orchestration tool like Kubernetes, Docker Swarm, or Rancher.

The easiest way to start running your Appwrite server is by running our docker-compose file. Before running the installation command make sure you have Docker installed on your machine:

Unix

docker run -it --rm \
    --volume /var/run/docker.sock:/var/run/docker.sock \
    --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
    --entrypoint="install" \
    appwrite/appwrite:0.12.1

Windows

CMD

docker run -it --rm ^
    --volume //var/run/docker.sock:/var/run/docker.sock ^
    --volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
    --entrypoint="install" ^
    appwrite/appwrite:0.12.1

PowerShell

docker run -it --rm ,
    --volume /var/run/docker.sock:/var/run/docker.sock ,
    --volume ${pwd}/appwrite:/usr/src/code/appwrite:rw ,
    --entrypoint="install" ,
    appwrite/appwrite:0.12.1

Once the Docker installation completes, go to http://localhost to access the Appwrite console from your browser. Please note that on non-Linux native hosts, the server might take a few minutes to start after installation completes.

For advanced production and custom installation, check out our Docker environment variables docs. You can also use our public docker-compose.yml file to manually set up an environment.

Upgrade from an Older Version

If you are upgrading your Appwrite server from an older version, you should use the Appwrite migration tool once your setup is completed. For more information regarding this, check out the Installation Docs.

Getting Started

Getting started with Appwrite is as easy as creating a new project, choosing your platform, and integrating its SDK into your code. You can easily get started with your platform of choice by reading one of our Getting Started tutorials.

Services

  • Account - Manage current user authentication and account. Track and manage the user sessions, devices, sign-in methods, and security logs.
  • Users - Manage and list all project users when in admin mode.
  • Teams - Manage and group users in teams. Manage memberships, invites, and user roles within a team.
  • Database - Manage database collections and documents. Read, create, update, and delete documents and filter lists of document collections using advanced filters.
  • Storage - Manage storage files. Read, create, delete, and preview files. Manipulate the preview of your files to fit your app perfectly. All files are scanned by ClamAV and stored in a secure and encrypted way.
  • Functions - Customize your Appwrite server by executing your custom code in a secure, isolated environment. You can trigger your code on any Appwrite system event, manually or using a CRON schedule.
  • Locale - Track your user's location, and manage your app locale-based data.
  • Avatars - Manage your users' avatars, countries' flags, browser icons, credit card symbols, and generate QR codes.

For the complete API documentation, visit https://appwrite.io/docs. For more tutorials, news and announcements check out our blog and Discord Server.

SDKs

Below is a list of currently supported platforms and languages. If you wish to help us add support to your platform of choice, you can go over to our SDK Generator project and view our contribution guide.

Client

  • โœ…   Web (Maintained by the Appwrite Team)
  • โœ…   Flutter (Maintained by the Appwrite Team)
  • โœ…   Apple - Beta (Maintained by the Appwrite Team)
  • โœ…   Android (Maintained by the Appwrite Team)

Server

  • โœ…   NodeJS (Maintained by the Appwrite Team)
  • โœ…   PHP (Maintained by the Appwrite Team)
  • โœ…   Dart - (Maintained by the Appwrite Team)
  • โœ…   Deno - Beta (Maintained by the Appwrite Team)
  • โœ…   Ruby (Maintained by the Appwrite Team)
  • โœ…   Python (Maintained by the Appwrite Team)
  • โœ…   Kotlin - Beta (Maintained by the Appwrite Team)
  • โœ…   Apple - Beta (Maintained by the Appwrite Team)
  • โœ…   .NET - Experimental (Maintained by the Appwrite Team)

Community

Looking for more SDKs? - Help us by contributing a pull request to our SDK Generator!

Architecture

Appwrite Architecture

Appwrite uses a microservices architecture that was designed for easy scaling and delegation of responsibilities. In addition, Appwrite supports multiple APIs (REST, WebSocket, and GraphQL-soon) to allow you to interact with your resources leveraging your existing knowledge and protocols of choice.

The Appwrite API layer was designed to be extremely fast by leveraging in-memory caching and delegating any heavy-lifting tasks to the Appwrite background workers. The background workers also allow you to precisely control your compute capacity and costs using a message queue to handle the load. You can learn more about our architecture in the contribution guide.

Contributing

All code contributions - including those of people having commit access - must go through a pull request and be approved by a core developer before being merged. This is to ensure a proper review of all the code.

We truly โค๏ธ pull requests! If you wish to help, you can learn more about how you can contribute to this project in the contribution guide.

Security

For security issues, kindly email us at [email protected] instead of posting a public issue on GitHub.

Follow Us

Join our growing community around the world! See our official Blog. Follow us on Twitter, Facebook Page, Facebook Group , Dev Community or join our live Discord server for more help, ideas, and discussions.

License

This repository is available under the BSD 3-Clause License.

GitHub

https://github.com/appwrite/appwrite
Comments
  • 1. Help Translate Appwrite Locale and Email templates

    Currently, Appwrite locale and email templates support 44 locales. We need help supporting more languages and improving current translations.

    Translating is as easy as adding a few PHP file with new locale as prefix in file names.

    Update (#Hacktoberfest 20)

    Please submit any PRs against branch 0.7.x with the updated file structure, as shown below โฌ‡๏ธ

    Structure

    List of file required for new locale are:

    Email Templates app/config/locale/translations/templates/en.email.auth.confirm.tpl app/config/locale/translations/templates/en.email.auth.invitation.tpl app/config/locale/translations/templates/en.email.auth.recovery.tpl

    Locale Lists and Settings app/config/locale/translations/en.php app/config/locale/translations/en.continents.php app/config/locale/translations/en.countries.php

    Configuration and Loading Add the new language to Appwrite config file: /app/config/locale/codes.php (order by ABC) Load the new translation here: ./app/init.php (line: 224) (order by ABC)

    Make sure to keep PHP array keys exactly the same.

    Template Status

    โœ… = Updated - You can still submit PRs with fixes or improvements โ›”๏ธ = Outdated - Update to match languages that are marked as updated ๐Ÿ†˜ = Missing - No translation has yet been contributed (fallback to english)

    New locales are always welcomed.

    | Locale | Phrases | Countries | Continents | Template - confirm | Template - invite | Template - recovery |--|--|--|--|--|--|--| | af | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | ar | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | bn | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | cat | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | cz | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | de | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | en | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | es | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | fi | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | fo | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | fr | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | gr | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | he | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | hi | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | hu | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | hy | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | id | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | is | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | it | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | ja | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | jv | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | km | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | ko | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | lt | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | ml | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | mr | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | ms | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | nl | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | no | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | np | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | ph | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | pl | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | pt-br | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | pt-pt | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | ro | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | ru | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | si | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | sl | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | sq | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | sv | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | ta | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | th | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | tr | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | ua | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | vi | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | zh-cn | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… | | zh-tw | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |

    Reviewed by eldadfux at 2019-09-23 18:26
  • 2. ๐Ÿ“š Documentation: setup https

    ๐Ÿ’ญ Description

    Hi, I could not find in your documentation how to set up an https endpoint on an Ubuntu server. I have already set up my 443 port for my ssl certificate. How can I allow an appwrite endpoint on an SSL url (e.g. port 444). Thanks

    ๐Ÿ‘€ Have you spent some time to check if this issue has been raised before?

    • [X] I checked and didn't find similar issue

    ๐Ÿข Have you read the Code of Conduct?

    Reviewed by kiloki-official at 2021-12-12 09:57
  • 3. Help developers by writing a blog post about Appwrite๐Ÿ—ž

    Introduction

    Appwrite has been and always will be a tool for developers. To emphasize this, we want to create the the best developer experience possible by providing enough guides and examples for new Appwriters.

    Your task is to write a blog post about Appwrite. It can be anything! A story about your Appwrite journey, what concepts you learned by using Appwrite, guide how to connect Appwrite to something... You are limited only by your imagination. It can be anywhere! We accept submissions of articles on any well-known platform, whether it is Medium, Dev.to, HashNode or something else.

    Requirements:

    • Your article has to be publicly available
    • Your article must tag appwrite in any way (hashtag, embedded, link...)
    • Your article must be at least 1000 words long
    • Your article should look nice ๐Ÿ‘€ (use titles, subtitles, screenshots, images, gifs, or even memes)

    Task summary:

    • [ ] Write a blog post about Appwrite
    • [ ] Publish an article on your favorite platform or website (Medium, Dev.to, HashNod...)
    • [ ] Share the article on social media (Reddit / HackerNews / Twitter / Facebook / Other) - optional
    • [ ] Submit PR to appwrite/awesome-appwrite with a link to your article

    This issue does not require assignment, and can be contributed by anyone! Just let us know you're working on it!

    If you need any help, reach out to us on our Discord server.

    Are you ready to work on this issue? Go ahead! We are accepting as many articles as the community can create. One note, quality over quantity.

    Happy Appwriting!

    Reviewed by Meldiron at 2021-09-30 08:10
  • 4. Implement generateUnsplashImage() Appwrite Function โšก

    Introduction

    Appwrite Functions allow you to extend and customize your Appwrite server functionality by executing your custom code ๐Ÿคฉ You can learn more at our official Appwrite Functions docs.

    Your task is to implement generateUnsplashImage function. You can look at the existing Appwrite Functions demo in the coding language you prefer to see how it works.

    This function should take a keyword as an input, use it as a keyword for Unsplash search, pick the first image and return imageUrl and imageAuthor.

    Please make sure to store all configurable parameters as environment variables, so others can start using your script without having to edit it. If some data is different for each execution, make sure to use APPWRITE_FUNCTION_EVENT_DATA or APPWRITE_FUNCTION_DATA environment variable.

    Tasks summary:

    • [ ] Fork & clone Appwrite's demos-for-function repository- [ ] Create feat-implement-generate-unsplash-image-X branch where X is programming language you used
    • [ ] Write code for the function
    • [ ] Test the function using Appwrite
    • [ ] Write a README.md explaining what function does, how to use and customize it. Here is an example.
    • [ ] Submit pull request to our demos-for-function repository

    If you need any help, reach out to us on our Discord server.

    Are you ready to work on this issue? ๐Ÿค” Let us know, and we will assign it to you ๐Ÿ˜Š There are 9 languages in which you can implement this function. When requesting to be assigned, please mention which language would you like to use.

    Assignees table

    โœ… = Done - This language has already been finished โš’ = In progress - Someone is already working on this language โŒ = Unassigned yet - This language can be assigned to you

    | Function / Language | Deno | NodeJS | PHP | Python | Ruby | Dart | .NET | Java | Kotlin | | --------------------- | ---- | ------ | --- | ------ | ---- | ---- | ---- | ---- | ------ | | generateUnsplashImage | โš’ crossphoton | โš’ bistaastha | โš’๏ธ piopi | โš’ avats-dev | โŒ | โš’ DonnC | โš’ VictorLlanir | โš’ peterchu999 | โš’๏ธ Hardik Sachan |

    Happy Appwriting!

    Reviewed by Meldiron at 2021-09-29 11:34
  • 5. ๐Ÿ› Bug Report: cloud functions with Dart 2.14 runtime not working

    ๐Ÿ‘Ÿ Reproduction steps

    • Create a small functions that prints hello world in dart.
    • push it to the function worker
    • execute the function

    ๐Ÿ‘ Expected behavior

    Prints hello world

    ๐Ÿ‘Ž Actual Behavior

    empty stdout and stderr

    ๐ŸŽฒ Appwrite version

    Different version (specify in environment)

    ๐Ÿ’ป Operating system

    Linux

    ๐Ÿงฑ Your Environment

    uses 0.11 version

    ๐Ÿ‘€ Have you spent some time to check if this issue has been raised before?

    • [X] I checked and didn't find similar issue

    ๐Ÿข Have you read the Code of Conduct?

    Reviewed by Silfalion at 2021-10-25 09:02
  • 6. ๐Ÿ› Bug Report: Functions not being executed

    ๐Ÿ‘Ÿ Reproduction steps

    Using Appwrite v:0.13.2.302 in docker And running Appwrite cli v0.15.0

    1. Create function with (node-16.0 runtime):
    appwrite init function
    
    1. Deploy function without editing it
    appwrite deploy function  
    
    1. Open the created function in the function tab of the Appwrite UI
    2. Click on Execute Now without any custom data
    3. Go to Logs tab
    4. Click on the Errors button at the right of the execution's list item

    Then you get the below described error.

    ๐Ÿ‘ Expected behavior

    The function should run

    ๐Ÿ‘Ž Actual Behavior

    I get this error : " An internal curl error has occurred within the executor! Error Msg: Could not resolve host: 622bb6f3725e4422610e-622d226c1a20e10fc330 "

    When taking a closer look the host is comprised of 2 parts :

    • 622bb6f3725e4422610e: The project id
    • 622d226c1a20e10fc330: The function deployment id

    Both of the parameters seemed to coincide with the ones, visible on the UI.

    ๐ŸŽฒ Appwrite version

    Version 0.13.x

    ๐Ÿ’ป Operating system

    MacOS

    ๐Ÿงฑ Your Environment

    I use Docker

    ๐Ÿ‘€ Have you spent some time to check if this issue has been raised before?

    • [X] I checked and didn't find similar issue

    ๐Ÿข Have you read the Code of Conduct?

    Reviewed by onceuponacode at 2022-03-12 23:02
  • 7. Implement generateCloudConvertThumbnail() Appwrite Function โšก

    Introduction

    Appwrite Functions allow you to extend and customize your Appwrite server functionality by executing your custom code ๐Ÿคฉ You can learn more at our official Appwrite Functions docs.

    Your task is to implement generateCloudConvertThumbnail function. You can look at the existing Appwrite Functions demo in the coding language you prefer to see how it works.

    This function should take an ID of the file in Appwrite Storage as input, send it to CloudConvert Thumbnails API, wait for the job to finish and save newly created thumbnail image into Appwrite Storage. Finally, return ID of the new file.

    Please make sure to store all configurable parameters as environment variables, so others can start using your script without having to edit it. If some data is different for each execution, make sure to use APPWRITE_FUNCTION_EVENT_DATA or APPWRITE_FUNCTION_DATA environment variable.

    Tasks summary:

    • [ ] Fork & clone Appwrite's demos-for-function repository
    • [ ] Create feat-implement-generate-cloud-convert-thumbnail-X branch where X is programming language you used
    • [ ] Write code for the function in folder X/generate-cloud-convert-thumbnail/ where X is programming language you used
    • [ ] Test the function using Appwrite
    • [ ] Write a README.md explaining what function does, how to use and customize it. Here is an example.
    • [ ] Submit pull request to our demos-for-function repository

    If you need any help, reach out to us on our Discord server.

    Are you ready to work on this issue? ๐Ÿค” Let us know, and we will assign it to you ๐Ÿ˜Š There are 9 languages in which you can implement this function. When requesting to be assigned, please mention which language would you like to use.

    Assignees table

    โœ… = Done - This language has already been finished โš’ = In progress - Someone is already working on this language โŒ = Unassigned yet - This language can be assigned to you

    | Function / Language | Deno | NodeJS | PHP | Python | Ruby | Dart | .NET | Java | Kotlin | | ------------------- | ---- | ------ | --- | ------ | ---- | ---- | ---- | ---- | ------ | | generateCloudConvertThumbnail | ๐Ÿ› ๏ธ papuruth | ๐Ÿ› ๏ธ papuruth | ๐Ÿ› ๏ธ deepto98 | โš’ Amdbase1 | โŒ | โŒ | โŒ | โš’๏ธ zeroplusone | โš’๏ธ Hardik Sachan |

    Happy Appwriting!

    Reviewed by Meldiron at 2021-10-05 14:56
  • 8. Implement sendMessageBirdSMS() Appwrite Function โšก

    Introduction

    Appwrite Functions allow you to extend and customize your Appwrite server functionality by executing your custom code ๐Ÿคฉ You can learn more at our official Appwrite Functions docs.

    Your task is to implement sendMessageBirdSMS function. You can look at the existing Appwrite Functions demo in the coding language you prefer to see how it works.

    This function should take phoneNumber and text as input, send request to send message using MessageBird SMS API and provide status as an input (if the SMS was successfully sent or not).

    Please make sure to store all configurable parameters as environment variables, so others can start using your script without having to edit it. If some data is different for each execution, make sure to use APPWRITE_FUNCTION_EVENT_DATA or APPWRITE_FUNCTION_DATA environment variable.

    Tasks summary:

    • [ ] Fork & clone Appwrite's demos-for-function repository
    • [ ] Create feat-implement-send-message-bird-sms-X branch where X is programming language you used
    • [ ] Write code for the function in folder X/send-message-bird-sms/ where X is programming language you used
    • [ ] Test the function using Appwrite
    • [ ] Write a README.md explaining what function does, how to use and customize it. Here is an example.
    • [ ] Submit pull request to our demos-for-function repository

    If you need any help, reach out to us on our Discord server.

    Are you ready to work on this issue? ๐Ÿค” Let us know, and we will assign it to you ๐Ÿ˜Š There are 9 languages in which you can implement this function. When requesting to be assigned, please mention which language would you like to use.

    Assignees table

    โœ… = Done - This language has already been finished โš’ = In progress - Someone is already working on this language โŒ = Unassigned yet - This language can be assigned to you

    | Function / Language | Deno | NodeJS | PHP | Python | Ruby | Dart | .NET | Java | Kotlin | | ------------------- | ---- | ------ | --- | ------ | ---- | ---- | ---- | ---- | ------ | | sendMessageBirdSMS | โš’๏ธ manuelabarca | โš’ soumyo123-prog | โš’ ramdevcm | โš’ eigengravy | โŒ | โš’ siddhantdixit | โš’๏ธ pr0grammm | โš’๏ธ zeroplusone | โš’๏ธ Hardik Sachan |

    Happy Appwriting!

    Reviewed by Meldiron at 2021-10-05 12:00
  • 9. Implement generateWebsiteScreenshot() Appwrite Function โšก

    Introduction

    Appwrite Functions allow you to extend and customize your Appwrite server functionality by executing your custom code ๐Ÿคฉ You can learn more at our official Appwrite Functions docs.

    Your task is to implement generateWebsiteScreenshot function. You can look at the existing Appwrite Functions demo in the coding language you prefer to see how it works.

    This function should take url of a website as input, send it to CloudConvert CaptureWebsite API, wait for the job to finish and save newly created screenshot image into Appwrite Storage. Finally, return ID of the new file.

    Please make sure to store all configurable parameters as environment variables, so others can start using your script without having to edit it. If some data is different for each execution, make sure to use APPWRITE_FUNCTION_EVENT_DATA or APPWRITE_FUNCTION_DATA environment variable.

    Tasks summary:

    • [ ] Fork & clone Appwrite's demos-for-function repository
    • [ ] Create feat-implement-generate-website-screenshot-X branch where X is programming language you used
    • [ ] Write code for the function in folder X/generate-website-screenshot/ where X is programming language you used
    • [ ] Test the function using Appwrite
    • [ ] Write a README.md explaining what function does, how to use and customize it. Here is an example.
    • [ ] Submit pull request to our demos-for-function repository

    If you need any help, reach out to us on our Discord server.

    Are you ready to work on this issue? ๐Ÿค” Let us know, and we will assign it to you ๐Ÿ˜Š There are 9 languages in which you can implement this function. When requesting to be assigned, please mention which language would you like to use.

    Assignees table

    โœ… = Done - This language has already been finished โš’ = In progress - Someone is already working on this language โŒ = Unassigned yet - This language can be assigned to you

    | Function / Language | Deno | NodeJS | PHP | Python | Ruby | Dart | .NET | Java | Kotlin | | ------------------------- | ---- | ------ | --- | ------ | ---- | ---- | ---- | ---- | ------ | | generateWebsiteScreenshot | โš’ krishguptadev | โš’ luisorbaiceta | โš’๏ธ piopi | โš’ siddhantdixit | โŒ | โš’๏ธ highonweb | โŒ | ๐Ÿ› ๏ธ DevanshK08 | โš’๏ธ Ananya Misra |

    Happy Appwriting!

    Reviewed by Meldiron at 2021-10-05 13:59
  • 10. Help improve Appwrite's Hindi language translation โœ๏ธ

    Introduction

    Did you know Appwrite's Locale API has support for returning responses in your own locale based on the value of the X-Appwrite-Locale header? ๐Ÿ˜ฎ We already support 56 languages and need your help to improve them! ๐Ÿ’ช

    Your task is to update Appwrite's Hindi language translations. We recently added new features, so some translations might be missing. You can find a complete in-depth tutorial in our official tutorial for adding translations.

    This is what missing translation would look like:

    "emails.magicSession.footer": "",
    

    Tasks summary:

    • [ ] Fork & clone Appwrite
    • [ ] Update translations for Hindi in app/config/locale/translations/hi.json
    • [ ] Test the translations
    • [ ] Push changes and submit pull request

    If you need any help, reach out to us on our Discord server.

    Are you ready to work on this issue? ๐Ÿค” Let us know, and we will assign it to you ๐Ÿ˜Š

    Happy Appwriting!


    โš ๏ธ NOTE โš ๏ธ

    Please ensure that you are a native Hindi speaker before we assign this to you.

    Reviewed by Meldiron at 2021-09-29 06:30
  • 11. Appwrite 'Cloud Functions'

    Adding cloud functions is one of the most requested Appwrite features to date. Before we finalize the feature spec, we would love to get as many community feedback and suggestions as possible.

    Goal

    The goal of this feature is to create a sandbox where user-generated code can execute both on-demand and on existing system event (user.create, document.update, file.create, etc...). Each sandbox will be provided with both event-specific data and user provider env vars. This feature will help users trying to avoid the overhead of setting up a full backend server alongside Appwrite for specific custom tasks.

    Cross Platform & Language Agnostic

    On of Appwrite main goals is to stay cross-platform and framework agnostic. We treat all tech stacks equally, so this feature should allow us to run code from multiple languages. We would probably support Node.js, PHP, Ruby, and Python first, but potentially any language can be supported.

    Security & Isolation

    We are going to use Docker and Appwrite built-in queuing engine to execute the tasks in a completely and isolated environment.

    Performance & Scalability

    To make sure performance is optimized, we will review the possibility to pre-download the core docker images so run time should only be depended on the code running.

    All tasks will run in async way using our job workers. This will also allow us to scale very easily by adding new workers as demand grow.

    Abuse Protection

    We should possibly also create some sort of a timeout to help protect smaller Appwrite instances running on a single server from being abused.

    Packaging

    This is one of the bigger question marks. Since we need to support multiple languages and make sure the final package can be easily executed using a base Docker image, we need to allow developers to package and upload their code easily.

    Some open questions:

    • Should we create a CLI for uploading code packages?
    • Can we create a single CLI that will be able to deal with different coding languages? (Should we use Docker to package the CLI?)
    • Should we integrate with VCS directly? (can be very time consuming for v1 of this feature)
    • Should we support version control?
    • How do other cloud function services manage code uploading?
    • Should we allow built-in IDE in Appwrite dashboard for simple functions?
    • Should we store the code in an encrypted way? How will this influence performance and time-to-start?
    Reviewed by eldadfux at 2020-04-01 07:53
  • 12. ๐Ÿ› Bug Report: Index not found, when using getIndex, but createIndex and listIndexes reports index is present

    ๐Ÿ‘Ÿ Reproduction steps

    I am trying to create index through dart_appwrite package. This is my code snippet here.

        try {
          await database.getIndex(
            collectionId: collectionId,
            key: indexKey,
          );
        } on AppwriteException {
          print(
              "Index (${database.databaseId}):($collectionId):($indexKey) does not exist, creating one!");
          await database.createIndex(
            collectionId: collectionId,
            key: indexKey,
            type: type,
            attributes: [key],
          );
          return true;
        }
    

    The try block is throwing error stating my indexKey is not there, it goes into the catch block where it tries to create an index. This also fails, because the index actually exists on my collection.

    I checked in the CLI too it is able to listIndex, but not query them image

    image

    image

    Made an API call through post man too, same behaviour. I double checked my api key too. Databases, Collections, Attributes, Indexes, Documents were given read write access.

    Note: I checked with indexKey with no special characters too, and also created an index in the web ui and tried to get the index, still no luck.

    Am I missing something here?

    ๐Ÿ‘ Expected behavior

    Get the index that was requested by key

    ๐Ÿ‘Ž Actual Behavior

    Indexes are not found by key, throws AppwriteException

    ๐ŸŽฒ Appwrite version

    Version 0.15.x

    ๐Ÿ’ป Operating system

    Linux

    ๐Ÿงฑ Your Environment

    This is a fresh build hosted on DigitalOcean Droplet using the 1-click setup.

    ๐Ÿ‘€ Have you spent some time to check if this issue has been raised before?

    • [X] I checked and didn't find similar issue

    ๐Ÿข Have you read the Code of Conduct?

    Reviewed by FirzenYogesh at 2022-08-10 20:50
  • 13. Updated examples for models to be more logical

    What does this PR do?

    The examples used in documentation for many of our models are not clear. This tries to make the examples more logical and context appropriate.

    Test Plan

    (Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work.)

    Related PRs and Issues

    (If this PR is related to any other PR or resolves any issue or related to any issue link all related PR and issues here.)

    Have you read the Contributing Guidelines on issues?

    (Write your answer here.)

    Reviewed by gewenyu99 at 2022-08-10 16:49
  • 14. unable to update a file with same id.๐Ÿ› Bug Report:

    ๐Ÿ‘Ÿ Reproduction steps

    I wish to be able to change a profile picture. Ideally, it would be nice to just use the update file api to that but this api does not support upload of a new file to replace the old file. when i create or upload a file to storage with a certain id if i delete that file and upload a different file with the same Id as the previous file, it loads the same previous file. Now does it mean appwrite stores the previous file although deleted in some kind of cache?

    ๐Ÿ‘ Expected behavior

    I wish to be able to change the profile picture. if its possible, i would like to know how to update a file with the possibility of changing the file itself. Otherwise, i would love to be able to delete a file and upload a new file with the same id as the previous file and have a new file displayed.

    ๐Ÿ‘Ž Actual Behavior

    if i delete that file and upload a different file with the same Id as the previous file, it loads the same previous file. Now does it mean appwrite stores the previous file although deleted in some kind of cache?

    ๐ŸŽฒ Appwrite version

    Version 0.15.x

    ๐Ÿ’ป Operating system

    Linux

    ๐Ÿงฑ Your Environment

    No response

    ๐Ÿ‘€ Have you spent some time to check if this issue has been raised before?

    • [X] I checked and didn't find similar issue

    ๐Ÿข Have you read the Code of Conduct?

    Reviewed by bliyscom at 2022-08-10 09:00
  • 15. Functions Console Logs Capture

    What does this PR do?

    • Captures and stores console logs from user functions in runtimes

    Test Plan

    • Tested in https://github.com/open-runtimes/open-runtimes/pull/74

    Related PRs and Issues

    (need this released with v2 runtimes tag so we can run CI tests)

    • https://github.com/open-runtimes/open-runtimes/pull/74

    Have you read the Contributing Guidelines on issues?

    YES

    Reviewed by lohanidamodar at 2022-08-10 07:25
  • 16. ๐Ÿš€ Feature: Get current server timestamp.

    ๐Ÿ”– Feature description

    As with Firestore, you can get the current timestamp and date. serverTimestamp()

    Here in the Appwrite SDKs there is no method of getting the timestamp from the server.

    ๐ŸŽค Pitch

    This method is useful for making comparisons with the current server time. For example, the user has a time limit to create a new post, for which he would consult the time from the server if it is possible or not. By doing this locally there is the possibility for the user to bypass the time on his device and create a new post.

    It's possible to do it through Cloud Functions, but having to write the whole method in the Cloud to get the timestamp is unnecessary.

    ๐Ÿ‘€ Have you spent some time to check if this issue has been raised before?

    • [X] I checked and didn't find similar issue

    ๐Ÿข Have you read the Code of Conduct?

    Reviewed by binhodev at 2022-08-09 17:57
  • 17. Fix password reset redirect and alert

    Reviewed by PineappleIOnic at 2022-08-09 16:31

Related

End-to-end mobile app templates that other developers can use during their Flutter development journey.
End-to-end mobile app templates that other developers can use during their Flutter development journey.

Flutter UI Templates Welcome Contributors ?? The Robotics Forum always encourages new ideas. Aim ?? Main aim of this repository is to make things fast

Aug 6, 2022
A flutter widget that animates scrolling through a set of fixed size containers.
A flutter widget that animates scrolling through a set of fixed size containers.

Spinner This flutter package implements a simple Spinner animation that cycles through any number of fixed size child widgets. Useful for selecting a

Aug 3, 2021
A server app built using Shelf, configured to enable running with Docker
A server app built using Shelf, configured to enable running with Docker

A server app built using Shelf, configured to enable running with Docker. This sample code handles HTTP GET requests to / and /echo/<message> Requests

Jan 26, 2022
A server app built using Shelf, configured to enable running with Docker
A server app built using Shelf, configured to enable running with Docker

A server app built using Shelf, configured to enable running with Docker. Project Structure Running the sample Running with the Dart SDK You can run t

Jan 12, 2022
Buildpack dart - A server app built using Shelf, configured to enable running with Docker

Hosted at https://dart-buildpack-demo-ruyjilv5wq-uc.a.run.app/ Buildpack defined

Aug 9, 2022
A server app built using Shelf, configured to enable running with Docker.

A server app built using Shelf, configured to enable running with Docker.

May 23, 2022
Flutter integration for Supabase. This package makes it simple for developers to build secure and scalable products.
Flutter integration for Supabase. This package makes it simple for developers to build secure and scalable products.

supabase_flutter Flutter package for Supabase. What is Supabase Supabase is an open source Firebase alternative. We are a service to: listen to databa

Aug 5, 2022
Tea talks - An end-to-end encrypted chat app with Firebase as backend and an in-app synced browser to enjoy watching videos together
Tea talks - An end-to-end encrypted chat app with Firebase as backend and an in-app synced browser to enjoy watching videos together

Tea-Talks is a chat ?? application where you can create rooms to chat ??๏ธ and wa

Jun 22, 2022
Making Appwrite Authentication Easy

FlAppwrite Account Kit A Flutter wrapper for Appwrite's Accounts service, makes it easy to use manage authentication and account features. Under devel

Jun 25, 2022
An easy configurable and secure open-source personal password manager.
An easy configurable and secure open-source personal password manager.

An easy configurable and secure open-source personal password manager. Anyone can you this project and generate his own personal mobile app. All the passwords will be saved into your own Firebase Firestone database with encryption.

Jun 27, 2022
flutter web app with given code and example. Step by step teaching how to build a flutter web app with backend

flutter_web A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if t

Aug 5, 2022
DEVS: Developer Board and Jobs Listing | For Developers, By Developers
DEVS: Developer Board and Jobs Listing | For Developers, By Developers

devs Setup Currently, this DEVS project is using the master channel of the Flutter SDK. TODO: Migrate to beta Clone the project git clone https://gith

Apr 16, 2022
CARP Mobile Sensing for Flutter, including mobile sensing framework, data backend support, and the CARP mobile sensing app.
CARP Mobile Sensing for Flutter, including mobile sensing framework, data backend support, and the CARP mobile sensing app.

This repo hold the source code for the CACHET Research Platform (CARP) Mobile Sensing (CAMS) Flutter software. It contains the source code for CACHET

Jun 21, 2022
Mobile secure keyboard to prevent KeyLogger attack and screen capture.
Mobile secure keyboard to prevent KeyLogger attack and screen capture.

Mobile secure keyboard to prevent KeyLogger attack and screen capture. Screenshots Alphanumeric Numeric Getting started To use this plugin, add flutte

Aug 15, 2022
Fancy Containers Flutter Package
Fancy Containers Flutter Package

Fancy Containers Fancy container package lets you add a beautiful gradient container to your Flutter app. Installation Add the latest version of packa

Jul 21, 2022
Feb 16, 2022
Notes App created with Flutter and Appwrite.
Notes App created with Flutter and Appwrite.

Note Keeper A Flutter + AppWrite Project Note Keeper is a Note Creater App build with Flutter backed by AppWrite (An Open-Source Backend Server) ?? Fu

Jul 13, 2022
Remote Flutter/Dart Compiler for CloudRun and Docker

flutter_remote_compiler Running the Application Locally Run aqueduct serve from this directory to run the application. For running within an IDE, run

Oct 5, 2020