I am planning to built my first application with WeWeb. Traffic will start with 50-100k visits per month (moving there from a different solution).
It will be mainly used in Europe, which is why I have a few questions:
Is the “Data caching system” in the scale plan the Cloudfront CDN, or is this a separate feature? Is there also the CDN integration in the starter plan?
I will use Xano, Airtable, and Ghost as Datasources. Will all files automatically go through caching / Cloudfront CDN servers, or just heavy files? Or can I configure this for each datasource and collection? In my case, Ghost will use its own caching/CDN setup, so no need to cache it again, I think.
Is the AWS hosting option in North Virginia the only option at this point, or can I also select a European server? Or doesn’t this matter at all because of the CDN)?
Would you rather suggest self-hosting in this case with a local hoster (like Hetzner) and CDN (like BunnyCDN)?
I think this is always best in order to custom tailor the hosting to your needs. With their update to self-host packages it (supposedly) simplifies a lot the self hosting, which is great.
WeWeb apps are not served by a single server cluster in NA anymore, they are pushed to Cloudfront and regionalised. You can super easily export the code and selfhost it yourself the same way as us, put it inside a github repository, push it on Vercel and it’s done. Every app with a domain name are pushed to the CDN, it’s for all plans.
You can integrate with Xano Airtable and Ghost but be aware the flow will be different for each one.
Your web app will communicate directly with Xano. No weweb servers involved. It will goes from the user browser to your xano.
It’s différent for Airtable and Ghost, as they require a private api key, the request go through our microservices forwarding the request with the API Key.
You can also choose to create an Airtable and a Ghost collection with a cache mode. The cache mode mean we will fetch your collection and cache it until you hit a button to refresh the cache or make an API request to the weweb public API to refresh it. You need a scale plan to use this feature if I remember well.
I would recommend you to use your Xano as a proxy to integrate Airtable and Ghost data, as it will allow you to control more precisely which data you choose to expose from them. If you do it on WeWeb you basically allow everyone to fetch any data from the collection you created, you can’t choose to restrict access to your airtable and ghost collection based on the connected user, it need to be done behind your Xano if it’s the system used to authenticated your users.
Yes, you could make an API layer on top of those two and just hit them through Xano, that’s a great idea. I really like the fact that you simplified self hosting, making it a simple Vue project apparently, which is even possible to host on Vercel with like 3 clicks.
Ghost and Airtable content would not have to be restricted at all, since I would only use it for public information (blog bontent and product data). Everything that needs to be user restricted is planned to be in Xano. I am planning to build an ecommerce application and use Airtable as product CMS, because I’m running some automations there in background (e.g. available stock for our product, affiliate price pulling for affiliate products, etc.).
But I’ll double-check the data structure.
My main question was about the performance aspect. If I load an image from Airtable for example, would that be cached in WeWeb and also go through Cloudfront?
How does this work with Xano data? Is there some kind of caching as well (in case I load large images from Xano for example)?
–
Edit: Depending on how everything works regarding caching and performance, I could also imagine to use Xano as the only datasource for WeWeb and sync Airtable / Ghost directly with Xano. But then Xano would have to do the Caching/CDN work, right?
Hope my question makes sense. I’m still trying to understand everything
My main question was about the performance aspect. If I load an image from Airtable for example, would that be cached in WeWeb and also go through Cloudfront?
If you load an image from Airtable (you bound a source url targeting an image stored on airtable), then the user browser load the image from Airtable, that’s all, no WeWeb involved, and no stored on cloudfront.
How does this work with Xano data? Is there some kind of caching as well (in case I load large images from Xano for example)?
Same as Airtable, the caching as to be handled on your Xano, make sure your images are served by Xano with a cache option so the user browser can cache them for exemple.