Echo/Docs

Growth and content workspace

Echo is a deployable product for growth, GTM, UGC, content creation, and product analytics — one admin dashboard and one machine API over a deployment-owned Postgres database.

What Echo owns#

A product team needs the same connected capabilities across web, mobile, desktop, and worker clients: sticky experiment assignment, first-party events, published onboarding journeys, content production, distribution, and outcome measurement. Echo owns those product decisions and records.

Clients render approved configuration and emit events; Echo owns assignment, the funnel, the published journey contract, and the durable record. The browser dashboard and the machine API are the same deployment and database—the difference is how a request proves who it is.

Each operator supplies its own sites, applications, database, credentials, provider routes, and infrastructure endpoints. Wisent's production values are one private deployment configuration, not product defaults.

Current surface#

  • Sticky adaptive experiment assignment served by GET /api/experiments/assign inside a single database transaction.
  • An onboarding control plane: product registry, immutable journey publication with a content SHA-256, activation and rollback, and canonical funnel state.
  • First-party analytics collection for web and mobile, with duplicate suppression and paid-ads attribution linking.
  • An admin dashboard for content generation (image, video, audio, meme, lipsync, LoRA), the asset and character library, social account automation, CRM and outreach, paid ads, trends and competitor research, and blog publishing.
  • A blog CMS with a public read API and cache invalidation pushed to the landing application.
  • 41 scheduled jobs declared in vercel.json, each an HTTP route under /api/cron/* authorized by a shared secret.
  • A bounded CLI and MCP server (wisent-ai/echo) over the same database, with one authenticated existing-profile setup command.
  • Echo Desktop provides native bounded operational views, account sync, and the same existing-profile setup operation.

Release dependency acquisition#

Echo Web pins @wisent/errors to the public HTTPS archive of its source commit. package-lock.json records the archive integrity. This package needs no SSH key, GitHub token or private bundle; API and dashboard consumers use the same installed package.

From the echo-web checkout, run ECHO_TEST_SUCCESS_EXIT="$SUCCESS_EXIT" node tests/release/error-package.mjs. The real journey uses an isolated home and empty npm cache, installs the locked package with npm ci, imports its JavaScript and checks a failure envelope. It then corrupts the isolated lockfile integrity and checks that npm refuses installation with EINTEGRITY and leaves no usable entry point. Reports under .build/error-package/run-*/ retain source identity, commands, exit statuses and installed-file evidence.

An unavailable archive, integrity mismatch, failed installation or unusable export fails the journey with the actual command output. This qualifies dependency acquisition only, not the complete web quality gate, application build, deployment or browser UI.