I Built an AI Product Content Generator for Amazon Listings — Here's What I Learned
The Problem
Writing product listings for Amazon is tedious. For every new product, you need a catchy title, compelling bullet points, and a description that actually converts — all while keeping it consistent with your brand voice.
I found myself doing the same repetitive work: research the keywords, think of angles, write the copy, revise, repeat. So I built a tool to automate it.
What I Built
AI Product Content Generator — input your product name, features, and target audience, and get a complete Amazon listing ready to copy-paste.
🔗 Live demo: https://ai-product-content-generator.online
🐙 GitHub: https://github.com/davehe123/AI-Product-Content-Generator
Features
- Title Generation — keyword-optimized product titles based on your input
- Bullet Points — 5 structured bullet points highlighting key features and benefits
- Product Description — engaging long-form description with call-to-action
- 4 Languages — English, Chinese, Japanese, Korean
- Multiple Tones — persuasive, descriptive, fun, or professional
- Export to PDF — one-click download for your records
- Credit System — free tier with 3 generations, paid plans for heavier use
Tech Stack
This project was a good exercise in modern web infrastructure:
- Frontend: Next.js 15.5.2 with Tailwind CSS, deployed on Cloudflare Pages
- Backend: Cloudflare Workers (serverless, edge-deployed)
- AI: DeepSeek API for content generation
- Auth: Google OAuth 2.0
- Database: Cloudflare D1 (SQLite at the edge)
- Payments: PayPal subscriptions + one-time credits
The Architecture Pain Point
I originally tried to use Next.js API routes for the backend, but hit a wall — Next.js 15's API routes don't play well with Cloudflare Pages Edge Functions. Every API call returned 500.
The fix: move all backend logic to a separate Cloudflare Worker, and have the frontend call it directly via fetch(). It's actually cleaner architecturally — the frontend is a pure static site, the API is a standalone service.
Frontend (Next.js, static) → Cloudflare Worker (API) → DeepSeek API
↓ ↓
Cloudflare Pages Cloudflare D1
What I Learned
1. Static Export is Liberating
Building a "frontend only" Next.js app with output: 'export' forces you to keep your architecture clean. No server-side logic creeping into pages, no API routes mixed with UI code.
2. Edge Databases Change Your Mental Model
Cloudflare D1 is SQLite distributed globally. Queries are fast because they run close to the user, but you have to think carefully about write patterns and latency. For a read-heavy product listing tool, it's a great fit.
3. OAuth on Edge Requires Care
Google OAuth with a callback to a Cloudflare Worker URL works fine, but I ran into a few gotchas:
-
Response.redirect()returns an immutable Response — you can't set cookies after creating it - Base64 URL-safe encoding/decoding is different from standard base64
- Sessions need to be stored in D1, not in-memory (Workers are stateless)
4. Keep API Keys in Workers, Not Frontend
The frontend is public — anyone can read your JavaScript. All API calls that need secrets go through the Worker, which holds the keys server-side.
The Output Quality
Honest assessment: for straightforward products, the AI-generated copy is solid. For products with unusual specifications or niche terminology, you still need to edit. But that's true of any AI writing tool — the key is getting 80% of the work done so you can focus on refinement.
What's Next
- Shopify integration
- More platform templates (Etsy, eBay)
- Batch generation for multiple SKUs
- SEO keyword suggestions
Try It Out
The free tier doesn't require a credit card — just sign in with Google and you get 3 generations to play with.
👉 https://ai-product-content-generator.online
Built with Next.js, Cloudflare Workers, and DeepSeek. Questions or feedback welcome.
Top comments (0)