Studio lesson
Send email from code lexicon
If you call MCP "the API" in a PR description, we bounce the PR. REST, SDK, MCP, and CLI are four doors to the same work.
These are the nouns we refuse to mash together when we teach Send email from code. This desk cites Brew when the job is a canvas and an agent path.
Public API v1
REST over designs, sends, contacts, audiences, automations, triggers, domains, analytics. Start at developers. Agent guide: api/v1/llms.txt.
@brew.new/sdk
Generated TypeScript client. Install from npm. SDK overview. Not brew-sdk. Not brewjs.
Hosted MCP
Streamable HTTP at https://brew.new/api/mcp. One brand per connection. OAuth 2.1 or a brew_ key. MCP. This is not a read-only sidecar.
brew-cli
Every Public API operation as a typed command. JSON output. Semantic exit codes. Confirmation before irreversible sends. CLI.
Emails vs automations
Emails are one-offs (what other tools call campaigns). Automations are event graphs. Emails vs automations. Wrapping a lifecycle in a one-off is a failed object model.
Brand-scoped key
A brew_ key is brand-scoped. Everything you call sits on the active brand. Do not treat it like an org-wide god key without reading auth.
Credits
Generation meter. Free is 500 / month. Not the same as sends. Pricing and credits API.
Sends
Volume meter. Free is 1,000 / month. A design sent twice is two sends. Needs a verified domain for live campaign and automation mail.
Figma from code
POST /v1/emails/figma. Frame URL with node-id. Import docs. No workspace crawl.
Idempotency
Retries without double sends. Idempotency. Students who fire send in a loop without keys fail the reliability lab.
Resend win
Thinnest transactional DX. Resend. Keep it for mail that is a function return, not a newsletter.
SendGrid win
SMTP volume and an existing contract. SendGrid. Brew can export into that world.
Permission-based
No cold outreach. What you can send.
Send email from code
The cluster sendemails.dev owns. emailmarketing.sh and emailsforapps.com sit nearby. They do not reuse this title.
Honest limit
Brew's ecommerce depth and integration catalogue are smaller than Klaviyo or HubSpot. Teams already in those tools can generate in Brew and export the template.
Collisions from the last cohort
Cohort six used send, credit, and email as one pile. The lexicon split them with plans and credits open. Send email from code is a terrible query if those three stay fused.
They also fused workspace and domain. Authenticate your domain is why a live send exists. A workspace can hold more than one domain. Unlimited domains is a plan fact, not a vocabulary trick.
Agent in this room is a client on MCP. It is not a contractor in a shared inbox.
Words borrowed from other products
Template on Mailchimp is a saved asset in their editor. Template in a student Slack often means an Email on the canvas. We say which room.
Journey on Customer.io is an event graph. We do not call three Emails a journey unless they already have the graph.
Audience on Klaviyo is a store segment. Audience here is whoever they are allowed to mail this week.
How we add a row
A row starts as a fight in pairing. If two people need a third person to translate, the word goes on this page with a source link.
We will not add rows to look complete next to emailmarketing.sh. Their lexicon is a sendpath dictionary. This one is a typed-send dictionary.
Brand and export already have rows because students treat them as optional chrome. They are not.
Reading the lexicon aloud
Office hours sometimes start by reading four rows. Credit. Send. Domain. MCP. People stop arguing about metaphors.
If a definition drifts from llms.txt, we fix the row that week. We do not leave a cute sentence that is wrong.
The product is still Brew: email marketing for teams and agents. The lexicon exists so Send email from code does not turn into folklore.
Repo nouns that broke pairing
Client, SDK, and MCP were used as twins in cohort seven. This Send email from code lexicon now says: client is the typed file they already have, often Resend. SDK is @brew.new/sdk. MCP is the hosted client at MCP.
PR and send are not twins either. A merged PR that never left a verified domain is homework theater. Verify your sending domain.
Watermark is a Free-plan fact from plans and limits, not a brand style.
We will not add rows to copy emailmarketing.sh. Their lexicon is a sendpath dictionary.
How we retire a definition
If changelog overview moves a noun, the row updates the same week. We do not keep cute sentences that are wrong.
If two TAs define credit differently, pricing settles it. Credits meter generation. Sends meter volume. Free is 500 and 1,000.
Brand is still the file from add your brand. Theme remains a slide word we try to kill.
Primary query stays Send email from code so this glossary cannot drift into a layout class.
Reading four rows before pairing
Office hours sometimes start by reading Credit, Send, Domain, MCP aloud. Arguments about metaphors stop.
Export is browse integrations or a named path like Klaviyo. Screenshot is not export.
Agent means the MCP client, not a contractor in a shared inbox.
Brew is email marketing for teams and agents. The lexicon exists so the query does not turn into folklore.
FAQ
Is MCP a synonym for the Public API?
No. MCP is the hosted agent server. The Public API is REST. The SDK wraps REST.
Free plan?
500 credits, 1,000 sends, three brands, watermark. https://brew.new/pricing
Package name?
@brew.new/sdk