Official website for the Sendspin music experience protocol, built with Eleventy.
- Node.js (version pinned in
.nvmrc) - npm
npm installTo run a local development server:
./script/developThe site will be available at http://localhost:5005
To build the site for production:
./script/buildThe built site will be in the dist/ directory.
The website publishes a stable specification, while Sendspin/spec also contains development work. Choose a release tag or commit explicitly when syncing the website. For example:
./script/sync-spec 1.0.0-rc1The script preserves the page's front matter and copies the specification body exactly, omitting only the upstream generated-file notice and top-level title (the website supplies its own title). It resolves the chosen revision to a full commit ID and records a link to that commit in an HTML comment immediately after the front matter. Check mode verifies both this comment and the specification body. Edit the specification in the upstream repository, then run this script to update the website copy.
To verify that the page matches that same release without changing any files:
./script/sync-spec 1.0.0-rc1 --checkBoth commands require network access. Check mode exits nonzero on a mismatch or a fetch error. Neither command runs in CI or during the production build; the build uses the checked-in specification. Syncing is an explicit step before committing a release update.
The site deploys automatically to Netlify when changes are pushed to the main branch. Netlify's Git integration runs the build; there is no workflow file or netlify.toml in the repo, so the build command and publish directory are set in the Netlify dashboard.
Redirects live in public/_redirects, which ships to the site root.
.
├── src/ # Source files
│ ├── _data/ # Footer links, allowed referrers
│ ├── _includes/ # Layout, brand markup, SVG icons
│ │ ├── base.html # Main layout template
│ │ └── guide.html # Implementation guide layout (sidebar, pager)
│ ├── build/ # Builder section, served at /build/
│ │ ├── index.md # Section hub
│ │ ├── manufacturers.md # Why build on Sendspin
│ │ ├── guide/ # Implementation guide, one file per chapter
│ │ │ ├── guide.11tydata.json # Layout, tag and stylesheet for every chapter
│ │ │ └── all.html # One-page / print view
│ │ ├── sdks.md # SDKs and libraries
│ │ └── spec.md # Protocol specification
│ ├── index.html # Homepage
│ └── 404.html
├── public/ # Static assets, copied to the site root
│ ├── style.css # Tokens, chrome, and shared primitives
│ ├── homepage.css # Homepage section styles
│ ├── guide.css # Implementation guide layout, callouts, print
│ ├── videos/ # Pairing walkthroughs recorded by ma-pairing-e2e
│ ├── _redirects # Netlify redirects
│ ├── js/ # Live demo card, mermaid
│ └── images/ # Images and partner logos
├── script/ # Build scripts
│ ├── build # Production build
│ ├── develop # Development server
│ └── sync-spec # Sync or check the upstream specification
└── dist/ # Built site (generated)
- Eleventy - Static site generator
- Netlify - Hosting
TODO: Add license information