The SmartCompanion Audioguide App is a free and open-source Progressive Web App (PWA) that delivers interactive audioguide experiences for museums and cultural institutions. It runs seamlessly in any modern mobile browser — no installation required.
The app is fully customizable, allowing you to adapt content, colors, text, and images to fit your institution's needs. It also includes offline functionality powered by a service worker, ensuring smooth use even without an internet connection.
- 🎧 Interactive Audioguide — station-based audio playback for museum tours
- 📱 Progressive Web App — works in any modern browser, no app store needed
- 🌐 Multilingual — built-in i18n support for multiple languages
- 📶 Offline Support — optional service worker caching for use without internet
- 🎨 Fully Customizable — adapt colors, content, images, and branding
- ⚡ Lightweight — built with Stencil.js and Ionic for fast performance
- 🆓 Open Source — BSD 2-Clause license
| Castle Tratzberg | Museum Landeck | Example App |
|---|---|---|
![]() |
![]() |
![]() |
- Fork and clone the repo
- Install all dependencies with
npm install - Either build the project with
npm run buildor open a live preview within the browser withnpm start
npm start # Dev server with hot reload
npm run build # Production build → www/
npm test # Run spec & e2e tests
npm run test:dev # Continuous test watching| Service | Description |
|---|---|
| Netlify | The Example App is hosted on Netlify. Netlify offers a free option and supports custom domains. |
| GitHub Pages | GitHub Pages offers a free option for open source repositories and supports custom domains. |
| SmartCompanion | We offer a hosting service including a content management system, continuous updates and security fixes, custom domains, and support. |
The content is loaded from a data.json file, which contains all texts and references to assets like images and audio files. Inside the stencil.config.ts the DATA_URL should point to your data.json file. The sample data, which is used for the demo of the app, can be found here. Custom data needs to be structured according to the example.
- SCSS color variables in
src/global/app.scss(CSS custom properties with--sc-prefix) background_colorandtheme_colorinmanifest.jsontheme_colorinindex.html
- Title and description in
index.html - Title in
stencil.config.ts(Env.TITLE)
logo.pnginassetsfolderfavicon.icoandicon.pnginassets/iconfolder
The PWA can be used with offline support via a service worker. When using a service worker, the initial startup of the app takes a bit longer since all relevant files need to be downloaded and cached. Inside the stencil.config.ts file, set OFFLINE_SUPPORT to "enabled" or "disabled".
Contributions are welcome! Feel free to open issues or submit pull requests.
The SmartCompanion Audioguide App is licensed under the terms of the BSD 2-Clause license. Check the LICENSE file for further details.



