Of course the tradeoff is that it is not free (as in beer), but if your startup is getting sold then hopefully you got enough value out of our software to pay for a commercial license.
247 karma · joined July 20, 2015
Of course the tradeoff is that it is not free (as in beer), but if your startup is getting sold then hopefully you got enough value out of our software to pay for a commercial license.
My co-founder and I also faced a similar decision to what David describes in the earlier post about seed funding: From the start I was very much into the indie hacker mindset, but we came to recognize that there's an opportunity to make a significant impact beyond my initial ambitions, and so we are currently navigating the process of raising a seed round.
I'm the maintainer of Vendure. Today we released our major new version, which is a huge upgrade.
I work on Vendure full time. I've been building it for about 5 years now, and last year I got a co-founder, started a company, and so far we are bootstrapping on the open core model with some enterprise support contracts too.
I'm happy to answer any questions you have, and thanks for taking a look!
Edit: Not sure what happened with the link - I originally submitted our actual domain at http://vendure.io. Looks like some DNS config issue.
Headless commerce (i.e. API-driven, decoupled front-end) is maximally flexible but comes with the tradeoff that you suddenly have to build an entire storefront from scratch. Compared to off-the-shelf solutions like Shopify, which give you a fully integrated storefront with nice themes, it can be a high barrier for businesses which lack significant funding or developer resources.
Previous attempts to solve the front-end part of the headless commerce problem have had mixed results I think. One the one hand is fully-built, backend-agnostic storefronts like Vercel's Next.js Commerce or prior Vue Storefront products. On the other hand is just build from scratch exactly to your needs.
The complexity that comes with maintaining a backend-agnostic, full-featured storefront is huge. I think this release is a good middle ground that reminds me of the amazing Tailwind UI project - design primitives and larger components you can basically copy-paste into your own storefront app. It's probably the right way to go, as it saves a bunch of time but still leaves you free to build the storefront exactly as you want it.
With recent developments in LLM tech I can imagine a future where open-source, self-built solutions suddenly become way more accessible to more companies, as a single developer is able to use libraries like this and have AI stitch the parts together into a full storefront.
2 arguments against a slider:
1. Potentially it is much harder to make an accessible slider control. 2. Sliders break down when you have a distribution skewed away from normal. For instance, if 90% of results are in the range $0-$50, but then a few results are over $1000, how do you calibrate the slider? A naïve approach would render it almost unusable if you want to limit to products between $20 - $30. Otherwise you need some sort of logarithmic scale. I've not seen examples of this being done well.
The website looks great, your pitch is compelling and the vision is very similar to what I've been doing with vendure.io, which takes the same approach but towards ecommerce rather than CMS. Namely: open-source, headless, Node/TypeScript, dev- and code-first.
In our experience, your thesis is correct in that there certainly is a niche for a great, dev-first, self hosted version of what is otherwise seemingly already handled by SaaS products. We see users moving to Vendure from closed SaaS commerce platforms for reasons like: full control over the code & data, integration requirements, need to support unique requirements, wanting to build their own platform etc.
Furthermore our business model is similar - MIT core and paid enterprise plugins, and exploring cloud. Notably enterprise support and SLAs is also becoming a major area for us.
So it's great to see a kindred product getting some attention here on HN!
If you are interested to swap insights or discuss potential collaboration (many of our users are looking for a good CMS...) feel free to drop me a message at m.bromley at vendure.io :)
Per Github it's 90% C++ and 8% C.
As an aside - I notice you commenting cynically to almost every thread here. A dose of skepticism is fine and of course we should consider alternatives and technical limitations etc. But your tone and activity comes across more of having a personal vendetta against this company. Very strange.
Recently I started working with it too and so far the product has been great to work with. Moreover their team is very responsive. I had a technical question regarding my integration and one I was able to schedule a call for the next day with one of their team and to my surprise he'd prepared a script to solve the exact issue I was asking about (thanks Jovi)!
Congrats to the team!
Around the same time, a known smooth-talking vaporware peddlar in the same industry launched on PH with literally a bare GH repo and a minimal landing page. I knew 100% that there was no actual usable product. The founder had recently been involved in a similar project that collapsed under huge promises. He got hundreds of upvotes and plenty of "awesome product, LFG man!!!" type comments.
That's the moment I really understood PH.
A while later the same mag gave away a copy of Delphi. That really opened things up. I found it was more accessible and was quickly making all kinds of stupid windows forms apps and sharing them with friends.
So, no insight into what went wrong but the name Borland has very positive associations for me, and it's safe to say their products played a role in the course my life took.
Even then, 30k for a single page, which I assume is static, is kinda ridiculous. The only justification I can think of is very, very good design from an expensive design agency.
For the dev work we are talking paying someone $300 / hour for over 2 weeks. Seems out of my reality.
And yes, I'd be really interested to chat! You can email me at "contact at vendure.io"
A full refresh of the storefront using the latest technologies or developer workflows can prove either impossible or incredibly challenging. That's why there are a lot of e.g. Magento projects stuck with huge JS bundles and unpleasant developer ergonomics. Ultimately there is the risk of needing to "replatform" - re-build the entire solution (front-end and server-side) on a different framework/platform, which is not a desirable situation to be put in.
That said, headless has its trade-offs. Building a storefront is not trivial. For many merchants it may not make sense. But for a certain class of use-cases it is a massive advantage.
It should also be noted that "headless e-commerce" has also graduated into buzzword territory, so you might get an inflated impression of the relative importance or use of it. Even Magento & Shopify are leaning into "headless" despite their clear interest in the monolithic model which is relied on by the majority of their marketplace offerings currently. Other platforms (e.g. Saleor, Sylius) which started off as non-headless have recently re-branded as headless.
Ultimately there is definitely hype in this area, but there is also genuine value too.
Source: I've been developing a headless e-comm framework for the past 3 years (vendure.io)
* The Vendure project is a bit older and I think a bit further ahead in terms of awareness and adoption.
* Medusa lists a team of 10 on their notion board, plus a bunch of investors. Vendure is just me (plus OSS contributors) and is bootstrapped.
* Medusa exposes a REST-style API, whereas Vendure uses GraphQL.
* Medusa seems to be mostly JS built directly on Express, whereas Vendure is TypeScript built on NestJS.
* We're both using TypeORM for the data layer.
* As mentioned, Medusa does not ship with an admin interface, whereas Vendure does.
* Medusa seems to have a whole bunch of supported integrations in the monorepo (Stripe, Adyen, Klarna, Sendgrid, Twilio), whereas Vendure does not currently have any official integrations like this.
* Vendure supports multi-channel, multi-language stores. Could not see much about Medusa's support for that, but maybe I missed it.
All in all, Medusa is very much the most similar project I've seen to Vendure. The Node ecosystem has long been neglected in terms of e-commerce dev tooling, so I'm glad to see more interest in this area. Full-stack JS/TS/Node can be very productive and really nice to work with, in my experience.
Congratulations to the Medusa team for the launch. Slightly envious that your post has gained so much traction compared to the ~3 upvotes from my launch a few months ago, but no hard feelings, haha.
edit: formatting
I was once pitched the exact dark pattern as in the OP - covert email collection. I was gobsmacked. I wrote about it at the time thus:
> Towards the end of the slide deck, Dom excitedly explained how if a user enters an email address in any form field anywhere on the website, then regardless of whether the form is submitted, that email address will be captured by IntegriMart and paired up with a browser fingerprint for that user. This, presumably, allows us to “continue to build a dialogue” with that user.
Full story for those interested: https://www.michaelbromley.co.uk/blog/the-covert-opt-in/
The release announcement is here: https://www.vendure.io/blog/2021/05/announcing-vendure-v1.0/
I'm happy to answer any questions you may have.
From my experience, I can most certainly recommend against rolling your own unless you have a few hundred spare hours
Based on your expected volume I think something like Shopify makes sense and probably does most of what you need, if you can manage to get a frontend working to your requirenents. However, if you want to try out some new tech (graphql, some interesting FE framework of your choice) then you might want to take a look at Vendure. It can be set up in 5 minutes with a single command.
But to clarify, calling it an advertisement is not necessarily a condemnation. Content marketing articles can be fine when they actually contain some substance, which I believe this one does.
And thanks for checking out the project and your kind words.
For the past 2 years I've been working full-time on an open-source headless e-commerce framework (https://www.vendure.io/) so I can attest to this.
Small illustrative example: I have spent the past 2 weeks re-working our tax handling to handle scenarios like this:
- An order contains 5 products, some of which have different tax rates. Order total is $100. - A $10 coupon code reduces the order to $90. - The order is completed and shipped. Later on the customer wants to return and get a refund on one of the items. How much do you refund?
The answer is that you need to prorate (distribute) the $10 discount proportionally over the 5 items, so that when refunding, this order-wide discount is taken into account.
After extensive research (much of which I wrote up here: https://github.com/vendure-ecommerce/vendure/issues/573), I was rather surprised to find that the majority of well-known OSS e-commerce frameworks don't handle this properly.
On top of the things mentioned there are a whole host of other major topics of concern, e.g.
* stock control & tracking
* fulfillment & shipping integration
* payment integration
* promotions
* account management (email verification, password resets etc)
* product images / asset management
* multiple sales channel, multi-currency, multi-language support
For those interested, my project is approaching v1.0 so I've just about got a handle on all of the above. Phew!
I'm working on a node/typescript/graphql headless commerce framework (vendure.io) and I'd love to help on an integration if at all possible.
Pros of integrating with vendure: users can stand up a fully-functional local server in 1 npx command; no SaaS account needed; low friction for JS devs used to npm work flows & idioms.
Though I must admit I was very surprised the first time I experienced it (I hadn't been forewarned).
I also experimented with 3d rendering with just CSS a few years ago. The result came out pretty nice (desktop only I'm afraid): https://www.michaelbromley.co.uk/experiments/css-space-shoot...
I've been working on Vendure pretty much full-time for almost 2 years now. You can read more about the background & motivation for the project here: https://www.vendure.io/blog/2019/02/introducing-vendure/
Thanks for taking a look :)
type NonEmpty<T> = [T, ...T[]];
function head<T>(input: NonEmpty<T>): T {
return input[0];
}
https://www.typescriptlang.org/play/?ssl=5&ssc=2&pln=1&pc=1#...