Review components and flag for removal. Reference by number/letter.
| # | Component | Description |
|---|---|---|
| 1 | HowItWorksSection | Step-by-step workflow section with 5-layer architecture |
| 2 | ImpactSection | DORA metrics impact visualization |
| 3 | KeyAdvantagesSection | Key advantages comparison grid |
| 4 | CompetitiveSection | Competitor comparison table |
| 5 | PainPointCard | Pain point quote card |
| 6 | StatCard | Statistic display card with source |
| 7 | FeatureCard | Feature highlight card |
| 8 | TerminalHeader | Terminal-style section header |
| # | Component | Description |
|---|---|---|
| A | PersonaSelector | Horizontal persona tabs with localStorage |
| B | StickyPersonaSelector | Floating persona switcher |
| C | ArchitectureDiagram | 5-layer SVG with persona highlighting |
| D | TeamDashboard | Team collaboration visualization |
| E | PluginHoverBlock | Code block with plugin tooltips |
| F | MacroDocumentation | Port macro before/after demo |
| G | VideoPlaceholder | Video placeholder with play button |
One config file. All your dev environments.
Scroll down to see the floating persona switcher in the bottom-right corner.

Alice
Lead Dev

Bob
Backend

Carol
Frontend

Frank
Data Eng

Eve
QA
Real-time Visibility
See who's working on what
Access Control
Role-based permissions
Environment Isolation
Separate dev environments
version: 1
project:
name: "my-project"
plugins: ["supabase"]
network:
services:
app:
dial: "127.0.0.1:3000"Used in tpl.env template files
1 Template (tpl.env)
2 Generated (.env)
| Macro Function | Description | Example Output |
|---|---|---|
getRandomPort() | Allocates a random available port from OS ephemeral range (30000-65000) | 47832 |
getRandomPort(min=X,max=Y) | Allocates a random port within a specific range | 8472 |
getRandomString(length=N) | Generates a cryptographically secure random string | k9Xp2mLq8vNw3rTz6yBc1dFg4hJa7sMn |
getRandomString(length=N,charset=X) | Random string with specific charset: alphanumeric, safe, hex | a8f2c3d4e5b6a7f8 |
| Syntax | Description | Example |
|---|---|---|
${{ env.VAR_NAME }} | Reference an environment variable in manifest YAML | port: "${{ env.ASD_CADDY_PORT_HTTP }}" |
${{ macro.bcryptEnv(VAR) }} | Bcrypt hash an environment variable (for basic auth) | password: "${{ macro.bcryptEnv('ASD_BASIC_AUTH_PASSWORD') }}" |
tpl.env using macro functionsasd init to expand macros into .env${{ env.VAR }}This is a placeholder for video content
3:45Saved from How It Works page - use in testimonials or trust section
"Every broken environment is a tax on your best engineers.
Orchestration-as-a-Service: Five layers from user to infrastructure.
What happens when you run asd start
CLI reads asd.yaml and detects services
Establishes encrypted SSH tunnel to relay server
Caddy configures routes and TLS certificates
Public URL maps to your local port
https://your-project.tunnel.asd.host โ localhost:3000What each part does.
DevOps automation framework. Portable Git submodule.
Local reverse proxy with automatic HTTPS.
SSH-based reverse tunnel relay. EU hosted.
Zero-backend PWA. Runs entirely in browser.
One file defines your entire environment.
network:
services:
app:
dial: "127.0.0.1:5173"
tunnelPrefix: "demo"
path: "/"
api:
dial: "127.0.0.1:8080"
path: "/api"
code:
dial: "127.0.0.1:8443"
path: "/code"
automation:
dev:
- npm run dev
test:
- npm run testMaps local ports to URL paths. ASD routes /api to port 8080, /code to port 8443.
Your subdomain: demo.tunnel.asd.host. Or use your own domain via CNAME.
Named command groups. asd dev runs your dev workflow. asd test runs tests.
Same file works on laptop, CI runner, Codespace, or self-hosted server. Zero per-machine config.
Choose your infrastructure model.
Multi-tenant tunnel server. Fastest to start.
Your own tunnel server. We manage it.
Run everything on your infrastructure.
Where your data flows and what we never see.
Code, data, secrets stay here
Pass-through only
Sees only what you expose
Zero-backend dashboard: The ASD Dashboard is a static PWA. No server. State lives in URL fragments โ we literally cannot see your service list.
Start free. No credit card required.
When teams can't quickly reach the environments where things actually break, they lose time, focus, and confidence. Toil goes up, incident response slows down, and your best people debug infrastructure instead of shipping features.
Configuration drift and developer friction blow up Cycle Time and Lead Time for changes. Developer productivity metrics suffer.
Every incident starts with "who can even reach this environment?" Root cause analysis tools can't help if you can't access the system.
New engineers spend weeks wrestling with environment setup instead of contributing. Fast developer onboarding requires standardized environments.
Ad-hoc SSH keys and long-lived VPNs make audits painful and leave access trails incomplete.
Replace fragmented tools with a unified collaboration layer that gives everyone interactive access to real environments.
| Alternative | The Problem | ASD Advantage |
|---|---|---|
| Screen sharing | One person drives; others watch and dictate. Doesn't work on headless servers. | One shared dashboard URL with code server, browser terminals and database tools on the same environment โ every role works in parallel, not through one driver. |
| VPN + SSH | Long-lived keys, hard to audit, risky to manage. | Short-lived, session-scoped tunnels with full audit trails. |
| Log dashboards | Logs show symptoms, not system behavior. Slow to debug distributed failures. | Step directly into the failing environment and run live experiments together. |
| DIY scripts | Scripts rot; config drift breaks onboarding and 'works on my machine.' | Standardized shared environments guarantee reproducibility and instant productivity. |
One person drives; others watch and dictate. Doesn't work on headless servers.
One shared dashboard URL with code server, browser terminals and database tools on the same environment โ every role works in parallel, not through one driver.
Long-lived keys, hard to audit, risky to manage.
Short-lived, session-scoped tunnels with full audit trails.
Logs show symptoms, not system behavior. Slow to debug distributed failures.
Step directly into the failing environment and run live experiments together.
Scripts rot; config drift breaks onboarding and 'works on my machine.'
Standardized shared environments guarantee reproducibility and instant productivity.
One platform. All the tools. No enterprise tax. Compare ASD to the alternatives and see why teams are switching.
| Feature | ASD | ngrok | Cloudflare Tunnel | GitHub Codespaces |
|---|---|---|---|---|
| HTTP/HTTPS tunnels | โ | โ | โ | โ |
| TCP tunnels | โ | โ | โ | โ |
| UDP tunnels | โ | โ | โ | โ |
| Self-hosted option | โ | Ent. | โ | โ |
| EU data residency (100%) | โ | โ | Ent. | Ent. |
| Integrated web IDE | โ | โ | โ | โ |
| Database GUI included | โ | โ | โ | โ |
| Web terminal included | โ | โ | โ | โ |
| HTTP debugger/inspector | โ | โ | โ | โ |
| Works offline | โ | โ | โ | โ |
| No session time limits | โ | โ | โ | Paid |
| Open source | โ | โ | โ | โ |
Monthly cost for a 10-developer team
/month
/month
/month
Prices for a 10-developer team. ASD includes IDE, database GUI, terminal, HTTP debugger, and request replay.