Vendure is an open-source e-commerce framework built on Node.js, TypeScript & GraphQL. After three years of development, we are incredibly excited and proud to announce the first stable release!
Just over three years ago, I found myself researching the e-commerce ecosystem. My family runs a successful art materials retailer with a website I had built from scratch well over a decade ago, having taught myself PHP and MySQL from one of those 5-inch-thick books that come with a CD-ROM in the back cover. Foolish? Perhaps! Back then there were few alternatives anyway.
But the time had come to find a better solution. In the intervening years, the choice of e-commerce frameworks has improved in both number and quality. We have the established, mature players like Magento, WooCommerce, Spree Commerce & Shopware as well as newer challengers list Sylius & Saleor. All worthy solutions - but here’s what was missing:
TypeScript / Node.js
“Headless” means “API-driven”. I had spent the prior three years working on a headless CMS project, and I was sold on the benefits of this architecture.
Great developer experience
Hours were spent attempting to set up a dev environment to test out these frameworks. I wanted something simple to set up, and simple to extend. I don’t want to dig through layers of config and abstractions in order to add a new attribute to my product model.
So once again, I foolishly decided to build my own.
The Headless Revolution
Since I began with Vendure, “headless commerce” reached bona fide buzzword status. Pretty much every framework rebranded as “headless” and released some kind of API. There is good reason for this. The core value proposition of headless is that you can build your storefront with any technology you like. This is genuinely revolutionary.
Previously, the storefront was an outgrowth of the platform itself. You were limited to the templating features and technology choices that the platform provided. Often, this made modern front-end developer workflows impossible or at least very difficult. If a merchant wanted a completely new, more modern storefront, this usually meant a completely new backend too. The dreaded replatforming.
The industry trend towards headless is in recognition of this unnecessary coupling of storefront and back-end infrastructure. Even platforms like Shopify and Magento - with considerable interest in having tight front-end integrations to support extension marketplaces - are seeing the shift.
Simultaneously, projects like Vue Storefront and Next.js Commerce are springing up to fill the demand for modern front-end tooling to complement the move to headless commerce. However, any changes to the back-end too often require a switch to an entirely different stack - be that PHP, Python, Ruby or .Net - with the attendant context switch in tooling and conventions.
TypeScript is one of the most-loved languages and could by now be considered a de facto standard for large-scale web development.
No matter which commerce API you use, chances are that the storefront will be built with TypeScript.
Vendure is in the unique position of enabling truly modern, full-stack TypeScript e-commerce projects. Switching from back-end to storefront feels seamless. Server and storefront source code can happily inhabit a single repo and share common build infrastructure, and code can even be shared between the two. Further, our use of TypeScript and GraphQL APIs unlocks end-to-end type safety.
Made for developers
Vendure is made for developers. This is a guiding principle which informs the whole design of the framework. It means that:
- Building with Vendure should feel fun and productive. It should work intuitively. Simple things should be simple to implement.
- With a single command you get a complete, working local instance in a matter of minutes.
- The core is lean, extension is easy. We reject the idea of requiring a third-party extension to add a new field to a product. We allow you to do it with a single line of configuration. The system is not a black box, but a tool you can master quickly.
- Documentation is not an afterthought. We use a custom-built process to extract most of our documentation direct from the source code, so it is always accurate, and then augment this with extensive guides and examples.
The first commit to the Vendure repo was in May 2018. The first store went live in September 2019. Over the past three years I’ve been steadily building out an advanced set of features (many of which you’ll only find in paid versions of other frameworks) and improving performance and stability. During this time, with minimal promotion and zero marketing budget, the community began to grow. Evidently drawn by the same factors which had led me down this path, developers discovered and started building on Vendure!
Right now I estimate there to be a few dozen live websites (I only hear about a fraction of them!), ranging from a boutique artist’s gallery to a Europe-wide marketplace with tens-of-thousands of products. Many more are in production, and I hear weekly about new agencies and individual developers opting to use Vendure for their next project. Storefronts are being built with Next.js, Vue Storefront, Angular, Svelte, Gridsome, React Native and more. You can read about some of these in our case studies.
We have over 40 contributors and 2,000+ stars on our GitHub repo. As of this writing the
@vendure/core package sees around 3,500 downloads per month from npm. There is an active community of almost 900 developers on Slack. I am very grateful to all who have tested, provided feedback, reported issues and contributed code to Vendure.
Later this year we’ll begin introducing a set of advanced plugins which save you the time and expense of attempting to cover more complex use-cases with in-house development.
We’re working with Vue Storefront and Vercel to bring Vendure integrations to their storefront solutions. We are establishing a network of partners who are ready right now to build solutions based on Vendure. We are actively researching cloud hosting solutions to make it even easier to deploy your Vendure projects.
This is just the beginning. Join us for the journey!
Try it now
Vendure runs right now on a $5 Digital Ocean box backed by SQLite. It is also running in auto-scaled containerized cloud environments. It can run as a serverless function. It most certainly will run on your machine.
Try it now!
npx @vendure/core my-shop