Building Digital Products for Etsy with Claude Code
Zero inventory, infinite margin. How I use Claude Code to generate Etsy digital products — budget trackers, planners, templates — at scale.
Digital products on Etsy have one property that physical products don’t: you build them once and sell them forever. No inventory. No shipping. No supplier negotiations. No customs paperwork. After the initial creation, your cost of goods sold is literally zero.
I’ve been studying this space for months. This tutorial covers what sells, how I use Claude Code to build products, and the economics that make it work.
The Numbers Are Real
I’ve analyzed top sellers in the digital products category. Here are two anonymized examples from publicly visible Etsy storefronts:
Seller A — 147,000 sales across 48 SKUs. Products priced between $5 and $10. Do the math: even at an average of $5, that’s $735K+ in gross revenue. One person. No employees. The products are Excel and Google Sheets templates — budget trackers, meal planners, project management tools.
Seller B — 153,000 sales across 225 SKUs. Higher price point, $10 to $17 per item. The catalog is deeper but follows the same pattern: customizable spreadsheet templates and PDF planners. At an average of $12, that’s over $1.8M gross.
These aren’t rare outliers. Search Etsy for “budget tracker template” and sort by bestseller. You’ll find dozens of sellers with 10K+ sales. The market is large, growing, and nowhere near saturated because new life events create new template needs every year. People get married, have babies, start businesses, buy homes, begin fitness journeys. Each milestone needs a planning template.
Three Paths to AI-Assisted Creation
There are multiple ways to use AI for building Etsy digital products. I’ve tried all three.
Path 1: Claude Code + Python Scripts
This is my preferred approach. Claude Code writes a Python script that generates the product file. The script uses openpyxl for Excel workbooks, python-pptx for presentations, or raw file generation for CSVs and markdown-to-PDF conversions.
The advantage is scale. One script can generate dozens of product variants — different color schemes, different layouts, different themes — without manual work. You version-control the scripts in git, so every product is reproducible and updatable.
Path 2: Claude for Excel Plugin
If you don’t code, the Claude for Excel plugin lets you describe what you want in natural language. “Create a monthly budget tracker with income categories, expense categories, a summary dashboard, and conditional formatting that highlights overspending.” Claude builds it directly in Excel. No Python needed.
The limitation: one product at a time, manually. Fine for your first 5 products. Not scalable to 50.
Path 3: MCP Server Bridge
For power users who want real-time bidirectional editing — Claude Code reads an existing template, modifies specific cells, and writes back — you can set up an MCP server that wraps Excel operations. This is advanced and mostly useful when you’re iterating on complex templates that already exist.
I’ll focus on Path 1 for the rest of this tutorial.
Building a Budget Tracker: Step by Step
Here’s a real workflow. I ask Claude Code to generate a monthly budget tracker in Excel.
First, the prompt I give Claude Code:
Write a Python script using openpyxl that generates a monthly budget
tracker Excel file. Requirements:
- 12 monthly tabs + 1 annual summary tab
- Each month: income section (salary, freelance, other),
expense categories (housing, food, transport, utilities,
entertainment, health, savings, other)
- Auto-sum formulas for each category
- Conditional formatting: green if under budget, red if over
- Annual summary: pulls totals from each monthly tab
- Clean formatting: headers in bold, alternating row colors,
currency format, column widths auto-fitted
- Output: budget-tracker-2026.xlsx
Claude Code generates a script like this (shortened for clarity):
import openpyxl
from openpyxl.styles import Font, PatternFill, Alignment, numbers
from openpyxl.formatting.rule import CellIsRule
from openpyxl.utils import get_column_letter
MONTHS = [
"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
]
INCOME_CATEGORIES = ["Salary", "Freelance", "Side Business", "Other Income"]
EXPENSE_CATEGORIES = [
"Housing/Rent", "Groceries", "Transport", "Utilities",
"Entertainment", "Health/Medical", "Savings/Investment", "Other"
]
HEADER_FILL = PatternFill(start_color="1F4E79", fill_type="solid")
HEADER_FONT = Font(color="FFFFFF", bold=True, size=11)
GREEN_FILL = PatternFill(start_color="C6EFCE", fill_type="solid")
RED_FILL = PatternFill(start_color="FFC7CE", fill_type="solid")
def create_monthly_sheet(wb, month_name):
ws = wb.create_sheet(title=month_name)
# Income section
ws["A1"] = "INCOME"
ws["A1"].font = Font(bold=True, size=14)
ws["A2"] = "Category"
ws["B2"] = "Budgeted"
ws["C2"] = "Actual"
ws["D2"] = "Difference"
for i, cat in enumerate(INCOME_CATEGORIES, start=3):
ws[f"A{i}"] = cat
ws[f"D{i}"] = f"=C{i}-B{i}"
ws[f"B{i}"].number_format = '$#,##0.00'
ws[f"C{i}"].number_format = '$#,##0.00'
ws[f"D{i}"].number_format = '$#,##0.00'
income_end = 2 + len(INCOME_CATEGORIES)
total_row = income_end + 1
ws[f"A{total_row}"] = "Total Income"
ws[f"A{total_row}"].font = Font(bold=True)
ws[f"B{total_row}"] = f"=SUM(B3:B{income_end})"
ws[f"C{total_row}"] = f"=SUM(C3:C{income_end})"
# ... expense section follows same pattern ...
return ws
def create_workbook():
wb = openpyxl.Workbook()
wb.remove(wb.active) # Remove default sheet
for month in MONTHS:
create_monthly_sheet(wb, month)
# Annual summary tab pulls from each month
# ... summary logic ...
wb.save("budget-tracker-2026.xlsx")
if __name__ == "__main__":
create_workbook()
Claude Code writes the full script, runs it, and I have a polished Excel file in seconds. The real script is 150-200 lines with complete formatting, conditional rules, and cross-sheet references. I showed the skeleton here to keep it readable.
Generating Variants at Scale
Here’s where Path 1 shines. Once you have the base script, generating variants is trivial:
COLOR_THEMES = {
"ocean": {"header": "1F4E79", "accent": "2E86C1"},
"forest": {"header": "1E5631", "accent": "2ECC71"},
"sunset": {"header": "922B21", "accent": "E74C3C"},
"lavender": {"header": "6C3483", "accent": "AF7AC5"},
"minimal": {"header": "2C3E50", "accent": "95A5A6"},
}
for theme_name, colors in COLOR_THEMES.items():
create_workbook(
theme=colors,
filename=f"budget-tracker-2026-{theme_name}.xlsx"
)
Five color variants from one script. Each one is a sellable product or a bundle option. Buyers love choosing their color scheme. It costs you zero extra effort.
Product Ideas That Actually Sell
Not all templates are created equal. Based on my research into Etsy bestseller data, these categories consistently perform:
High demand, low complexity: Budget trackers, habit trackers, meal planners, reading logs, password organizers. These can be single-sheet products. Price them at $3-5.
Medium demand, medium complexity: Wedding planners, project management templates, inventory trackers, content calendars, fitness logs with progress charts. Multi-sheet workbooks with formulas and conditional formatting. Price at $8-15.
Lower demand, high complexity: Small business bookkeeping bundles, customizable CRM spreadsheets, rental property management packages, teacher gradebooks with weighted calculations. These take real domain knowledge to get right. Price at $15-25.
The sweet spot for a beginner: start with budget trackers and habit trackers. They’re simple to build, easy to test, and the search volume on Etsy is enormous. Once you have revenue flowing, move into the medium-complexity category where margins are better.
The Quality Checklist
Before listing any digital product on Etsy, I run through this:
Professional formatting. Consistent fonts, aligned columns, proper cell padding. No default Calibri 11pt. Use clean sans-serif fonts at 10-11pt for data and 14-16pt bold for headers.
Print-ready layout. Set print areas, page breaks, and margins. Many buyers print these. If columns get cut off, you’ll get a 1-star review.
Instructions tab. Include a “How to Use” sheet first. Explain what each column means and which cells are editable vs formula-driven. Buyers aren’t spreadsheet experts.
Multiple color variants. Bundle 3-5 color options. Perceived value goes up, your effort stays flat.
Editable fields clearly marked. Lock formula cells with cell protection. Add a light yellow background to input cells so buyers never accidentally break a formula.
Pricing Strategy
I’ve analyzed pricing across 200+ top-selling digital product listings:
| Product type | Price range | Sweet spot |
|---|---|---|
| Single-sheet template | $2-5 | $3.50 |
| Multi-sheet workbook | $5-12 | $8 |
| Themed bundle (3-5 variants) | $8-18 | $12 |
| Comprehensive package | $15-30 | $19 |
Don’t price at $1. Etsy’s $0.20 listing fee + 6.5% commission eats 27% of a $1 sale. At $3.50, fees drop to 12%. Don’t price above $25 unless the product genuinely justifies it — buyers will compare to a $5 alternative and need a clear reason to pay 5x more.
The Flywheel
Here’s the business model in one loop:
- Use Claude Code to generate a product script (2-3 hours for v1)
- Run the script to create the Excel/PDF file (seconds)
- Generate 3-5 color/theme variants (seconds)
- List on Etsy with mockup images and descriptions (30 minutes)
- Revenue from sales funds more product development
- Repeat from step 1
The first product takes longest because you’re setting up the tooling. Product #2 reuses 60% of the code. By product #5, you’re shipping new templates in under an hour.
I version-control every generation script in git. Regenerate any product instantly, update formulas across all variants at once, track exactly what changed between v1 and v2. The sellers pulling $700K+ from 48 SKUs didn’t build each product by hand. They built a system. Claude Code is how I’m building mine.