Published: August 2025

Limitations

The free plan for personal/hobby websites has some limitations. Most are limits on the capabilities of Static Web Apps rather than of the free plan.This note is based on the 2025 version of the overview of the limitations.

The main limitations for me are:

No custom domains for environments other than the production environment.
See [120 Custom domain.md]. If you want to have a custom domain for a second version of the website (in my case) or for a test environment: that is technically not possible.
Total storage is 500MB with 15000 files for all apps.
This may become an issue if you have a lot of apps per Azure subscription, or want to use the website to publish a lot of small files (e.g., image or vector tiles for a geo-layer to be added to Google Maps). The limit for a single app is 250MB. If you switch to a paid plan the storage limits increase to 2GB total and 500MB per app, but the 15000 files is for all plans.
Request size is max 30MB.
For all plans. No big data sets or documents, find another place for those.
Maximum size of 20KB for the staticwebapp.config.json configuration file.
This limits the amount of routes you can create for authorisation and redirects. E.g., if you want to work with permanent URLs for pages and pages get split up, then you can use the route-redirect in the configuration for a limited number of pages. If you want per-page authorisation, you better organise the pages in a way that it can be achieved using a handful of routes.
No cap on API usage
The API usage is not covered by the Static Web App hosting plan, but by an Azure Functions plan (limitations and pricing). Presumably the most basic, the flex consumption plan. That has a free grant that is probably plenty for private websites: in 2025 it is 100 000 GB-sec per month (= memory use times execution time) and 250 000 executions. For a public website with a modest audience probably as well, but it does not protect you against extensive use by web crawlers or malicious actors. But it would be nice to have an option to block the use of the API if the free resources are exhausted.

The other limitations that are not a problem for me:

Total bandwidth of 100GB per Azure subscription.
Sounds plenty. You can switch to a paid plan if this is a problem.
No custom authentication but 25 invites per app
The free plan only lets you protect a website via invites, max 25 per app. That is enough for me and friends/collaborators on hobby projects. For bigger crowds like clubs the paid plan should be an option, especially for a non-public website, and then authorisation via Azure's Entra ID is possible.
Total of 10 Static Web Apps per Azure subscription
You can always create a new subscription and become its administrator
Code-only API deployment to Linux
If an API is deployed with a Static Web App, the code of the API should be provided. The Azure publication tool takes care that is compiled for the correct OS (which is Linux). In less basic Azure Functions plans is it possible to deploy to a container, but that also is Linux based. As in my projects the API are relatively simple functions, and most of my code is cross-platform .NET anyway, this is not a problem.