<pectus.ai/>
./pectus.ai — builder framework · self-hosted · MIT

For end users

Apps

An app is a folder under pectusai/apps/ with an APP.md that declares its type (inbound or outbound) and how it plugs into Pectus. Apps are activated per workspace from the CMS Apps surface (/apps).

Inbound apps pull data into your Supabase. Some hit a vendor API (GA4, Search Console, Google Ads, Meta, LinkedIn); some accept user-typed data (seed-keywords). The runner calls the app’s fetch.ts directly; the model is not invoked. After the fetch, an interpretation skill (apps/<app>/insights/SKILL.md) turns the raw rows into Insights that downstream skills consume.

Outbound apps publish content somewhere. The bundled content-insights is the only outbound app today; it builds a static Astro site from your articles and pages rows and commits the output to a GitHub repo your deploy target watches.

Bundled apps

  • content-insights — outbound. The bundled public site.
  • seed-keywords — inbound, manual. User-typed keywords as a starting signal.
  • ga4 — inbound. Google Analytics 4 metrics.
  • gsc — inbound. Google Search Console performance.
  • google-ads — inbound. Paid search performance.
  • meta — inbound. Paid social (Facebook + Instagram).
  • linkedin — inbound. Paid social (LinkedIn).

Adding your own

The apps spec is the contract. Inbound apps need fetch.ts, provision.ts, schema.ts, and an insights/SKILL.md. Outbound apps need build.ts and a cms_surfaces declaration in their APP.md if they contribute UI.