Templates / Generate SEO-optimized PWA website with Google Gemini and deploy to S3

Generate SEO-optimized PWA website with Google Gemini and deploy to S3

Needs changes

by Oka Hironobu ✓ · 41 views · created 2025-12-27 · Content Creation, Multimodal AI

Needs changes. This template uses 1 thing(s) that n8n 3.0 removes: Convert to/from binary data. 1 breaking item(s) found. Static check, last run 2026-10-19.

What to replace before upgrading

Removed in 3.0Replace with
Convert to/from binary data
Convert to Binary
Convert to File or Extract from File

Nodes used (7)

Basic LLM ChainGoogle Gemini Chat ModelAWS S3Gmail

What it does

Generate SEO-Optimized PWA Website with AI and Deploy to S3 Who's it for This workflow is designed for agencies, freelancers, and businesses who want to generate production-ready static websites with built-in SEO optimization and PWA (Progressive Web App) capabilities — all without manual coding. It is best suited for users who need landing pages, portfolios, event pages, or client microsites that are mobile-friendly, SEO-optimized, and installable as apps on any device. What it does This workflow collects website requirements via an n8n form, uses Google Gemini AI to generate a complete HTML page with SEO metadata and PWA components (service worker, manifest, offline support), assembles all files, uploads them to AWS S3, and sends the published URL via email. Unlike basic AI website generators, this workflow produces three separate AI-generated outputs that are assembled into a complete, deployable package: - ✅ SEO-optimized meta tags, Open Graph, and structured data (Schema.org) - ✅ PWA manifest + service worker for offline support and "Add to Home Screen" - ✅ Responsive, single-page website with embedded CSS and JavaScript - ✅ All files deployed as a cohesive package to S3 How it works 1. Website Request Form — User fills out requirements (name, purpose, colors, content, keywords). 2. Process Form Data — Workflow structures the input for AI processing. 3. Generate SEO Metadata (Gemini AI) — Creates meta tags, Open Graph tags, Twitter cards, and JSON-LD structured data based on the site's purpose and keywords. 4. Generate Website HTML (Gemini AI) — Produces a complete, responsive HTML/CSS/JS page incorporating the SEO metadata. 5. Generate PWA Components — Creates manifest.json and service-worker.js for offline capability and app-like behavior. 6. Assemble All Files — Merges HTML, manifest, and service worker into a deployment-ready package. 7. Convert to Binary — Prepares all files for S3 upload. 8. Upload to S3 — Deploys all files (index.html, manifest.json, sw.js) with proper content types. 9. Build Response — Constructs the live URL and deployment summary. 10. Send Confirmation Email — Delivers the live URL, SEO report, and PWA installation instructions to the user. Requirements To use this workflow, you will need: - A Google Gemini API key (Gemini 1.5 Flash or Pro recommended) - An AWS account with S3 access - An S3 bucket configured for static website hosting - A Gmail account for sending confirmation emails (or replace with another email service) AWS Setup Guide Step 1: Create an IAM User for n8n 1. Go to AWS Console → IAM → Users → Create user 2. User name: n8n-s3-uploader 3. Attach the following custom policy: json { "Version": "2012-10-17", "Statement": { "Sid": "S3WebsiteUpload", "Effect": "Allow", "Action": "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:ListBucket" , "Resource": "arn:aws:s3:::YOURBUCKETNAME", "arn:aws:s3:::YOURBUCKETNAME/" } } 4. Create access key → Select "Application running outside AWS" 5. Save the Access Key ID and Secret Access Key for n8n credential setup Step 2: Create an S3 Bucket 1. Go to AWS Console → S3 → Create bucket 2. Bucket name: Choose a globally unique name (e.g., my-ai-websites-12345) 3. Region: Select your preferred region 4. Object Ownership: Select "ACLs enabled" → "Bucket owner preferred" 5. Block Public Access: Uncheck "Block all public access" and acknowledge the warning 6. Create bucket Step 3: Enable Static Website Hosting 1. Go to your bucket → Properties tab 2. Scroll to "Static website hosting" → Edit 3. Enable static website hosting 4. Index document: index.html 5. Error document: index.html (for PWA routing) 6. Save changes 7. Note the bucket website endpoint URL (e.g., http://YOURBUCKETNAME.s3-website-REGION.amazonaws.com) Step 4: Add Bucket Policy for Public Access 1. Go to your bucket → Permissions tab 2. Scroll to "Bucket policy" → Edit 3. Paste the following policy: json { "Version": "2012-10-17", "Statement": { "Sid": "PublicReadGetObject", "Effect":

View the original on n8n.io → Check your own copy

Get the weekly “what broke” email

New templates, newly broken ones, and n8n release changes. One short email a week.

Form not loading? Subscribe here.