Skip to content

mirumee/nimara-ecommerce

nimara logo
Modern and high-performance e-commerce storefront for multi-region, global brands

Nimara Demo Join Discord View Documentation

🎥 Demo

Deploy with Vercel

Nimara.Storefront.mov

🚀 Features

  • Headless Architecture: Nimara's headless architecture provides a flexible, easy-to-maintain, and ready-to-deploy solution for online businesses.

  • Next.js 15: App router, React Server Components (RSC), Server Actions, Caching and Static Site Generation (SSG) support with Typescript setup.

  • Shadcn UI/Tailwind CSS: Nimara's UI uses Shadcn UI and Tailwind CSS, providing a modern and customizable design system.

  • Turborepo: Nimara's monorepo is powered by Turborepo, a fast and scalable build system for monorepos. Automated tests with Playwright and setup for Docs are included.

  • Stripe Integration: Nimara's storefront uses Stripe Payment Element for secure payment processing.

  • Customizable infrastructure: Nimara's infrastructure is highly customizable, allowing you to tailor it to your specific needs and requirements. Extend it by providing the setup to any third-party service.

  • Tooling included: Comes with ESLint, Prettier, Husky, Lint Staged, and Codegen preconfigured.

🔧 Prerequisites

This project uses pnpm and Turborepo, so make sure you have them installed globally in your system:

npm install -g pnpm
pnpm install turbo --global

⚡ Quickstart

Clone this repository and copy .env.example to .env:

cp .env.example .env

Edit .env file and provide required variables.

Then, install pnpm and run the following command to install all dependencies in the repo:

pnpm i

To start just the development server for storefront, run this

pnpm run dev:storefront

To generate a new types, run this:

pnpm run codegen

The app is now running at http://localhost:3000.

🚀 Daily Workflow and Releasing

This project follows a simple Git workflow based on three core branches: develop, staging, and main. Each branch is linked to a separate Vercel environment.

  • develop is our primary working branch for new features and bug fixes.
  • staging is used for quality assurance (QA) and testing before a release.
  • main represents the production environment and stable, released code.

1. Daily Development

To start working, always make sure you're on the develop branch. Pull the latest changes to stay in sync with the team.

git checkout develop
git pull origin develop

When you start a new task, create a feature branch directly from develop. Use a clear naming convention, e.g., feat/my-new-feature or fix/button-bug.

git checkout -b feat/my-new-feature

Commit your changes frequently and push your feature branch to GitHub.

git add .
git commit -m "feat: my new feature"
git push origin feat/my-new-feature

When your feature is complete, open a Pull Request (PR) from your feature branch to develop.

2. Releasing to Staging

When the develop branch is ready for testing (e.g., all new features for a release cycle are merged), you should merge it into staging. This will trigger a new deployment on the Vercel staging environment.

First, make sure your local staging branch is up to date:

git checkout staging
git pull origin staging

Then, merge develop into staging and push the changes:

git merge develop
git push origin staging

The team can now perform full QA and regression testing on the staging environment.

3. Releasing to Production

Once the staging environment is stable and all tests have passed, it's time to release to production.

To do this, you will create a Pull Request on GitHub to merge staging into main.

GitHub Actions will automatically:

  • Tag the latest commit on main with a new version (e.g., v1.2.3).
  • Create a new GitHub Release based on that tag.
  • Deploy the production-ready code to the Vercel production environment.

After the release is complete, remember to pull the latest changes from main back into develop to ensure your development branch is up-to-date with all hotfixes and production changes.

git checkout develop
git pull origin main

Deploying the app to Vercel using a Terraform

A guide how to deploy the app to Vercel using a Terraform can be found here: Using Terraform - Nimara Docs.

❤️ Community & Contribution

Join Nimara community on GitHub Discussions and Discord server. You can ask questions, report bugs, participate in discussions, share ideas or make feature requests.

You can also contribute to Nimara in various ways:

For detailed contributing guidelines, please see How to contribute to Nimara Storefron guide

This wouldn't have been possible without your support


Crafted with ❤️ by Mirumee Software

hello@mirumee.com