Why Self-Host Your Demos?
Most demo platforms are SaaS-only. You upload your content to their servers, and they host everything. For many teams, that's fine. But some organizations have requirements that make self-hosting essential:
Security & Compliance
Financial services, healthcare, and government organizations often can't send data to third-party SaaS platforms. Even demo content—API schemas, example data, workflow screenshots—may be considered sensitive.
Self-hosting keeps everything within your security perimeter. No data leaves your network. No third-party access to your content.
Air-Gapped Networks
Some environments have no internet access by design. Defense contractors, secure research facilities, and critical infrastructure operators need tools that work completely offline.
SaaS demo platforms are useless in these environments. Self-hosted solutions work anywhere you can run a web server.
Cost at Scale
SaaS pricing often scales with users or views. At enterprise scale, costs can grow quickly. Self-hosting has fixed infrastructure costs regardless of usage.
Vendor Independence
What happens if your demo vendor gets acquired, pivots, or shuts down? With a self-hosted open-source solution, your demos keep working. You own the code and the content.
When Self-Hosting Makes Sense
Self-hosting adds operational overhead. It's worth it when you have compliance requirements, security restrictions, or need to run in offline/air-gapped environments. For most teams, a cloud-hosted solution with good security practices is simpler.
Self-Hosting Options Compared
| Demo Tool | Open Source | Self-Hostable | License |
|---|---|---|---|
| Demostack | No | No | Proprietary |
| Walnut | No | No | Proprietary |
| Navattic | No | No | Proprietary |
| Storylane | No | No | Proprietary |
| DemoScript | Yes | Yes | MIT |
Most demo platforms offer no self-hosting option. DemoScript is MIT-licensed open source—you can deploy it anywhere, modify it as needed, and use it commercially without restrictions.
Self-Hosting DemoScript: Three Approaches
Option 1: Static Export (Simplest)
The easiest approach is building static HTML files and hosting them on any web server. This works for demos with pre-recorded responses (no live API execution).
Install DemoScript
npm install -g demoscript
Create your demo
# demo.yaml
title: "API Quick Start"
settings:
base_url: "https://api.example.com"
steps:
- slide: |
# Welcome
Let's explore the API.
- rest: GET /users
title: "List Users"
Record API responses
demoscript record ./my-demo
This captures actual API responses for offline playback.
Build static files
demoscript build ./my-demo -o dist
Outputs HTML/JS/CSS to the dist folder.
Deploy anywhere
Upload the dist folder to any web server: nginx, Apache, S3, GitHub Pages, your CDN, or your intranet.
Pros: Simple deployment, works offline, no runtime dependencies.
Cons: No live API execution—viewers see pre-recorded responses.
Option 2: Node.js Server (Live Execution)
For demos that need to execute live API calls, run DemoScript as a Node.js application.
Clone and install
git clone https://github.com/aximcode/demoscript.git cd demoscript npm install npm run build
Run the server
demoscript serve ./my-demo --port 3000 --host
The --host flag binds to all interfaces (not just localhost).
Put behind a reverse proxy
Use nginx or your load balancer to handle TLS and route traffic to the Node.js process.
# nginx example
server {
listen 443 ssl;
server_name demos.yourcompany.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
}
}
Pros: Live API execution, real-time responses.
Cons: Requires Node.js runtime, more infrastructure to manage.
Option 3: Docker Container
For teams with container infrastructure, Docker provides consistent deployments.
Create a Dockerfile
FROM node:20-alpine WORKDIR /app # Install DemoScript globally RUN npm install -g demoscript # Copy your demo files COPY ./my-demo /app/demo EXPOSE 3000 CMD ["demoscript", "serve", "/app/demo", "--port", "3000", "--host"]
Build and run
docker build -t my-demo . docker run -p 3000:3000 my-demo
Deploy to your container platform
Push to your container registry and deploy to Kubernetes, ECS, Cloud Run, or your internal platform.
Pros: Portable, reproducible, works with existing container infrastructure.
Cons: Container runtime required.
Air-Gapped Deployment
For networks with no internet access:
- On a connected machine: Download DemoScript and all npm dependencies
- Bundle everything: Create a tarball with node_modules included
- Transfer: Move via approved media (USB, secure file transfer)
- Deploy: Extract and run on the air-gapped network
# On connected machine npm pack demoscript # Transfer the .tgz file # On air-gapped machine npm install ./demoscript-*.tgz
For static exports, you don't even need Node.js on the target—just a web server to serve HTML files.
Security Considerations
API Credentials
If your demos execute against real APIs, be careful with credentials:
- Use read-only API keys when possible
- Scope permissions to only what the demo needs
- Consider a demo-specific environment/database
- Never commit credentials to your demo repository
Network Isolation
Run demo servers in isolated network segments. They should only be able to reach the APIs they need to demonstrate.
Access Control
For internal demos, put them behind your SSO or VPN. DemoScript supports password protection for individual demos via YAML configuration.
When to Use Cloud Instead
Self-hosting isn't always the best choice. Consider the managed cloud platform if:
- You don't have strict compliance requirements
- Your team doesn't want to manage infrastructure
- You need analytics and collaboration features
- You want automatic updates and new features
DemoScript Cloud offers hosted demos, analytics, team collaboration, and custom domains—without the operational overhead. It's $9/month for individuals or $19/month per user for teams.
Get Started
Self-host for free or try the cloud platform. Your choice.
Summary
Self-hosting product demos makes sense when you have security requirements, compliance constraints, or need to operate in air-gapped environments. DemoScript is one of the few demo tools that supports this—it's MIT-licensed open source that you can deploy anywhere.
Three deployment options:
- Static export: Build HTML files, host anywhere, works offline
- Node.js server: Live API execution, run behind reverse proxy
- Docker container: Portable deployment to any container platform
The MIT license means you can use DemoScript commercially, modify it, and distribute it without restrictions. No vendor lock-in, no surprise pricing changes, no dependency on a third party's roadmap.