All projects
AdForge
AI ad copy generator. Enter a product brief and get platform-ready variants (headline, primary text, call to action) with live character-limit checks, generated through the Anthropic API.
Next.js, TypeScript, Anthropic API, Tailwind CSS
The problem
Writing ad copy per platform means fitting different character limits and tones every time. AdForge turns one brief into several ready-to-paste variants for the platform you pick.
My role
Responsibilities
Built the whole app: the brief form, the typed service layer, the prompt construction and response parsing, and the results UI.
Main workflows
- 1.A brief form collects product, audience, platform, tone and number of variants
- 2.The API route validates the brief, builds a prompt with the platform's limits included and calls the model
- 3.The model's JSON response is parsed into typed variants and shown as cards with copy buttons and live character counts
- 4.Each generation is saved in the browser so earlier briefs are one click away
Architecture
- A thin API route calls AdCopyService, which owns validation, prompt building and parsing, so the model provider can be swapped without touching the UI
- AnthropicClient is a minimal wrapper around the API and nothing else
- Platform limits live in one typed table, so adding a platform means adding one entry
- History is stored in localStorage (20 entries); there is no database in this MVP
Security and deployment
- The API key is read from a local environment file on the server and is never sent to the browser
- Briefs are validated before any model call, and errors are mapped to proper status codes