A blazing-fast, modern e-commerce storefront built with Next.js and powered by Unchained Engine
- Product Catalog - Browse products in different modes
- Shopping Cart - Real-time cart management with persistent state
- Multi-step Checkout - Streamlined checkout flow with guest checkout support
- Order Management - Track orders and view order history
- User Accounts - Registration, login, and profile management
- Stripe - Credit/debit card payments
- Datatrans - Swiss payment method
- Cryptopay - Cryptocurrency payments
- Invoice - Traditional invoice payment
- Responsive Design - Mobile-first approach that works on all devices
- Dark Mode - Built-in dark theme support
- Glass Morphism - Modern frosted glass effects
- Smooth Animations - Delightful micro-interactions and transitions
- TypeScript - Full type safety with generated GraphQL types
- Modular Architecture - Clean, maintainable code structure
- Hot Reload - Fast development with Next.js Fast Refresh
- Internationalization - Multi-language support out of the box
- Node.js 22.x (check
.nvmrc) - npm or yarn
- An Unchained Engine instance (or use our staging server)
-
Clone the repository
git clone https://github.com/unchainedshop/unchained-storefront.git cd unchained-storefront -
Install dependencies
npm install
-
Configure environment
Create a
.envfile:UNCHAINED_ENDPOINT=https://your-unchained-instance.com/graphql SKIP_INVALID_REMOTES=true
-
Start development server
npm run dev
Your storefront is now running at http://localhost:3000 π
# Development
npm run dev # Start development server (staging backend)
npm run dev:local # Start with local Unchained instance
# Production
npm run build # Build for production
npm run start # Start production server
# Code Quality
npm run lint # Run ESLint and Prettier
npm run typecheck # Run TypeScript compiler check
# GraphQL
npm run update-schema # Update GraphQL schema from backend
# Internationalization
npm run extract-translation # Extract translatable strings
npm run compile-translation # Compile translation filesunchained-storefront/
βββ π modules/ # Feature modules
β βββ apollo/ # GraphQL client configuration
β βββ assortment/ # Product categories
β βββ auth/ # Authentication (password, WebAuthn)
β βββ cart/ # Shopping cart logic
β βββ checkout/ # Checkout flow
β βββ common/ # Shared components
β βββ products/ # Product pages
β βββ orders/ # Order management
β βββ layout/ # Layout components
βββ π pages/ # Next.js pages (routes)
βββ π public/ # Static assets
βββ π i18n/ # Translation files
βββ π styles/ # Global styles
In storefront/styles/globals.css:
:root {
--primary-color: #0070f3;
--secondary-color: #ff6b6b;
--font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto;
}The storefront comes with built-in i18n support:
- Add translations in
i18n/[locale].json - Extract new strings:
npm run extract-translation - Use in components:
const { formatMessage } = useIntl(); formatMessage({ id: 'welcome', defaultMessage: 'Welcome!' })
STRIPE_PUBLIC_KEY=pk_test_...DATATRANS_MERCHANT_ID=your_merchant_id
DATATRANS_TEST_MODE=trueWe love contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Built with Unchained Engine
- Powered by Next.js
- Styled with Tailwind CSS
- Icons from Heroicons
- π§ Email: hello@unchained.shop
- π Docs: docs.unchained.shop
Built with β€οΈ by the Unchained Team
β Star us on GitHub β it motivates us!