π¨ Visual Theme Builder β Drag-and-drop Shopify theme editor with AI-powered layout suggestions, live preview, and one-click export to production-ready Liquid code.
ShopifyThemeForge is a modern visual theme builder that makes Shopify theme development accessible to everyone. Whether you're a designer who wants to prototype quickly or a developer who wants to speed up theme creation, ThemeForge provides an intuitive drag-and-drop interface to build beautiful Shopify themes without writing Liquid code manually. It exports production-ready Liquid code with AI-powered layout suggestions and direct Shopify sync.
- π― Drag-and-Drop Interface β Intuitive section and element placement
- π 12-Column Grid System β Flexible, responsive layout grid
- π¨ Style Editor β Visual editors for colors, typography, and spacing
- π± Responsive Preview β Real-time desktop, tablet, and mobile views
- π Undo/Redo β Full history with keyboard shortcuts (Cmd/Ctrl+Z)
- π Template Library β Start from professionally designed templates
- π€ Layout Suggestions β AI recommends optimal layouts based on content type
- π¨ Color Palettes β Auto-generated harmonious color schemes
- βοΈ Copywriting β AI generates product descriptions, headings, CTAs
- πΌοΈ Image Suggestions β AI suggests relevant stock images from Unsplash
- π Conversion Tips β AI highlights opportunities to improve conversions
- π€ Liquid Export β One-click export to production-ready Liquid templates
- π ZIP Download β Download as Shopify-installable theme .zip file
- π GitHub Sync β Push directly to GitHub repositories
- π¦ Theme Kit β Integration with Shopify Theme Kit for CLI deployment
- π Hot Reload β Local development with live updates
- π¨ CSS Export β Export custom CSS for further customization
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ShopifyThemeForge β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β React Frontend β β
β β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββββββββ β β
β β β Canvas β β Toolbar β βInspector β β Layers β β β
β β β Editor β β Panel β β Panel β β Panel β β β
β β β β β β β β β β β β
β β β Drop Zoneβ βComponent β β Style β β Component β β β
β β β + Grid β β Library β β Props β β Tree β β β
β β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββ β
β β State Management (Zustand) β β
β β β’ Page Structure & Component Tree β β
β β β’ Styling State & Theme Variables β β
β β β’ History (Undo/Redo Stack) β β
β β β’ Selection State β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββ β
β β Service Layer β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β β
β β β Theme β β Liquid β β AI Service β β β
β β β Exporter β β Compiler β β (Layout, Colors, Copy) β β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β β
β β β GitHub β β Shopify β β Template β β β
β β β Service β β Deploy β β Library β β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββ β
β β Output Layer β β
β β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββββββββ β β
β β β Liquid β β Theme β β GitHub β β Shopify β β β
β β β Code β β ZIP β β Push β β Deploy β β β
β β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# Clone the repository
git clone https://github.com/moggan1337/ShopifyThemeForge.git
cd ShopifyThemeForge
# Install dependencies
npm install
# Copy environment variables
cp .env.example .env
# Start the development server
npm run dev
# Open http://localhost:3000 in your browser# 1. Open http://localhost:3000 in your browser
# 2. Start a new theme or select a template:
# - Minimal Storefront
# - Fashion Boutique
# - Electronics Store
# - Furniture Showroom
# - Blank Canvas
# 3. Drag sections from the left panel onto the canvas
# 4. Customize styles in the Inspector panel
# 5. Export when done:
npm run export:zip # Download as ZIP
npm run export:github # Push to GitHub
npm run deploy:shopify # Deploy directly to ShopifyDrag these section types from the left panel onto the canvas:
| Section | Description |
|---|---|
| Header | Logo, navigation, search, cart icon |
| Hero Banner | Large image/video with headline and CTA |
| Product Grid | Grid of product cards |
| Featured Collection | Curated product collection |
| Testimonials | Customer reviews carousel |
| FAQ | Accordion-style questions |
| Newsletter | Email signup form |
| Footer | Links, social icons, copyright |
| Custom HTML | Embed custom HTML/Liquid |
Select any element and use the Inspector panel to edit:
- Typography β Font family, size, weight, line-height, letter-spacing
- Colors β Background, text, borders, shadows
- Spacing β Margin, padding, gap
- Effects β Box shadows, border radius, transitions
- Layout β Width, max-width, alignment, position
# Select a section and click "AI Suggestions"
# The AI will analyze your content and suggest:
# - Optimal image sizes and aspect ratios
# - Color contrast improvements for accessibility
# - Typography hierarchy improvements
# - Conversion-optimized section ordering
# - A/B testing recommendationsshopify-theme-forge/
βββ src/
β βββ app/
β β βββ page.tsx # Main editor page
β β βββ layout.tsx # Root layout
β β βββ globals.css # Global styles
β βββ components/
β β βββ canvas/
β β β βββ Canvas.tsx # Main canvas editor
β β β βββ Grid.tsx # 12-column grid overlay
β β β βββ SelectionBox.tsx # Selection handles
β β β βββ DropZone.tsx # Drop target indicator
β β βββ panels/
β β β βββ Toolbar.tsx # Top toolbar
β β β βββ Inspector.tsx # Style editor panel
β β β βββ Layers.tsx # Component tree view
β β β βββ Components.tsx # Draggable component library
β β βββ elements/
β β β βββ Section.tsx # Section wrapper
β β β βββ Block.tsx # Content block
β β β βββ ...
β β βββ shared/
β β βββ Button.tsx
β β βββ Input.tsx
β β βββ ColorPicker.tsx
β βββ lib/
β β βββ liquid/
β β β βββ compiler.ts # Liquid code generation
β β β βββ templates/ # Liquid template snippets
β β β βββ schema.ts # Section schema builder
β β βββ ai/
β β β βββ suggestions.ts # AI layout suggestions
β β β βββ colors.ts # AI color palette generation
β β β βββ copy.ts # AI copywriting
β β βββ export/
β β βββ zip.ts # ZIP file generation
β β βββ github.ts # GitHub integration
β β βββ shopify.ts # Shopify deploy
β βββ stores/
β β βββ editorStore.ts # Zustand store for editor state
β β βββ historyStore.ts # Undo/redo history
β βββ types/
β βββ editor.ts # Editor type definitions
β βββ theme.ts # Theme/component types
βββ public/
β βββ templates/ # Starter templates
β βββ minimal.json
β βββ fashion.json
β βββ electronics.json
βββ styles/
β βββ globals.css
βββ package.json
- Clean, product-focused design
- Maximum whitespace utilization
- Quick add-to-cart buttons
- Instagram feed integration
- Perfect for: Small brands, artisans, boutique stores
- Editorial magazine-style layout
- Large hero photography
- Lookbook sections
- Size guide integration
- Perfect for: Clothing, accessories, luxury brands
- Grid-heavy layout for product comparison
- Spec tables and comparison charts
- Quick spec badges
- Warranty information prominently displayed
- Perfect for: Consumer electronics, gadgets, tech accessories
- Large imagery showcase
- Room scene layouts
- AR preview integration
- Delivery estimator
- Perfect for: Furniture, home decor, interior design
# Export as Shopify-installable theme
npm run export:zip
# Download location: exports/theme-{timestamp}.zipZIP Structure:
theme/
βββ layout/
β βββ theme.liquid
β βββ password.liquid
βββ templates/
β βββ index.json
β βββ product.json
β βββ collection.json
βββ sections/
β βββ header.liquid
β βββ featured-collection.liquid
β βββ ...
βββ snippets/
β βββ product-card.liquid
β βββ ...
βββ assets/
β βββ base.css
β βββ theme.js
βββ config/
βββ settings_schema.json
# Configure GitHub credentials
export GITHUB_TOKEN=ghp_xxxxx
# Push to repository
npm run export:github -- --repo owner/repo --branch main
# Or use interactive mode
npm run export:github# Configure Shopify store
export SHOPIFY_STORE_DOMAIN=your-store.myshopify.com
export SHOPIFY_ACCESS_TOKEN=shpat_xxxxx
# Deploy directly to Shopify
npm run deploy:shopify
# Preview before deploying
npm run deploy:shopify -- --previewimport { ai } from '@/lib/ai/suggestions';
// Analyze content and suggest optimal layout
const suggestions = await ai.analyzeLayout({
content: ['hero-image', 'product-grid', 'testimonials'],
industry: 'fashion',
conversionGoal: 'purchase',
targetAudience: 'women 25-35'
});
// Returns:
// {
// sections: [
// { type: 'hero', order: 1, imageSize: '1920x800' },
// { type: 'product-grid', order: 2, columns: 4 },
// { type: 'testimonials', order: 3, style: 'carousel' }
// ],
// recommendations: [
// 'Add trust badges below hero',
// 'Use sticky add-to-cart on mobile'
// ]
// }import { ai } from '@/lib/ai/colors';
// Generate harmonious color palette
const palette = await ai.generatePalette({
baseColor: '#3B82F6',
mood: 'professional, trustworthy, modern',
industry: 'fashion'
});
// Returns:
// {
// primary: '#3B82F6',
// secondary: '#1E40AF',
// accent: '#F59E0B',
// background: '#FFFFFF',
// text: '#1F2937',
// muted: '#9CA3AF'
// }import { ai } from '@/lib/ai/copy';
// Generate product page copy
const copy = await ai.generateCopy({
type: 'product-hero',
product: {
name: 'Wireless Noise-Canceling Headphones',
features: ['ANC', '30hr battery', 'premium audio'],
price: 299
},
tone: 'bold, innovative, premium'
});
// Returns:
// {
// headline: 'Experience Sound Like Never Before',
// subheadline: 'Industry-leading noise cancellation meets 30 hours of freedom',
// cta: 'Shop Now',
// description: '...'
// }# AI Service (OpenAI or Anthropic)
OPENAI_API_KEY=sk-xxxxx
# or
ANTHROPIC_API_KEY=sk-ant-xxxxx
# or use MiniMax
MINIMAX_API_KEY=sk-xxxxx
# Shopify (optional, for direct deploy)
SHOPIFY_STORE_DOMAIN=your-store.myshopify.com
SHOPIFY_ACCESS_TOKEN=shpat_xxxxx
# GitHub (optional, for Git export)
GITHUB_TOKEN=ghp_xxxxx
# Theme Kit (optional, for CLI deploy)
THEME_KIT_PASSWORD=xxxxx
THEME_KIT_THEME_ID=xxxxx# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Run E2E tests
npm run test:e2e
# Visual regression tests
npm run test:visual
# Run specific test
npm test -- components/canvas/Canvas.test.tsxContributions are welcome! Please follow these steps:
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/ShopifyThemeForge.git - Create a feature branch:
git checkout -b feature/amazing - Install dependencies:
npm install - Start dev server:
npm run dev - Make your changes
- Test your changes:
npm test - Commit and push
- Open a Pull Request
MIT License β see LICENSE for details.
Copyright (c) 2024 moggan1337
Built with β€οΈ for Shopify theme developers