External Services
We use several external services for development, deployment, and operations. This page explains what each is and why we use it.
Linear
- What: Issue tracking and project management.
- Why: We drive work from Linear issues: branches, commit messages, and PRs reference issue keys. The
linear:workonflow creates a branch and optional plan from an issue; rules enforce “Refs LED-XXX” or “Fixes LED-XXX” in commits. Integration keeps status in sync when PRs merge.
GitHub
- What: Source control, PRs, Actions (CI), and (optionally) GitHub API for automation.
- Why: Code and CI live here. We use a personal access token for
gh(e.g.PERSONAL_GITHUB_TOKEN) so PR creation and API calls work regardless of org vs personal auth. Rules and docs spell this out so the assistant uses the right token.
Render
- What: Hosting for the app and the docs site (static site).
- Why: Simple deploy from
main; we have deploy scripts and an MCP server so we can reason about services and logs from Cursor.render.yamldefines the services; docs deploy on changes todocs/,docs-site/, or*.documentation.md.
Mongo Atlas (MongoDB)
- What: Managed MongoDB for data.
- Why: Primary database for the app. Local dev can use a local MongoDB (e.g. via Docker); production uses Atlas. Connection and config are documented in CONFIG and env conventions.
Datadog
- What: Observability (metrics, APM, logs).
- Why: When enabled, we get visibility into production behavior. We document how to use it in runbooks or ops docs so the team (and the assistant) know where to look for diagnostics.
Sentry
- What: Error tracking and performance.
- Why: Captures exceptions and (optionally) performance data so we can fix issues quickly. Adapters or middleware send errors to Sentry; we keep the integration minimal and documented.
Notion
- What: Docs and wikis (optional).
- Why: We’ve used it for planning and specs. We’re considering deprecating Notion in favor of in-repo docs (this site,
docs/, plans indocs/plans/). If we remove Notion, we’ll update this section and any scripts that depend on it.
Others
As we add services (e.g. Stripe, SendGrid, Discord bot hosting), we’ll add a short “What / Why” here so the project brain stays clear. The assistant can use this page to understand where external state lives and how it’s used.