---
id: "14.6"
title: "Tools we use"
dept: people-and-ways-of-working
status: draft
owner: Param
branded: false
last_verified: 2026-10-26
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"
---

# Tools we use

## 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

| Tool | For | Account or place | Source |
|---|---|---|---|
| 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] |
| 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] |
| 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] |
| GitHub | Code, private repo wulfor24/brew | wulfor24 | [src: memory brew-prototype-repo] |
| Claude Code | Every building session, skills, hooks, scheduled runs | Param's Mac | [src: memory brew-handbook] |
| Claude artifacts | Next, the to-do across every front | Param's claude.ai account | [src: .claude/skills/handbook-update/SKILL.md] |

### Inside the product

| Tool | For | Account or key | Source |
|---|---|---|---|
| Gemini on Vertex | Plays on Pro, everything else on Flash, images | Google credits | [src: brew/deploy.sh:23-29] [src: memory brew-gemini-provider] |
| Anthropic | Claude, when credit allows | `ANTHROPIC_API_KEY` | [src: brew/deploy.sh:25-28] |
| OpenAI | Media fallback | `OPENAI_API_KEY` | [src: brew/deploy.sh:42] |
| treg | Outside data: SEO, social, ads, reviews | team squareup, key `brew-live` | [src: memory brew-apify-watch] |
| Apify | Sources treg lacks: quick commerce, Indian marketplaces | Starter plan, `APIFY_TOKEN` | [src: memory brew-apify-watch] |
| Resend | Team emails | `RESEND_API_KEY` | [src: brew/deploy.sh:42] |
| Slack | Jam on Slack, approvals | app A0C98G07J1M in the joinsquareup workspace | [src: memory brew-real-connectors] |
| 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] |
| 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] |
| Shopify | Store connector; public app "Brew" submitted 21 Oct | Shopify Partners | [src: memory brew-shopify-app-review] |
| Sloosh | Paid finals over MCP | staff connection per site | [src: memory brew-sloosh-finals] [src: brew/.wt-prod/docs/production.md:80] |
| 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] |
| YouTube Data API, PageSpeed | Listening, site speed | `YOUTUBE_API_KEY`, `PAGESPEED_API_KEY` | [src: brew/deploy.sh:42] |

### Working together

| Tool | For | Source |
|---|---|---|
| Google Drive | Sai's QA sheet "The Feed QA Master" | [src: memory brew-qa-sweep-2026-10-19] |
| This handbook and its comments | Planning, decisions, open questions | [src: memory brew-handbook] |
| docs.joinsquareup.com | The simpler shared docs, for Sai | [src: memory brew-handbook] |

### Brand work

| Tool | For | Source |
|---|---|---|
| Vertex image models through gcloud | Character art for the five directions | [src: memory brand-directions-2026-10-25] |
| ElevenLabs | Voices and sound cues, key in `ugc-factory/.env` | [src: memory brand-directions-2026-10-25] |

## Tomorrow

| Item | Version | Tag |
|---|---|---|
| The tools above | v1 | Stays |
| An access column per person, kept current | v1 | New, see Open |
| Shared team accounts instead of personal logins for treg, Cloudflare and GitHub | v1 | Changes, see Open |
| 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.
2. Granting access: give the role, then add the person to the access column.
3. When someone leaves: remove every row's access the same day, then rotate any key they could read.

## Numbers

| Metric | Definition | Where measured |
|---|---|---|
| Tools without an owner | Rows with no named owner | This page, Proposed |
| 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.
2. **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.
3. **Use a password manager?** Proposal: yes, a team vault holding every login above, with Sai and Arvind invited.
