Skip to content

AJFrio/OpenShop

Repository files navigation

OpenShop Logo

OpenShop - An Open-Source AI Platform for Smarter Stores.

Launch your online store in minutes. Built on Cloudflare's edge network for lightning-fast performance, zero infrastructure costs, and unlimited scalability.

License: AGPL v3 Node.js Version


Why OpenShop?

OpenShop is the fastest, most cost-effective way to launch an e-commerce store. Built entirely on Cloudflare's edge network, you get:

  • ⚑ Lightning Fast - Sub-100ms response times worldwide
  • πŸ’° Completely Free - Stays within Cloudflare's generous free tier (100k requests/day)
  • πŸš€ One-Command Deploy - Your store is live in under 5 minutes
  • πŸ”’ Enterprise Security - Built-in DDoS protection, SSL, and secure authentication
  • πŸ“± Mobile-First - Beautiful, responsive design that works everywhere
  • πŸ”„ Unlimited Stores - Deploy as many stores as you want from one codebase

Perfect for entrepreneurs, developers, and businesses who want a professional online store without the complexity or cost of traditional e-commerce platforms.


🌟 Features

Core Functionality

  • πŸ›’ Complete E-commerce - Products, collections, shopping cart, and Stripe checkout
  • πŸ“¦ Product Management - Multiple images, variants, and rich descriptions
  • πŸ“ Collections - Organize products with beautiful hero banners
  • πŸ’³ Stripe Integration - Automatic product sync and secure payment processing
  • πŸ“Š Analytics Dashboard - Real-time revenue and order insights

User Experience

  • πŸ›οΈ Smart Shopping Cart - Persistent cart with quantity management
  • πŸ“± Mobile Optimized - Fully responsive with mobile-specific cart experience
  • 🧭 Intuitive Navigation - Collection links with product preview dropdowns
  • 🎨 Beautiful UI - Modern design with Tailwind CSS and ShadCN/UI

Advanced Features

  • πŸ–ΌοΈ Rich Media Support - Multiple product images with carousel navigation
  • 🎨 Store Customization - Dynamic logo management (text or image)
  • πŸ”’ Secure Admin System - Token-based authentication with session management
  • 🧠 AI Image Generation (Optional) - Generate product images with Gemini AI
  • ☁️ Google Drive Integration (Optional) - Store and serve images from Google Drive

πŸš€ Quick Start

Prerequisites

One-Command Setup

  1. Clone and Install

    git clone https://github.com/AJFrio/OpenShop openshop
    cd openshop
    npm install
  2. Automated Deployment

    npm run setup

    The setup wizard will prompt you for:

    • Project Name - Unique name for your store
    • Cloudflare API Token - Get token here
    • Cloudflare Account ID - Found in your Cloudflare dashboard
    • Stripe Keys - Secret and publishable keys from Stripe dashboard
    • Admin Password - Your secure admin password
    • (Optional) Gemini API Key - For AI image generation
    • (Optional) Google OAuth - For Google Drive integration

    See Configuration Guide for detailed setup instructions.

  3. πŸŽ‰ Your Store is Live!

    Access your store at: https://your-project-name.username.workers.dev

    Access admin at: https://your-project-name.username.workers.dev/admin


πŸ”’ Admin Dashboard

Access your admin dashboard at /admin on your store URL.

Security Features:

  • Password-protected login
  • 24-hour session tokens
  • Separate authenticated API endpoints
  • No visible admin link on storefront (access via direct URL)

Admin Capabilities:

  • Create, edit, and delete products with multiple images
  • Manage collections with hero banners
  • Customize store branding and appearance
  • View real-time analytics and revenue insights
  • Generate AI images (optional)
  • Upload images to Google Drive (optional)

For detailed admin documentation, see Architecture Guide.


πŸͺ Multiple Store Support

Deploy unlimited stores from a single codebase, each with its own:

  • Worker deployment and subdomain
  • Isolated KV namespace (separate data)
  • Admin credentials and settings
  • Stripe configuration
# Create your first store
npm run setup
# Project Name: "electronics-hub"

# Create another store
npm run setup
# Project Name: "fashion-boutique"

# List all your stores
npm run sites

# Deploy a specific store
npm run deploy electronics-hub

See Deployment Guide for complete multi-site documentation.


πŸ› οΈ Development

Local Development

# Full-stack development (Worker + Frontend)
npm run dev

# Frontend-only development
npm run dev:frontend

# Build for production
npm run build

# Deploy to production
npm run deploy

# Preview production build locally
npm run preview

For detailed development instructions, see Development Guide.


πŸ“š Documentation

Complete documentation is available in the docs/ directory:


🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow existing code style and patterns
  • Add tests for new functionality
  • Update documentation for any changes
  • Ensure all builds pass before submitting

πŸ“„ License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE file for details.


πŸ†˜ Support & Community

Getting Help

Resources


πŸ™ Acknowledgments

Special thanks to:

  • Cloudflare - For the incredible Workers platform and generous free tier
  • Stripe - For reliable payment processing and excellent developer experience
  • Vercel - For the ShadCN/UI component library
  • The Open Source Community - For the amazing tools and libraries

🌟 Showcase

Built something awesome with OpenShop? We'd love to feature your store! Open an issue with your store URL and a brief description.


Made with ❀️ for the open-source community

⭐ Star this repo β€’ πŸ› Report Bug β€’ πŸ’‘ Request Feature

About

Opensource, free e-comm platform built for Cloudflare's free tier

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages