{
 "id": "14.6",
 "title": "Tools we use",
 "department": "People and ways of working",
 "department_slug": "people-and-ways-of-working",
 "direction": null,
 "branded": false,
 "status": "draft",
 "owner": "Param",
 "last_verified": "Mon Oct 26",
 "holds": "Every tool and account, and who has access",
 "urls": {
  "html": "https://handbook.joinsquareup.com/people-and-ways-of-working/tools-we-use",
  "markdown": "https://handbook.joinsquareup.com/people-and-ways-of-working/tools-we-use.md",
  "json": "https://handbook.joinsquareup.com/people-and-ways-of-working/tools-we-use.json"
 },
 "other_directions": [],
 "tldr": {
  "headline": "Every tool and account Brew depends on, listed for access control",
  "points": [
   {
    "icon": "box",
    "text": "Google Cloud runs the app; GitHub holds the code; Cloudflare fronts the handbook."
   },
   {
    "icon": "link",
    "text": "Inside the product: Gemini, treg, Apify, Resend, Slack, Meta, Shopify, Sloosh and Higgsfield."
   },
   {
    "icon": "warn",
    "text": "Who has access to which tool is not recorded anywhere yet."
   },
   {
    "icon": "lock",
    "text": "Proposed: team accounts on joinsquareup.com and a shared password manager."
   }
  ],
  "stat": null,
  "decide": "Who has access to what, and do we switch personal logins to team accounts?",
  "mood": "waiting"
 },
 "sources": [
  "brew origin/main a559de6: deploy.sh:37-42, tools/prod-env.sh:9-12, README.md 'Run it locally'",
  "brew/.wt-prod/docs/production.md:1-15, 66-77",
  "brand-directions/_tools/deploy-handbook.py:1-22, handbook/comments/server.mjs:1-15, .claude/skills/handbook-update/SKILL.md step 5",
  "memory brew-prototype-repo, brew-real-connectors, brew-apify-watch, brew-gemini-provider, brew-sloosh-finals (index line), brew-higgsfield-wiring (index line), brand-directions-2026-10-25, brew-qa-sweep-2026-10-19, brew-shopify-app-review (index line), brew-meta-app-review (index line), brew-handbook"
 ],
 "open_questions": [
  "**Who has access to what?** No source records it. Proposal: Param fills one access column per person this week; until then, assume only Param has admin on Google Cloud, Cloudflare, GitHub, Meta, Shopify Partners and Slack.",
  "**Move personal logins to team accounts?** treg and GitHub sit on personal accounts in our notes. Proposal: move treg, Cloudflare and GitHub to accounts on joinsquareup.com, with Param and one other admin each.",
  "**Use a password manager?** Proposal: yes, a team vault holding every login above, with Sai and Arvind invited."
 ],
 "parts": {
  "Answer": "This page lists every tool and account Brew depends on, what it is for and which account holds it, so access can be granted and taken away on purpose; who on the team has access to each is not recorded and is left to Param.",
  "Today": "### Build and run\n\n| Tool | For | Account or place | Source |\n|---|---|---|---|\n| Google Cloud | Cloud Run, Cloud SQL, Cloud Storage, Secret Manager, Vertex AI, Monitoring, Scheduler | project squareup-492617, billing \"SquareUp HQ\" | [src: brew/.wt-prod/docs/production.md:7-15] [src: memory brew-gemini-provider] |\n| Firebase Hosting and Firestore | Shared docs, handbook, handbook comments | same project | [src: brand-directions/_tools/deploy-handbook.py:14-22] [src: handbook/comments/server.mjs:4] |\n| Cloudflare | DNS for joinsquareup.com; Access in front of the handbook | not recorded | [src: memory brand-directions-2026-10-25] [src: brand-directions/_tools/deploy-handbook.py:2] |\n| GitHub | Code, private repo wulfor24/brew | wulfor24 | [src: memory brew-prototype-repo] |\n| Claude Code | Every building session, skills, hooks, scheduled runs | Param's Mac | [src: memory brew-handbook] |\n| Claude artifacts | Next, the to-do across every front | Param's claude.ai account | [src: .claude/skills/handbook-update/SKILL.md] |\n\n### Inside the product\n\n| Tool | For | Account or key | Source |\n|---|---|---|---|\n| Gemini on Vertex | Plays on Pro, everything else on Flash, images | Google credits | [src: brew/deploy.sh:23-29] [src: memory brew-gemini-provider] |\n| Anthropic | Claude, when credit allows | `ANTHROPIC_API_KEY` | [src: brew/deploy.sh:25-28] |\n| OpenAI | Media fallback | `OPENAI_API_KEY` | [src: brew/deploy.sh:42] |\n| treg | Outside data: SEO, social, ads, reviews | team squareup, key `brew-live` | [src: memory brew-apify-watch] |\n| Apify | Sources treg lacks: quick commerce, Indian marketplaces | Starter plan, `APIFY_TOKEN` | [src: memory brew-apify-watch] |\n| Resend | Team emails | `RESEND_API_KEY` | [src: brew/deploy.sh:42] |\n| Slack | Jam on Slack, approvals | app A0C98G07J1M in the joinsquareup workspace | [src: memory brew-real-connectors] |\n| Meta | Ads connector | app 1675538196856449 in the SquareUp business portfolio; App Review blocked on business verification | [src: memory brew-real-connectors] [src: memory brew-meta-app-review] |\n| Google sign-in, Ads and GA4 | Sign-in and connectors | OAuth clients \"SquareUp Cockpit Web\" and \"SquareUp Ads API Ingestion\" | [src: memory brew-prototype-repo] [src: memory brew-real-connectors] |\n| Shopify | Store connector; public app \"Brew\" submitted 21 Oct | Shopify Partners | [src: memory brew-shopify-app-review] |\n| Sloosh | Paid finals over MCP | staff connection per site | [src: memory brew-sloosh-finals] [src: brew/.wt-prod/docs/production.md:80] |\n| Higgsfield | Stills and video in the jam | `HF_API_KEY_ID`, `HF_API_KEY_SECRET` | [src: brew/deploy.sh:36-37] [src: memory brew-higgsfield-wiring] |\n| YouTube Data API, PageSpeed | Listening, site speed | `YOUTUBE_API_KEY`, `PAGESPEED_API_KEY` | [src: brew/deploy.sh:42] |\n\n### Working together\n\n| Tool | For | Source |\n|---|---|---|\n| Google Drive | Sai's QA sheet \"The Feed QA Master\" | [src: memory brew-qa-sweep-2026-10-19] |\n| This handbook and its comments | Planning, decisions, open questions | [src: memory brew-handbook] |\n| docs.joinsquareup.com | The simpler shared docs, for Sai | [src: memory brew-handbook] |\n\n### Brand work\n\n| Tool | For | Source |\n|---|---|---|\n| Vertex image models through gcloud | Character art for the five directions | [src: memory brand-directions-2026-10-25] |\n| ElevenLabs | Voices and sound cues, key in `ugc-factory/.env` | [src: memory brand-directions-2026-10-25] |",
  "Tomorrow": "| Item | Version | Tag |\n|---|---|---|\n| The tools above | v1 | Stays |\n| An access column per person, kept current | v1 | New, see Open |\n| Shared team accounts instead of personal logins for treg, Cloudflare and GitHub | v1 | Changes, see Open |\n| A password manager for the team | v1 | New, see Open |",
  "How we do it": "1. A new tool gets a row here and, if it holds a key, a row in [Secrets and keys](/ops-and-infrastructure/secrets-and-keys), on the day it is added.\n2. Granting access: give the role, then add the person to the access column.\n3. When someone leaves: remove every row's access the same day, then rotate any key they could read.",
  "Numbers": "| Metric | Definition | Where measured |\n|---|---|---|\n| Tools without an owner | Rows with no named owner | This page, Proposed |\n| Paid tools | Rows with a monthly charge | [Costs and quotas](/ops-and-infrastructure/costs-and-quotas), Proposed |",
  "Open": "1. **Who has access to what?** No source records it. Proposal: Param fills one access column per person this week; until then, assume only Param has admin on Google Cloud, Cloudflare, GitHub, Meta, Shopify Partners and Slack.\n2. **Move personal logins to team accounts?** treg and GitHub sit on personal accounts in our notes. Proposal: move treg, Cloudflare and GitHub to accounts on joinsquareup.com, with Param and one other admin each.\n3. **Use a password manager?** Proposal: yes, a team vault holding every login above, with Sai and Arvind invited."
 }
}