You can publish a web app for free. A portfolio that serves prepared files can use a static hosting free tier. If users save bookings or upload images, also decide where that data lives. Check what it takes to keep the app available and what it takes to keep the data.
In this article
What can you host for free?
Look for free static hosting.
Check when the runtime stops.
Check expiration, capacity, and recovery.
| What you built | Hosting example | Free-tier conditions |
|---|---|---|
| Portfolio made of HTML or build output | GitHub Pages or Cloudflare Pages | GitHub Free supports Pages from public repositories, with restrictions on commercial transactions and running SaaS. Cloudflare Pages Free includes 500 builds per month. GitHub Pages limits · Cloudflare Pages limits |
| Occasional Node.js or Python demo | Render Free Web Service | It spins down after 15 minutes without inbound traffic and starts on the next request. Render free tier |
| Short demo with a database | Render Free Web Service and Free Postgres | Free Postgres becomes inaccessible after 30 days. Local writes on the web service disappear on events such as a restart or redeploy. Render free tier |
Service terms checked on November 3, 2026. Check the official pages before publishing.
Static sites are a good fit for free tiers
Serving a portfolio as HTML, images, and CSS does not require starting an app for each request. Check storage and transfer limits if you publish many images. A contact form adds its own submission limits. Cloudflare Pages Functions requests count toward the Workers quota. Cloudflare Pages Functions limits
Use a free web server for a demo that can wait
A cold start can be acceptable when friends are trying an API for a few days. It can matter when a user is waiting for a form response or when a webhook sender has a response deadline. Test the public URL after leaving the service idle, and check the webhook sender’s timeout and retry policy. Render idle spin-down
Keep a PostgreSQL demo online for more than a month
Render includes 750 free instance hours per workspace per month. Free web services share that pool and are suspended until the next month when it runs out. Render describes free instances as suitable for learning and testing. Render monthly limits
An expired Render Free Postgres database is inaccessible and is deleted after a 14-day upgrade grace period. There are no managed backups on that tier. Export or move the data before expiry if you need to keep it. Render Free Postgres
For a personal demo you use a few times a month, one option is Render Free Web Service with Neon’s free PostgreSQL, which has no fixed expiration date. Neon includes 1 GB of storage and 100 CU-hours per project per month for compute, measured as compute size multiplied by runtime. Render may suspend a free web service that generates unusually high public outbound traffic, including requests to an external database. Restoring service can require an upgrade. Neon pricing · Render outbound traffic policy
Neon also suspends compute after five idle minutes and resumes on the next connection. Stored data survives this pause. Exhausting the monthly compute or public network transfer allowance suspends compute until the next billing period or an upgrade. Neon free plan limits
Decide when to pay before collecting real data
Losing bookings could disrupt a club. Before accepting the first booking, check expiration, backup and restore options, and durable file storage. If you use an external database, check both services because the database may stop or hit a limit while the app is still running.
Startup exceeds the user’s or webhook’s deadline.
Expiration or recovery limits do not fit real data.
Traffic, builds, or database use approach a limit.
| What happens | What to decide |
|---|---|
| Cold starts exceed a webhook deadline | Change the receiving path or use a plan without idle spin-down. |
| A demo database starts holding real records | Choose expiration, backup retention, and restore options that meet your needs. |
| Image traffic or builds approach the limits | Check usage, alerts, and whether overages stop service or incur charges. |
If you plan to keep a web app running for users in Japan, include KamuiDash in the comparison. Check the pricing terms for the static pages, web server, and database you need. KamuiDash app types · Pricing
Write down how long the app needs to stay online, how long users can wait, and which data you cannot afford to lose. Revisit the plan when any of those change.
Related articles
See how to publish web apps from GitHub on KamuiDash.