🚨 Announcing Vendure v2 Beta

header image

Case study

Delizie D'Italia

Delizie D’Italia is an Italian startup selling typical regional food and beverages, targeting both domestic and international audiences

Built by Artcoded

food & drink Italy b2c multi-language
Tell us a little about yourselves

Artcoded is a small Italian software engineering and development agency. Our mission is to enable small-to-medium sized businesses to seriously catch their own digital opportunity. “Seriously” means not just “being online”, but aiming to be really competitive, even with respect to more established and digital-native players.

With this approach we carefully select the most appropriate technologies to invest and specialize in. That’s also how we discovered Vendure and made it a core part of our Artcoded Stores e-commerce solution.

Tell us about the project. What were the challenges you faced?

Delizieditalia.net is our first e-commerce project using Vendure. Delizie D’Italia is a local startup selling typical Italian food and beverages, targeting both domestic and international audiences. Being a digital-first business, they wanted an e-shop solution that wasn’t just a showcase of their products, but provided a best-in-class user experience, which has a direct impact on establishing credibility online and on conversion rates, especially considering the initial low brand awareness. They also required multi-language functionality (English and Italian) and great SEO (search engine optimization).

What factors made you decide to use Vendure?

At first, we adopted another framework (Reaction Commerce) for our project. We weren’t totally comfortable with this choice, so we considered different options. Then we found Vendure, and it seemed to better suite our needs for the following reasons:

Can you tell us about the process of building the project?

We deployed our project using Docker over self-managed VPS and using AWS for asset storage (S3) and database (RDS for Postgresql). We also switched from our two Reaction Commerce Stripe and Paypal plugins to a single Braintree plugin, which simplified payment flow development and management (also for our client).

We built a custom plugin for shipments, as our customer needed price logic to be based on parcel weight, geographical location and order total value at the same time. We found it quite straightforward to add this custom logic to the system.

Finally, we worked on email functionality, by integrating SendGrid (both for sending transactional emails and to build an email list) and by extending the native email templates and events.

Thanks to DevOps automation technologies, we are establishing our “sweet spot” between a totally custom single-client application and traditional SaaS multi-tenancy (i.e. totally shared resources, such as database, servers, etc.). By leveraging technologies like Pulumi, our solution allows us to still have multiple instances of our stack for multiple clients - totally independent of each other and thus fully customizable - while at the same time making it really easy, fast and efficient to deploy an entire new Vendure stack for each new customer, minimizing marginal costs.

What technologies did you use for the storefront?

We have gained extensive experience with Next.js: we believe it’s a perfect match for e-commerce projects specifically, as it allows to fine-tune and mix static and dynamic content generation approaches on a per-page basis.

We used Apollo Client to interface with the Vendure GraphQL API, by combining server-side queries with client-side ones, as needed for each single page/route. We took advantage of the great typing integration between Typescript and GraphQL (using graphql-code-generator), which makes it very easy to build our data layer. We are also using Next-translate for internationalization and Tailwind CSS for the UI.

How did Vendure help you to meet the design challenges of the project?
After almost one year working with Vendure, we can say it was a right choice for us.

Its headless approach has allowed us to cherry-pick storefront technologies to suit our skills and requirements. Its technological stack ensures reliability and top-level performance. The ability to use Typescript across the whole stack, as a single (and robust) language, is very important to us. This ensures a consistent and efficient developer experience, especially when combined with Vendure’s GraphQL API.

Finally, the plugin system gives us the flexibility to tailor our solutions to our customers' needs, while making common functionality easily reusable.

How is the project evolving? What are the ongoing challenges and improvements you are working on?

Our journey with e-commerce solutions powered by Vendure is in continuous evolution. As we mentioned, our short-term roadmap includes a strong investment in DevOps and cloud automation: we are already developing a promising “Infrastructure as Code” (IaC) layer to ease the deployment of Vendure, thanks to Pulumi and cloud providers like AWS. We are also exploring the integration of Vendure with other headless service modules in order to add CMS functionality, as some of our customers also require the ability of content self-management. Finally, we are going to further fine tune our Next.js storefront, in terms of user interface, functionality and performance optimization.

We are really excited to see Vendure’s ecosystem expand and, at the same time, to continuously perfect our Vendure-based solutions, alongside the growth of the core framework.