Reference
The technical detail behind the rest of the documentation.
| Page | What it covers |
|---|---|
| Architecture | What lives in the app, what lives in the library, and where to change what |
| Configuration | stencil.config.ts, the Env values, and the service wiring |
| Scripts | Every npm script of the app, and its two test modes |
| Browser support | Which devices are supported, and what to do about older ones |
| Versioning | CalVer for the app, semver for the library, and how to tell what a device runs |
| Troubleshooting | Symptoms, causes, fixes |
Repositories
| Repository | What it holds |
|---|---|
audioguide-app | The shell application. What you fork. |
smartcompanion-library | @smartcompanion/ui, /services and /data — almost everything a visitor sees — and this documentation |
data-format | The JSON schema and the example data files |
native-audio-player | The Capacitor audio plugin — background playback, lock-screen controls |
engraft | The customization tool |
External documentation
| Storybook | Every UI component, with its properties and events |
| Data format specification | The schema, readable |
| engraft | The customization tool |
| Stencil | The web component compiler |
| Ionic Framework | The component and routing layer |
| Workbox | The service worker toolkit |
| Capacitor | The native bridge, used for audio and sharing |
Technology
| Framework | Stencil 4 — JSX with an h factory, compiled to standard web components |
| UI | Ionic Framework 9 |
| Language | TypeScript, ES2022 |
| Styling | Sass with CSS custom properties, prefixed --sc- |
| Service worker | Workbox 7, generated only with offline support |
| Tests | WebdriverIO with Mocha, driving Chrome through puppeteer-core |
| Package manager | npm |
| Node | 22 |
| Licence | BSD 2-Clause |