You know how applications like slack, discord, sap, and others have a list of software that can be integrated into their software for extra capability, right? I was wondering how would I go about doing that? Would it be to just add a bunch of REST API for the different software I’d like to add, or would there be another way? Thanks.
We’re working on more native integrations and the developer experience so that you can also develop these types of plugins in WeWeb.
In the meantime, it depends on the integration you want to add. If the integration doesn’t require a secret key, then you can simply call it’s API via WeWeb’s REST API plugin.
If the integration requires a secret key, then you would need to create the integration on your backend and have WeWeb calling your backend to interact with the third party.
For example, if you wanted to add an emailing tool like Resend, since you don’t want the API key to be visible client-side, you could create an edge function in Supabase to send an email and call that edge function in WeWeb.
Does that make sense?
Not sure what your background is but, if you’re relatively new to software development, you might find this article about securely using API keys in the frontend interesting:
That’s good to hear that functionality is being developed that could help us provide integrations to our customers. Is there a rough idea on when something would be released? Few months or end of year?
Note => What is planned is to give you the capability to develop plugins the same way you can develop coded components, so you can build integration that fit your needs
At first it will be front-end plugin only, what it means is, as Joyce said, if you need your users to provide private informations like a private api key you will have to save it and use it in your own backend because everything in the plugin will be executed in the front end.
You could already create your own endpoints to external service in Xano and call these with our Xano or REST API plugin, if its for personal use it should be enough
A multi tenant saas. I noticed how other software have like a list of integrations that they have featured, so I was curious how I’d go about doing that.
One more thing, I’m starting to get the hang of xano and weweb by watching the tutorial on YT, and while I haven’t watched the full video yet, would it be a good idea to have a separate database table for each client, or just have them all under one database table?
Could I have have the client create a new database table from their side when they create an account, or would that not work? I’m still learning about xano.
You mean a list of way to authenticate ? You can install oauth providers on your xano instance and then use them through our Xano Auth plugin
If you mean a list of way to connect to external service to provide some features to your users you have to build this yourself through your backend, on Xano, and develop admin view on your weweb app to make your users able to provide their api keys or everything else required to make your features works
Its not possible in WeWeb to connect to multiple instance at the same time with our Xano plugins (you still can do it through REST), so it should be easier to build around a single instance for every customers, else you would need to have a different weweb app for every customers too
No you’re going to want a record of all clients in one table. Whenever I have doubts about database structure, the hack I use is explaining how I want my app to work as detailed as possible to something like Chat GPT or Google Gemini, and asking them to provide a PostreSQL database structure is super helpful. Not only will it give you the actual structure but it will also explain to you how each table references each other and why you need it structured that way.
Also, I use DrawSQL to map out my database, and they have templates you can take a look at as well to see how other companies have structured something similar.
In terms of allowing those users to add their own integrations, that would all happen pretty much on Xano. You’d save their API key in your database and use it in a variable when calling the API.