Installing Vendure on NestJS: production server for e-commerce

Is your e-commerce growing, and do you feel your current architecture can't handle the load? We install and configure Vendure on NestJS, building a production server ready for your business's high demands. Our team delivers the project turnkey—from configuration to deployment—ensuring stable operation and ongoing support.

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1344
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1306
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1049
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1097
  • Website development for SBH Partners
    Website development for SBH Partners
    1171
  • Website development for Red Pear
    Website development for Red Pear
    593

Preparing Vendure for production: installation, setup, and deployment

We are a team with 8 years of experience in Node.js and over 20 launched e-commerce projects. One client came with an MVP on Express: under a load of 200 RPS, the GraphQL query fails with 501. Tables are not indexed, N+1 queries cascade. You need a production primer: proper Vendure installation from scratch that handles 10,000 orders per day without lag. Our approach ensures stability and zero downtime during deployment. By ordering our setup, you get a NestJS store ready for high loads.

Key problems we solve

The first typical problem is hydration mismatch during SSR on Next.js due to incorrect caching. Vendure uses Apollo Client, but without Redis, the cache resets on the first render. The second is N+1 queries in GraphQL: if you don't configure DataLoader and indexes in TypeORM, each product collection fetch generates 50+ database queries. The third is manual migrations: without TypeORM CLI and CI/CD, teams forget to apply migrations, and production fails after deployment. We solve these problems during the design phase.

How we set up Vendure turnkey?

Detailed case: an online cosmetics store (20,000 SKU). Requirements: integration with four payment gateways, delivery via Boxberry, and a custom cart with custom fields. We chose a manual installation in a monorepo. Stack: Node.js 20 LTS, PostgreSQL 14, Redis 7, Docker Compose + Nginx.

TypeORM configuration:

// src/vendure-config.ts
export const config: VendureConfig = {
  apiConfig: {
    hostname: '0.0.0.0',
    port: 3000,
    adminApiPath: 'admin-api',
    shopApiPath: 'shop-api',
  },
  dbConnectionOptions: {
    type: 'postgres',
    synchronize: false,
    logging: process.env.APP_ENV === 'development',
    entities: [
      Customer,
      Order,
      Product,
      ProductVariant,
      // ... custom entities
    ],
  },
  paymentOptions: {
    paymentMethods: [
      StripePaymentMethod.init(),
      MolliePaymentMethod.init(),
    ],
  },
};

Instead of the standard CLI generator, we had to create a custom plugin for product synchronization from 1C via CommerceML. Result: catalog loading speed increased by 60% compared to the previous WooCommerce solution. With such customization, you save on infrastructure and get a NestJS store fully tailored to your tasks. Order a similar solution for your business.

Work process

  1. Analysis — audit the current API and database, identify bottlenecks (N+1, missing indexes).
  2. Design — GraphQL schema, payment and delivery plugins, architecture decision records.
  3. Implementation — writing configs and custom modules (NestJS + TypeORM).
  4. Testing — load testing with k6 up to 5000 RPS, Core Web Vitals check (LCP < 2.5 s).
  5. Deployment — CI/CD via Docker Compose, backups, monitoring.
Stage Duration What's included
Analysis 1–2 days Code audit, profiling, load tests
Design 1–2 days Plugin selection, data schema, ADR
Development 3–5 days Configs, migrations, custom resolvers, plugins
Testing 1–2 days E2E with Cypress, unit tests, integration testing
Deployment 1 day Docker + CI/CD (GitHub Actions), monitoring

What's included in the work?

  • Setting up Vendure from scratch or migrating from another e-commerce platform.
  • Complete documentation on architecture and endpoints.
  • Access to the admin UI and logs.
  • Team training (2 sessions of 2 hours each).
  • Stable operation guarantee and support for 2 weeks after deployment.

Why manual installation is better than CLI?

The CLI generator @vendure/create is suitable for prototypes, but for production it imposes unnecessary plugins and structure. Manual installation gives full control over versions and configuration. Our clients save up to 15% on infrastructure costs through customization. Get a consultation for your project.

How is stability guaranteed after deployment?

We configure monitoring (Prometheus + Grafana), regular backups, and health checks. In case of a failure, automatic restart via Docker Compose. All changes pass CI/CD with tests and manual code review. The guarantee applies for 2 weeks after deployment.

Checklist after installation (we check each item)

Criterion Description
Database and migrations Database created, migrations applied, synchronize = false
Admin UI Available at /admin, CRUD for products works
Shop API Response at /shop-api exists as a GraphQL schema
Assets Directory exists and is writable
SMTP Email sending tested on order creation
Worker Job queue works, Redis connected
SSL Nginx configured for HTTPS, HSTS enabled

Installation takes from 1 to 3 days depending on integration complexity. Pricing is individual — contact us for a project estimate within 24 hours.