Docs
    App Growth AgentUpdated Jul 13, 2026MD

    Project status

    Markdown file

    docs/STATUS.md

    Project status

    This is the single source of truth for “where are we” + “what’s next”.

    Quick resume (90 seconds)

    • What this is: Shopify app growth agent micro‑SaaS (lead discovery → compliant outreach → install/value telemetry → review prompting).
    • Primary loop: ingest events → recompute activation → decide prompt; plus campaign ticks to discover/compose/send outreach.
    • Where to start: scan In progress, then execute Next up top-to-bottom.

    Current focus

    • Milestone: v0.1 “end-to-end loop working locally”
    • Goal: run POST /api/agent/run, approve drafts (if needed), see outbound sends recorded, ingest telemetry, and see activation/prompt decisions.

    Deployment plan (now → later)

    Recommendation

    Keep the same production shape you’ll scale with (web + worker + Postgres + Redis/Key Value) and start on the smallest tier that supports it. This avoids refactoring the queue/worker architecture later.

    Phase 0: “Live testing” (minimal change, low cost)

    • Platform: Render Blueprint via render.yaml (root)
    • Services
      • Web (app-growth-agent-web): start on free (OK for manual testing; note cold starts)
      • Worker (app-growth-agent-worker): starter required (Render doesn’t support free workers)
      • Postgres: start on free (upgrade if you hit limits)
      • Key Value (Redis): start on free
    • Migrations: prisma migrate deploy runs at process start (free tier doesn’t support preDeployCommand)
    • Project grouping: optional. Some free workspaces are limited to one Render Project; if you already have a project, keep these resources ungrouped until you upgrade the workspace or remove the other project.

    Phase 1: “Real webhooks + reliability”

    • Upgrade Web to starter to avoid cold starts (Shopify webhooks + dashboards feel much better).
    • Add a scheduler (Render cron / external cron) to call POST /api/agent/run.
      • Current plan: Render Cron (app-growth-agent-cron) hits https://app-growth-agent-web.onrender.com/api/agent/run

    Phase 2: “Scale”

    • Increase plans (web/worker) and upgrade Postgres/Key Value as needed.
    • Consider splitting environments (staging/prod) and enabling previews.

    What’s true right now

    • Web: Next.js App Router UI pages (/, /campaigns, /leads, /approvals, /installs, /context, /runs).
    • UI system: Tailwind CSS v4 + shadcn base components (cards, buttons, badges, inputs).
    • Worker: BullMQ worker processes CAMPAIGN_TICK, RECOMPUTE_INSTALL, MESSAGE_SEND.
    • Agent orchestration: LLM-driven multi-step pipeline with AgentRun/AgentStep traces + context packs.
    • DB: Prisma schema + orchestration models exist; Postgres required.
    • Redis: required for BullMQ.
    • Auth: Approvals now require admin login (NextAuth Credentials).
    • Outreach: Reddit via snoowrap; email via EMAIL_PROVIDER (Postmark default, Resend supported).

    In progress

    • Agent orchestration research: confirm best practices for multi-agent flows and tool use.
    • UI cleanup: convert remaining pages to shadcn/Tailwind styles.

    Next up (do these next)

    1. Research agent orchestration
      • Review OpenAI Cookbook + Agents/Agent Builder docs + orchestration guidance
      • Summarize recommended patterns for planner/critic/tool separation
    2. Verify shadcn + Tailwind v4 setup
      • Confirm @config + @import "tailwindcss" flow is stable
    3. Exercise core loop with orchestration
      • Create/confirm an active campaign
      • Call POST /api/agent/run
      • Approve drafts in /approvals (if manual approval required)
    4. Telemetry loop
      • Send sample events to /api/webhooks/shopify-events
      • Verify ActivationMetric updates and ReviewPrompt creation logic

    Risks / sharp edges

    • Connector credentials: outreach requires env vars set in the environment where the worker runs (see docs/INFRA_SETUP.md).
    • Auth: approvals require admin login; ensure ADMIN_EMAIL/ADMIN_PASSWORD are set.
    • Ops: cron is host-specific (Vercel via vercel.json, or Render Cron if you deploy web on Render).
    • Render free tier: web services can cold-start after inactivity; consider starter for webhook reliability.

    Open questions

    • Outreach channel: Reddit + email are now selected (see ADR).
    • Email provider: Postmark + Resend are both supported; confirm which you want as primary.
    • Review prompting: exact copy/versioning + Shopify review policy constraints to codify.

    Pointers

    • Today’s handoff: docs/handoffs/2026-02-04.md
    • Architecture: docs/ARCHITECTURE.md
    • Runbook: docs/RUNBOOK.md
    • Decision: docs/decisions/ADR-2026-02-03-outreach-channels.md