Hosting websites on Tangled
You can serve static websites directly from your git repositories on Tangled. If you’ve used GitHub Pages or Codeberg Pages, this should feel familiar.
Overview
Every user gets a sites domain. If you signed up through
Tangled’s own PDS (tngl.sh), your sites domain is
automatically <your-handle>.tngl.sh no
setup needed. Otherwise, you can claim a
<subdomain>.tngl.io domain from your
settings.
You can serve multiple sites per domain:
- One index site served at the root of your
domain (e.g.
alice.tngl.sh) - Any number of sub-path sites served under
the repository name
(e.g.
alice.tngl.sh/my-project)
Claiming a domain
If you don’t have a tngl.sh handle, you need
to claim a domain before publishing sites:
- Go to Settings → Sites
- Enter a subdomain (e.g.
aliceto claimalice.tngl.io) - Click claim
You can only hold one domain at a time. Releasing a domain puts it in a 30-day cooldown before anyone else can claim it.
Configuring a site for a repository
- Navigate to your repository
- Go to Settings → Sites
- Choose a branch to deploy from
- Set the deploy directory — the path
within the repository containing your
index.html. Use/for the root, or a subdirectory like/docsor/public - Choose the site type:
- Index site — served at the root of your
domain (e.g.
alice.tngl.sh) - Sub-path site — served under the
repository name (e.g.
alice.tngl.sh/my-project)
- Index site — served at the root of your
domain (e.g.
- Click save
The site will be deployed automatically. You can see the status of your previous deploys in the Recent Deploys section at the bottom of the page.
Sites are redeployed automatically on every push to the configured branch.
Custom domains
Tangled currently doesn’t support custom domains for sites. This will be added in a future update.
Deploy directory
The deploy directory is the path within your repository
that Tangled serves as the site root. It must contain an
index.html.
| Deploy directory | Result |
|---|---|
/ |
Serves the repository root |
/docs |
Serves the docs/ subdirectory |
/public |
Serves the public/ subdirectory |
Directories are served with automatic
index.html resolution – a request to
/about will serve /about/index.html
if it exists.
Site types
| Type | URL |
|---|---|
| Index site | alice.tngl.sh |
| Sub-path site | alice.tngl.sh/my-project |
Only one repository can be the index site for a given domain at a time. If another repository already holds the index site, you will see a notice in the settings and only the sub-path option will be available.
Deploy triggers
A deployment is triggered automatically when:
- You push to the configured branch
- You change the site configuration (branch, deploy directory, or site type)
Disabling a site
To stop serving a site, go to Settings → Sites in your repository and click Disable. This removes the site configuration and stops serving the site. The deployed files are also deleted from storage.
Releasing your domain from Settings → Sites at the account level will disable all sites associated with it and delete their files.