Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,3 +140,47 @@ registry-defined.

The official Splice token-standard CLI is the canonical reference for these registry
flows.

## Deployment

This template is a static single-page app built with Vite, so a production deploy is
just static files behind a web server. The app itself needs no server runtime.

Build the production bundle:

```bash
npm run build
```

This runs the TypeScript compiler and `vite build`, emitting the static site (HTML,
JS, CSS, and assets) to `dist/`. Serve the contents of `dist/` from any static host:
Caddy, Nginx, Netlify, Vercel (static), GitHub Pages, or an S3 bucket behind a CDN
all work without changes.

### SPA fallback

The app is a single-page application served from one `index.html`, so configure the
host to serve `index.html` for unknown paths. Without this fallback, reloading a
client-side route or opening a deep link returns a 404.

- Caddy: `try_files {path} /index.html`
- Nginx: `try_files $uri /index.html;`
- Netlify or Vercel: a catch-all rewrite of every path to `/index.html`

### Live data

By default the build runs against the in-browser demo backend, so a plain `dist/`
deploy is fully interactive with the demo parties and needs no backend service. To
serve live data, wire the app against a validator and registry by replacing the demo
backend's fetchers as described in [Real mode](#real-mode); the hosting recipe above
does not change.

### SEO and icon assets

This template ships no `public/` directory, so it serves no `robots.txt`,
`sitemap.xml`, favicon, or Open Graph image, and the browser falls back to a default
icon. A production deploy should add a `public/` folder containing a `robots.txt`
that allows indexing, a `sitemap.xml`, and a favicon set (for example `favicon.svg`
or `favicon.ico`, `apple-touch-icon.png`, and an Open Graph image). Vite copies
everything under `public/` to the root of `dist/`, so any static host serves these
files at the site root, mirroring the live demo apps.