ANGULAR HOSTING
Angular hosting for an app you have already built
Angular hosting without a pipeline: run ng build, upload the browser folder inside dist, and the app is live on its own HTTPS address in seconds. The nesting is the part people get wrong, and it is the part this page is about.
Free plan, free SSL, no credit card.
- 1
- build command, and one folder inside dist
- 25 MB
- storage on the free plan, no card
- 5,000
- visits a month before you pay anything
- 5 GB
- traffic a month on the free plan
How it works
Three steps, start to live link
-
Run ng build
Build the project the way you already do. Nothing in angular.json has to change for the result to be publishable here.
-
Open dist and go one level deeper
Angular writes the publishable files to the browser folder inside your project folder in dist. That is the folder to upload, and dist itself is not.
-
Publish and share the link
Drag the folder in, pick a name, and the app is live on HTTPS in seconds. Republishing keeps the same address.
The plain answer
What is Angular hosting?
Angular hosting means serving the compiled output of an Angular build. Angular compiles ahead of time, so by the time the build finishes there is no Angular left to run on a server: what remains is HTML, JavaScript bundles and assets that a static host serves as files.
The one thing that trips people up is the shape of the output directory. Angular 17 and later write the browser bundle to dist/<project-name>/browser, one level deeper than older versions did, and dist itself contains no index.html at all. Uploading dist therefore produces a site with nothing to serve, which reads as a hosting problem and is not one.
The second thing worth knowing before you build is whether server-side rendering is switched on. If your project uses @angular/ssr, the build also emits a server bundle alongside the browser one. Only the browser folder can be published here. The Angular deploy guide carries the exact command and the full path.
Who it is for
The people who reach for this
-
Developers
Somewhere to put a built Angular app for a demo or a review without provisioning anything.
-
Product and marketing teams
An internal tool or dashboard prototype at a link, so feedback arrives as comments rather than as scheduling.
-
Agencies and consultancies
A client-facing build at a real HTTPS address, optionally behind a password, handed over as a URL.
-
Designers on the team
A running build to click through on a real device, rather than a set of exported screens.
In detail
What you actually get
The folder, spelled out
This is the whole Angular deployment problem, and most guides on the web still describe the pre-17 layout. Getting it right takes ten seconds and getting it wrong looks exactly like a broken host.
- Upload dist/<project-name>/browser, where the project name is the one in angular.json.
- Do not upload dist. It has no index.html in it, so the publish produces a site with no page to serve.
- If SSR is enabled, the build also writes a server bundle. Only the browser folder is publishable here.
- The Angular deploy guide carries the command and the path, and stays in step with the message a failed upload shows.
Angular Router paths that do not 404
The Angular router owns paths like /reports/2026 in the browser. Requested directly, a static host looks for a file at that path and answers 404 before the app has loaded. This is expected behaviour, not a misconfiguration, and it has a one-switch fix.
- Turn on the Single-page app switch in the site settings and unknown paths are served the root index.html, so the router resolves them.
- Free on every plan, applied without redeploying.
- Hash routing also works with no switch at all, if that is what the project already uses.
What ends up inside the bundle
Angular environment files are compiled into the bundle at build time, which makes a production environment file with a real key in it a published secret. Every deploy is read and anything sensitive is named.
- An API key in environment.prod.ts, a committed .env, a .git directory, or a private key.
- It runs after the site is live, reports in plain language, and never blocks a publish.
- Included on the free plan. See how the security check works.
A domain and a password when it stops being a demo
An Angular app is often an internal tool before it is a public one, so the two things it needs first are a private address and then a real one.
- Password protection from Starter, checked at the edge before any file is served.
- A custom domain from Pro at $15 a month, with certificates handled automatically.
- Free sites are served noindex, so an internal build will not turn up in a search result. Indexing starts on Starter.
No card required
What the free plan includes
Everything below is on the free plan, with no card and no trial to run out, which is enough to put a built Angular app at a real address today.
- 1 live site on a real free plan, not a trial of a paid one, and no card to start.
- Up to 25 MB per upload and 25 MB of storage across the account.
- 5,000 visits and 5 GB of traffic a month.
- HTTPS with a real certificate, issued and renewed for you.
- Up to 25 publishes a day, so you can iterate without asking permission.
- The deploy-time security check, which reads what you published and warns about a stray .env file, a .git folder, a private key or an API key left in your JavaScript.
- A small Droply badge in the corner of the page. Removing it starts on Starter.
- Free sites are served noindex, so search engines do not list them. Search visibility starts on Starter.
Droply vs Static.app
How this compares with Static.app
Static.app publishes the same kind of per-framework page, and neither product builds your project. These are the rows that differ for somebody holding an Angular browser folder.
| Droply | Static.app | |
|---|---|---|
| Free plan | 1 site, 25 MB storage, 5,000 visits a month, no card, and a plan rather than a trial. | A 7-day trial with no credit card, then paid. 1 site and 50 MB during it. |
| Entry paid price | $5 a month for Starter, or $60 a year. | $5 a month or $60 a year for Starter: 2 sites, 500 MB, custom domain included. |
| Loose .html file accepted | Yes, dropped on its own with nothing around it. | No. Its own documentation states a loose .html file must be zipped first. |
| Single-page app fallback | A switch in the site settings, free on every plan, applied with no redeploy. | Not documented as a per-site setting. |
| Password protection | From Starter, checked at the edge before any file is served. | Not listed on its pricing page as a per-site option. |
| Security check on every publish | Every plan, free included: leaked keys, a stray .env, a committed .git folder. | Not offered. |
Static.app figures checked 8 September 2026 on its own pricing page (free tier: 1 site, 50 MB, a 7-day trial with no credit card; Starter $5 a month or $60 a year for 2 sites and 500 MB with a custom domain; Medium $10; Large $15) and on its Claude hosting page, which states that a loose .html file is not accepted for upload and must be zipped first. Both products publish finished output rather than running your build, so the rows below compare what each one accepts and what it costs, not build speed. Product plans can change.
When Droply is the wrong choice
Angular is often chosen for applications that talk to something, and the something is what decides whether this is the right host. A static host serves the client half perfectly and provides no server half at all.
- Your app uses Angular Universal or @angular/ssr to render on the server. Only the browser build can be published here.
- Your app needs an API, a database or an authentication service that you were expecting the host to provide. Bring your own; we serve files.
- You want the build to run on push. There is no Git integration and no build step here.
- You need a database, a login system, or code that runs on the server. Droply serves files; it does not execute your application.
- You want a build to run on every push to a repository. Droply has no Git integration and no CI: you build locally and upload the result.
- You are running WordPress or another PHP application. A static export of it can be hosted here, but the application itself cannot.