Comments (7)
As initial point i agree that this should be an API. It will facilitate first and third point in concerns list. For push messages and to not increase costs and maintain the actual budget you could test: https://gotify.net/ seems a pretty good thing and start from there. For email will be a huge challenge, maybe someone in the community have experience and know-how for doing this and bring what we need to prevent spam and other traps.
from appwrite.
As initial point i agree that this should be an API. It will facilitate first and third point in concerns list. For push messages and to not increase costs and maintain the actual budget you could test: https://gotify.net/ seems a pretty good thing and start from there. For email will be a huge challenge, maybe someone in the community have experience and know-how for doing this and bring what we need to prevent spam and other traps.
Gotify i think only supports plain text and has no support for Rich Text messages. OneSignal was great , but it is not longer free and opensource .
from appwrite.
Hey @miguelramos, this a great idea that was in Appwrite original blueprint.
We left it out of our first versions because implementing it had a few issues we didn't have time to address.
It's something we definitely would like to come back to in the future!
from appwrite.
Cool, maybe mosquito(MQTT) for the infra and it is well know in IOT world and mailhog/maildev too, but is just a consideration and yes will increase the infrastructure but they are cool options.
from appwrite.
Yeh, no doubt, this is a massive feature in terms of infrastructure and user integration. I would love to get some more community feedback on this one.
Our initial idea was to create a messaging API that has multiple adapters for sending messages to different endpoints.
Some of the adapters we had in mind included:
- Email - Using Appwrite current SMTP server or a user-defined one (will have to find a good solution for SPAM preventing)
- Push Messages - Should probably support at lease iOS, Android and Web
- Telegram - Probably the easiest one to implement
- SMS - will require external provider, might also allow us to use this for future 2fa feature
Some of the main concerns I have, including but not limited to are:
- How to easily allow developers to integrate correctly with adapters
- The infrastructure overhead - we need to keep default setup cheap (5-10$ servers)
- Making sure the API is consistent and predictable
- How should the dashboard look like, should we have stats alongside adapters configuration, what else is needed in the console?
from appwrite.
There are two kinds of messaging that Appwrite should support.
- User notification via push messages on different communication channels.
- Internal application bus. A hi level bus api where the underlying broker is hidden and where is it possible to post events, queries and commands (CQRS)
As we need to subscripe for push messages in our applications it requires a websocket connection point in Appwrite.
from appwrite.
@wentzlau great feedback, the push messaging is definitely something we'll have on our roadmap.
I also really like the idea of having dedicated support for server-to-server communication. Do you have any suggestions for a communication protocol that will be good for this type of communication?
from appwrite.
Related Issues (20)
- 🐛 Bug Report: OAuth no longer works after revoking access directly from Github
- 🐛 Bug Report: The Console UI is broken on a few pages and modals HOT 2
- 🚀 Enhancement: Support '7d' range for usage queries
- 🐛 Bug Report: Uploading a file on a bucket using react native not working HOT 5
- Is there any way to implement Single Sign In using Appwrite? HOT 1
- 🐛 Bug Report: Realtime got disconnected using Appwrite Cloud HOT 2
- 🐛 Bug Report: Wrong version number in response (Appwrite v1.5.5) HOT 1
- 📚 Documentation: Getting Started Links in Readme not valid HOT 3
- 🐛 Bug Report: Server Error on Empty Function Entrypoint
- 🐛 Bug Report: Avatars Initials API Returns Empty Image HOT 1
- 🐛 Bug Report: File status counter not updating HOT 1
- 🐛 Bug Report: Collections, attributes, and indexes don't migrate
- 🐛 Bug Report: Org delete button is not doing anything. HOT 1
- 🚀 Enhancement: Increase the word length of Team Role Parameter into 50 or 100
- 🚀 Enhancement: Permission.all
- My Usage is 0%, but I get an error for Limit exceeded. Could you repair and open my limitations? HOT 3
- 🐛 Bug Report: Failed one to many relationship HOT 1
- 🐛 Bug Report: Error creating many to one relationship
- 🚀 Enhancement: Vipps MobilePay oauth provider HOT 1
- 🐛 Bug Report: Double typo in credit card enum HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from appwrite.