
The plugin architecture is why we chose it and why we are still on it four years later. Everything we needed that Vendure does not ship — a national carrier integration, a fiscal register, a local payment provider, ERP synchronisation — was a plugin written against documented extension points, not a patch against core. We run 65 first-party plugins in production on a single store, and none of them required forking the framework.
The upgrade path is the second thing, and it is underrated. We started on 1.8.3 in November 2022; the same production store runs 3.7.2 today, through three major versions, with no re-platform and no feature freeze. Migrations are generated and reviewable, and breaking changes are documented honestly rather than minimised.
Being TypeScript and NestJS end to end matters more than it sounds. The API surface is typed, GraphQL codegen means our Next.js storefront and our React Native app share generated types against the same Shop API, and reading core source is a normal part of debugging rather than a last resort — which is also how we ended up sending fixes back upstream. Review collected by and hosted on G2.com.
Translation handling has been our most persistent source of real bugs. Concurrent or double-clicked saves in the Admin UI could create duplicate translation rows for the same entity and language, after which the entity became uneditable; separately, the newer dashboard could write empty translation rows for languages left unfilled, which silently broke language fallback so products appeared blank in search. Both were reproducible in a normal multi-language store, and neither failed loudly. We reported them and sent a fix with a unique constraint and migration, but it is the area I would most want hardened by default.
Admin UI extension ergonomics have been the other rough edge. Building customisations meant Angular for a long time, tooling gaps in ui-devkit, and now a migration to the React dashboard — so a shop that has extended the admin heavily pays that cost more than once. But back then Vendure was still in very early alpha releases, and now it is much more battle-tested! Review collected by and hosted on G2.com.