Websites
Forte hosts websites — front-end applications deployed from a GitHub repository, built automatically, and served over HTTPS on a global content delivery network. Use websites for marketing pages, dashboards, single-page apps, documentation sites, and any other static or server-rendered front-end.
How Websites Work
When you create a website, Forte connects to your GitHub repository, builds it for you, and serves the output globally over a CDN. Each git push to the configured branch triggers a new build and deployment automatically.
Website URL
Every website is assigned a unique HTTPS URL on the sites.tryforte.dev domain:
https://{websiteId}.sites.tryforte.devThis URL is permanent — it is generated when the website is created and will never change for the lifetime of the website, even across redeployments. It is safe to copy directly into DNS records, marketing materials, or any place that expects a stable URL.
Custom domain support is coming soon. In the meantime, the generated sites.tryforte.dev URL is stable and production-ready.
Build Configuration
Forte automatically detects how to build most popular frameworks (Next.js, Vite, Astro, Create React App, Vue, Angular, plain HTML, and more). When auto-detection isn't enough, you can override:
| Setting | Description |
|---|---|
| Build command | The command Forte runs to build your website (e.g., npm run build) |
| Output directory | The folder where built files land (e.g., dist, out, build) |
| Install command | The command to install dependencies (e.g., npm install) |
| Package manager | One of npm, yarn, pnpm, or bun |
| Node.js version | The major version of Node.js used to build (e.g., 18, 20) |
| Subdirectory | The path within your repository to build from — used for monorepos |
If your repository changes — say, you add a new framework or move where package.json lives — you can reset the auto-detected configuration on the website's edit page so Forte detects fresh on the next build.
Build Triggers
Choose how new deployments are triggered:
- On every push to branch — Every commit to the configured branch redeploys automatically. Best for staging and continuous-deployment workflows.
- On GitHub release published — Only redeploys when a new GitHub release is published. Best for production websites that should only roll forward on tagged releases.
You can also manually deploy any commit at any time from the website's deployment page.
Environment Variables and Secrets
Set environment variables and secrets that are available during your build:
- Environment variables are visible in the console and in build logs. Use them for non-sensitive configuration like feature flags and public API URLs.
- Secrets are encrypted at rest and never displayed in the console once saved. Use them for API tokens, credentials, and any other sensitive data.
Both are available to your build process via standard environment-variable mechanisms (process.env.NAME in Node.js, etc.).
The FORTE_ and AWS_ prefixes are reserved — you cannot create custom environment variables that start with either.
Unlike Forte Services, websites do not receive FORTE_PROJECT_ID, FORTE_SERVICE_ID, or FORTE_API_TOKEN injected automatically. Websites are public-by-default front-ends and don't authenticate users on Forte's side. If you need authenticated server-side logic, deploy that part as a Service and call it from your website.
Authentication
Websites are public — every visitor can access them. End-user authentication, session tokens, and the local proxy (forte proxy) are features of Services, not websites.
If your front-end needs to call an authenticated backend, deploy that backend as a Service. The Service will receive the Forte-User-Id header and other Forte session context automatically when called from a logged-in user's browser.
Quotas
Each project supports up to 10 websites for free. Beyond that, billing must be enabled on the project.
Next Steps
- Deploy your first website with the step-by-step guide
- Learn about Services for back-end APIs and authenticated routes
- Set up a monorepo to deploy a website and a service from the same repository