Build Your Own Tools.
Once you've shipped a few sites, you'll notice you do the same kinds of generative work over and over. Brand guides, workshop content, social captions, email blasts. You can build small AI-powered tools for any of it. Here's the recipe.
What "AI tool" means here
Not a giant AI app. Just a small, single-purpose web tool that:
- Has a form where you (or your client) put in some inputs
- Sends those inputs to Claude with a carefully written prompt
- Shows you Claude's response — formatted nicely, maybe downloadable as PDF or markdown
That's it. The tools I've built and used are all that simple. They live as static sites on Netlify, with one serverless function that talks to the Claude API.
Examples of what to build
Workshop content generator
Input: workshop topic, audience, duration. Output: a full lesson plan, talking points, exercises, slide outline. Built one of these for a yoga studio that runs themed workshops; the studio owner punches in "Inner Child Healing, 90 min, beginners" and gets a polished plan in 30 seconds.
Discovery brief synthesizer
Input: client form responses (paste from Google Form). Output: a draft strategy doc and brand guide. Speeds up the discovery → strategy step that's covered in Chapter 01.
Social caption pack
Input: blog post URL or pasted text. Output: 5 variations of social captions for Instagram, LinkedIn, and X. Different lengths, different tones.
Sitemap-from-goals
Input: client's goals, audience, and existing pages (if any). Output: a recommended sitemap with page-by-page goals and suggested CTAs. Useful for the planning phase from Chapter 02.
Color palette from a photo
Input: an uploaded photo. Output: a 5-color palette with hex codes pulled from the image, plus a suggested type pairing. Useful for kicking off brand work.
The architecture
Every tool above has the same shape:
Three files, basically: an index.html with the form and the result area, a script.js that wires up the form to the function, and a functions/generate.js that calls Claude.
The recipe
Pick a workflow you actually do repeatedly
The best tools come from your real work. If you've built three brand guides this year, build a brand guide generator. If you're constantly writing social captions, build a caption tool. Don't try to be everything to everyone. One workflow, done well.
Sketch the input and output
On paper or in a doc: what fields does the form have? What does the output look like? Do you want raw text, a styled HTML preview, a downloadable PDF? The clearer this is up front, the easier the build.
Get an Anthropic API key
Go to console.anthropic.com, create an account if you don't have one, generate an API key. Add a small amount of credit ($5–10 is enough to test). Treat the key like a credit card — never put it in code that gets pushed to GitHub.
Build the front end with Claude Code
Run claude in a new project folder and prompt:
Claude will scaffold the HTML, CSS, and front-end JS for you. Style it to match your brand if you want.
Build the serverless function
In your project, create a folder called netlify/functions/ and inside it a file generate.js. Ask Claude:
Claude will write the function. The skeleton looks roughly like this:
You'll also need a package.json with the Anthropic SDK as a dependency. Claude Code can scaffold that too.
Wire up the API key as an environment variable
Locally: create a .env file in the project root with ANTHROPIC_API_KEY=sk-.... Add .env to your .gitignore immediately so it never gets committed.
On Netlify: in your site's settings → Environment variables → add ANTHROPIC_API_KEY with your key. Netlify will inject it into the function at runtime.
Test locally with the Netlify CLI
Install the Netlify CLI:
Then in your project folder:
This runs your site locally with the function active. Test the form. If something breaks, ask Claude to debug — it can read the function and the front-end code.
Deploy
Push to GitHub. Connect to Netlify like you would for a static site (see Chapter 09). Netlify auto-detects the function and deploys it.
Visit your live URL. Submit the form. Get the AI-generated output back. You've shipped an AI tool.
Cost reality
For a tool you and a few clients use, costs are tiny:
- Anthropic API: Claude Sonnet runs around $3 per million input tokens and $15 per million output tokens. A typical tool generates a 500-token response from a 200-token prompt. That's ~$0.0001 per use — about a hundredth of a penny. You'd need to run the tool 10,000 times to hit $1.
- Netlify functions: Free tier includes 125,000 function invocations per month. Most personal tools never hit that.
- Hosting: Same as a static site — free on Netlify.
The trap is leaving the tool publicly accessible without rate-limiting. If a bot finds your form and starts hammering it, your Anthropic bill can climb. Add at least basic protection: require the user to enter a code, gate the tool behind Netlify's auth, or rate-limit by IP.
Resources to learn more
- docs.anthropic.com — Claude API documentation. Skim the "messages" section first.
- Netlify Functions docs — getting started with serverless functions on Netlify.
- @anthropic-ai/sdk on GitHub — the official Node/TypeScript SDK.
If any of this feels too technical, ignore this chapter for now. You don't need to build tools to use this whole playbook. But once you've done a few sites and you start noticing the patterns in your own work, this is where the leverage compounds.
What's next?
Nothing. You've finished the playbook. Go build something.
If anything in here helps you ship a site you're proud of, I'd love to hear about it — open an issue on the repo and tell me what you built.