What is EverShop?
EverShop is a modern, modular e-commerce framework built on a powerful technology stack designed for flexibility and scalability. It follows a plugin-based architecture that separates business logic from presentation, making it easy to customize and extend your online store.This project is built on EverShop version 2.1.1 with TypeScript support for both backend and frontend development.
Technology Stack
EverShop is built on proven, enterprise-grade technologies:Backend
- Node.js - Runtime environment
- Express - Web framework
- PostgreSQL - Database
- GraphQL - API layer
Frontend
- React - UI components
- TypeScript - Type safety
- Tailwind CSS - Styling
- Server-side rendering - Performance
Architecture Overview
EverShop’s architecture is based on two fundamental pillars:1. Extensions (Business Logic)
Extensions encapsulate all custom functionality in isolated, reusable modules:2. Themes (Visual Presentation)
Themes define the visual appearance and user experience:Key Features
Modular Architecture
Build features as independent extensions that can be enabled, disabled, or replaced without affecting the core system.
TypeScript First
Full TypeScript support with strict type checking for both backend logic and React components.
GraphQL API
Flexible GraphQL layer for efficient data fetching with type extensions and custom resolvers.
Hot Reload Development
Fast development workflow with hot module replacement for both backend and frontend code.
Component-Based UI
React components with area-based layouts, allowing precise control over component placement and rendering order.
Event-Driven
Powerful subscriber system for handling events and creating loosely coupled integrations.
Project Configuration
The current project is configured with:- Language: Spanish (es)
- Currency: USD
- Active Extensions:
offlinePayments- Cash on delivery and bank transfer payment methodsproductCatalog- Extended product information for supplementsproductReviews- Customer review system
- Active Theme:
anasuplements- Optimized for supplement e-commerce
Configuration System
EverShop uses a hierarchical configuration system:.env- Environment variables (secrets, database credentials)config/default.json- Base configurationconfig/[environment].json- Environment-specific overrides
Example: Extension Registration
Example: Extension Registration
Data Flow
Understand how requests flow through the system:Request Routing
Express router matches the incoming request to the appropriate handler based on
route.json configuration.Middleware Processing
Request passes through middleware chain (authentication, validation, body parsing).
GraphQL Data Fetching
Page components execute GraphQL queries to fetch required data from the database.
Component Rendering
React components render with fetched data, respecting area layout and sort order.
Core Principles
Extension-Based Development
All custom features should be built as extensions:- ✅ Create new extensions in
extensions/[name]/ - ✅ Register extensions in
config/default.json - ✅ Use TypeScript for type safety
- ❌ Never modify core EverShop files
- ❌ Never put business logic in themes
Separation of Concerns
- Extensions = Business logic, APIs, data processing
- Themes = Visual presentation, styling, user experience
Next Steps
Quick Start
Get EverShop running locally in minutes
Installation Guide
Detailed installation and configuration instructions
Development
Learn how to build extensions and customize your store
API Reference
Complete API documentation and examples