Skip to content

Repository files navigation

Sillage website

Canonical public site: https://getsillage.github.io/

Source repository: getsillage/getsillage.github.io

This is the product showcase site for Sillage — a self-hosted, single-user space for private records, history review, and AI answers grounded in your own notes.

This repository is separate from the product monorepo. Documentation, releases, engineering governance (make check, constitution, CI), and the application itself live in the main project (sillage). Keep the public one-line product description and “no multi-user / no official hosting” claims aligned with the monorepo READMEs.

Features

  • Single-page product landing (English / Simplified Chinese)
  • Light and dark themes
  • SEO: Open Graph, Twitter cards, JSON-LD, robots.txt, sitemap
  • Hash-based Content Security Policy, security headers, and HTML cache controls
  • Latest release tag pulled from GitHub for the Docker quick start
  • Static build suitable for Cloudflare Pages, GitHub Pages, Netlify, etc.

Stack

  • Vite + React + TypeScript
  • Tailwind CSS v4
  • Node.js 20+

Development

npm install
npm run dev

Verification

make check          # install, audit, lint, typecheck, tests, build, docs, Actions pins
make check-web
make check-docs
make check-actions

CI runs make check on pull requests and main. The gate includes component, interaction, accessibility, release-fallback, and post-build security/SEO tests. The GitHub Pages workflow runs the same gate before uploading a deployable artifact. Third-party Actions are pinned to immutable commit SHAs, dependency lifecycle scripts are deny-by-default, and Dependabot checks npm plus GitHub Actions weekly.

Optional local env (see .env.example):

cp .env.example .env
# set VITE_SITE_URL=https://your.domain

Build

VITE_SITE_URL=https://your.domain npm run build
npm run preview

Output is written to dist/. The post-build step rewrites robots.txt / sitemap.xml, injects absolute canonical / OG URLs when VITE_SITE_URL is set, generates a base-aware 404.html, and applies a CSP whose hashes match the final inline bootstrap scripts. Production jobs may set REQUIRE_SITE_URL=1 to reject missing, non-HTTPS, or base-mismatched public URLs.

Deploy

GitHub Pages

  1. Use the organization Pages repository name getsillage.github.io.
  2. Settings → Pages → Source: GitHub Actions.
  3. The default public URL is https://getsillage.github.io/; set the repository variable SITE_URL only when using a custom domain.
  4. Push to main — workflow Deploy GitHub Pages builds and publishes dist/ at the root path.

For a custom domain, add a CNAME file under public/ (or configure it in the Pages UI) and set SITE_URL to that domain.

Cloudflare Pages

Setting Value
Build command npm run build
Build output dist
Node version 22 (or 20)
Env var VITE_SITE_URL = your public origin

public/_headers and public/_redirects are included for security headers and SPA fallback.

Any static host

Upload the contents of dist/ after npm run build.

Content sources

Copy tracks the main repository:

Update src/config/site.ts (defaultReleaseTag) if the pinned fallback release changes. The live site prefers GitHub’s latest release API.

License

MIT (aligned with Sillage).

About

Bilingual product website for Sillage, with product guidance and a Docker quick start.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages