-
Ensure all prerequisites are installed and up to date
- Node.js ≥ v14.17.0 (download from https://nodejs.org)
- Python ≥ 3.8 (download from https://www.python.org)
- Git ≥ v2.30 (https://git-scm.com)
- A POSIX-compliant shell (bash, zsh) or PowerShell on Windows
- At least 4 GB of RAM and 1 GB free disk space
-
Install DeepSite v2 globally via npm
Bash -
Verify installation and environment health
Bash• The
doctorcommand runs environment diagnostics, checking: • Node.js/Python versions • Git availability • Network connectivity to default AI endpoints • Permissions for reading/writing the project folderExpected JSON schema:
Json• To auto-fix common issues (missing deps, outdated config):
Bash -
Scaffold a new project
Bash•
--template=blogselects the official blog starter. • Generated folder structure:Text -
Migrate an existing DeepSite v1 project • Preview changes (dry run):
Bash• Apply migration:
Bash• Migration updates:
.deepsite.ymlschema changes (keys renamed, new defaults)- CLI flags adjustments
- Template file rewrites (Handlebars → Enhanced Templating)
- Lockfile upgrades
-
Initialize Git and commit scaffold
Bash -
First build and local serve
Bash• Open http://localhost:4000 in your browser for live preview • Default live-reload watches
content/and.deepsite.yml -
Troubleshooting common setup errors
- “doctor: network unreachable”: confirm proxy and firewall allow outbound to
*.fireworks.ai. - “scaffold: template not found”: list available templates via
deepsite scaffold --list. - “serve: EADDRINUSE”: change port with
--port=PORT_NUMBER. - Missing Python: install via package manager or pyenv, then rerun
deepsite doctor --fix.
- “doctor: network unreachable”: confirm proxy and firewall allow outbound to
-
CI-friendly installation (example: GitHub Actions)
Yaml -
Continuous setup validation
- Schedule weekly
doctorchecks in CI for dependency drift. - Incorporate
deepsite auditinto build pipeline for content best-practices.
Core Architecture & Model Integration
-
Inference pipeline overview • DeepSite v2 relies on a layered model strategy:
- Local embeddings store (SQLite + FAISS)
- Default AI engine: Fireworks AI v3 (configured via
--model=fireworks-v3) - Third-party LLM fallback (OpenAI GPT, Anthropic Claude) • Requests flow:
- User issues
deepsite generateorserve → /generate - CLI loads
.deepsite.yml - Query passed to local cache; hits bypass AI calls
- Misses routed through primary model → fallback chain
- Response templated & written to disk
-
Headless daemon & API modes • Start in daemon mode:
Bash• REST endpoints:
POST /generate• Payload:
• Response:JsonJsonGET /status• Returns health and usage metrics:JsonDELETE /cache• Clears embeddings and temporary files • Response:{ "status": "cache_cleared" }
• GraphQL schema (headless mode):
Graphql -
Default model configuration & fallback chain
- Configure primary/fallback in
.deepsite.yml:Yaml - CLI override:
Bash
- Fallback sequence algorithm:
- Attempt primary model call
- On network or rate-limit error, iterate through
fallbacks[] - On total failure, return HTTP 503 (daemon mode) or error code
- Configure primary/fallback in
-
Cursor UI micro-frontend
- Install:
Bash
- Integrate into existing web app (React example):
Js
- WebSocket handshake:
Js
- Install:
-
Plugin adapter system
- Discover installed adapters:
• Output:BashText - Add new adapter:
Bash
- Adapter lifecycle hooks:
Js
- Discover installed adapters:
-
CLI command reference
Text
Configuration & Customization
-
.deepsite.ymlschemaYaml• Validate schema before running:
Bash• Output (human):
Text -
Templating layer
- Default uses Handlebars syntax; supports:
{{title}},{{date}},{{#each items}}…{{/each}}- Custom helpers via
template.helpers.js:Js
- Reference in markdown:
Markdown
- Default uses Handlebars syntax; supports:
-
Plugin development and customization
- Create a new plugin scaffold:
Bash
- Directory structure:
Text- Example index.js:
Js
- Publish to npm:
Bash
- Create a new plugin scaffold:
-
Multi-language support
- Add languages in config:
Yaml
- Generate per-language output:
Bash
- Structure output:
Text - Add languages in config:
-
Advanced configuration commands
- Set a config value:
Bash
- Retrieve current setting:
Bash
- Reset to defaults:
Bash
- Set a config value:
-
Configuration migration helper
- Run config migration:
Bash
- Combined with
--dry-runto preview changes:Bash
- Run config migration:
Advanced Use Cases & Real-World Examples
-
CI/CD integration with audit reports
- Add audit step in GitHub Actions:
Yaml
- Audit output highlights:
- SEO issues (missing
<title>,<meta description>) - Accessibility flags (alt attributes, contrast ratios)
- Compliance warnings (deprecated HTML tags)
- SEO issues (missing
- Add audit step in GitHub Actions:
-
Performance tuning & caching strategies
- Enable persistent SQLite cache in production:
Yaml
- Use in-memory LRU for short-lived environments:
Bash
- Monitor cache stats via API:
Bash
- Enable persistent SQLite cache in production:
-
Deploying headless daemon behind proxy
- Nginx config snippet:
Nginx
- TLS via Let’s Encrypt:
Bash
- Nginx config snippet:
-
Integrating DeepSite into existing static-site pipeline
- Example with Eleventy (11ty):
- Add a pre-build script in
package.json:Json - Reference generated files in 11ty config:
Js
- Run:
Bash
- Add a pre-build script in
- Example with Eleventy (11ty):
-
Case study: migrating a corporate blog
- Source: InfoQ article “Scaling Content Ops with DeepSite v2” (2024)
- Steps followed:
- Initial audit of existing Markdown →
deepsite audit --dir=old-blog - Bulk migration:
deepsite migrate --from=1.x --to=2.x --dir=old-blog --output=migrated - Validation via
deepsite doctorin CI - Integration with enterprise LLM (Anthropic) using
--model=anthropic-claude-2 - Final audit and accessibility report generation
- Initial audit of existing Markdown →
-
Production readiness checklist
- ✅ Environment health:
deepsite doctor --fix - ✅ Config validation:
deepsite config validate - ✅ Audit reports:
deepsite audit --output=html - ✅ Load testing: simulate concurrent
/generatecalls - ✅ Monitoring & Alerts: wrap
/statusin Prometheus exporter
- ✅ Environment health:
-
Troubleshooting & best practices
- If model calls fail under load, increase retry count:
Yaml
- For large sites, shard cache by date:
Yaml
- Use
--verboseto trace plugin execution:Bash
- If model calls fail under load, increase retry count:






