
My Startup Failed, So We Open-Sourced the Tech - Viveckh
https://veniqa.com/
======
lioeters
Summary: Full-stack e-commerce solution, built using MongoDB, Express.js,
Vue.js, Node.js, Mongoose ORM, Redis, Sendgrid, Nodemailer (for fallback),
Stripe.

Repo: [https://github.com/Viveckh/Veniqa](https://github.com/Viveckh/Veniqa)

Thank you for sharing the work, will enjoy studying it!

~~~
woutr_be
I agree, I might not use it, but it's a good example of a real world product
that I can learn from. Quite often when I'm stuck on something, I look for OSS
to see how they've done that particular thing.

~~~
keytarsolo
I especially like to compare with complete solutions like this repo. Because
sometimes I'm stuck in a rut and looking in the wrong layer.

Even if I don't end up using their solution reading through an open source
project is, for me, a great way to think about the problem without all the
pre-conceived notions I have regarding my existing code base.

------
m0zg
Note, however, that this MIT licensed code includes
[https://github.com/Viveckh/Veniqa/blob/develop/website/js/is...](https://github.com/Viveckh/Veniqa/blob/develop/website/js/isotope.min.js),
which is dual licensed under GPLv3 and commercial. There may be other such
components as well. So tread carefully if you'd like to use this for anything
practical without having to disclose the entirety of your source code.

~~~
Semaphor
But it's used as-is. That shouldn't trigger the viral clause, or am I
misunderstanding something?

~~~
m0zg
You are misunderstanding something. ANY GPLv3 anywhere in your code makes your
code subject to GPLv3's terms.

~~~
Semaphor
But that is in your code, isn’t this just linking it?

~~~
rndgermandude
No, linking GPL'ed code makes the product GPL'ed too, unless you're under the
System Library exemption, another author-specified exemption or are actually
using LGPL'ed not GPL'ed code.

Your code is still under whatever GPL-compatible license you want, but the GPL
component means you can only use the product under the GPL, so for example if
somebody requested the source code of your distributed product under the GPL,
you'd need to provide it, all of it, under the GPL or a compatible license.
You cannot just provide the GPL licensed components.

The linked GPL'ed code seems to be client-side/frontend code, so at the very
least everything client-side would fall under the GPL (if you want to argue
the client(-side) and the server(-side) are different products).

------
tarkin2
The thread is a case study in why not to open source your code: belittling
feedback that serves little purpose other than to make the commenter feel good
about themselves.

~~~
boomboomsubban
This feedback came from advertising their code, not open sourcing it. Posting
it here with this title is asking for opinions on it.

~~~
tarkin2
Constructive feedback useful. There are a few posts on here which are
constructive. Point out some code you dislike? Okay, good. Comment on the
general structure of the code. Okay, good.

I know software devs, myself included, are often too abrasive and forget
social niceties. But far too many replies here are closer to insults, without
even a vague intention to be constructive.

~~~
boomboomsubban
I'm not defending the comments made here, but they aren't a byproduct of open
sourcing the code.

------
ozfive
I see a bunch of wannabe open-source proponents complaining about code quality
and doing nothing to fix the code quality itself. Complain all you want, but
it does nothing to promote open source. You all have some introspective
contemplation to do about how you conduct yourself as developers.

~~~
detaro
Code being open-source does not magically create a community or magically
provides an incentive of working on it.

~~~
ozfive
No it seems as though it just creates a bunch of complaining developers. This
plays into another blog post that went viral on hacker news about why the
interviewing practice is broken. Engineers who can't even engineer a proper
interviewing process that doesn't nullify 99% of candidates and companies
complain why they can't find good candidates. At least in the aerospace
community the older Generation was willing to take on people who didn't know
best practices and apprentice them. This is why hiring in software is broken.
A bunch of people that don't actually want to be stewards of the craft.

~~~
speedplane
> This is why hiring in software is broken. A bunch of people that don't
> actually want to be stewards of the craft.

I've hired a few developers and have found you can turn a inexperienced but
relatively bright developer into a competent one with sufficient time and
training. In my experience, this usually takes at least one year, and roughly
one or two months of a manager/mentor's time. An experienced super-star can
become productive within a month, requires just a few days of the manager's
time, and can easily be >3X more productive than the merely competent
engineer.

The problem is that it's almost impossible to identify most super-stars, and
the obvious super-stars command super-star salaries (although generally less
than the 3X productivity gain).

Creating a company that relies on training competent programmers may be less
efficient than one that seeks out super-stars, but it's still a proven and
workable model, with added benefits of higher employee loyalty and work-force
stability.

------
rubyfan
Is there any notes on the business model, what worked, what didn’t, etc?

I often wish there were more public post mortem on business models. Sharing
the code is fantastic and I applaud you for it.

~~~
speedplane
> Is there any notes on the business model, what worked, what didn’t, etc?

I'm skeptical of most of these post-mortems. They are generally written by the
founders themselves, and therefore have a built-in bias to shift blame to
external forces rather than unforced errors or a lack of understanding the
product/market fit. Further, it's likely the founders probably don't know the
true reasons why they failed because if they did, they could probably fix
them.

That said, they do make for interesting reads, especially when read side-by-
side with a similar company that did well.

------
asdf333
hey man. you did great. you have it a shot. it didn’t work out.

at least you’ll never wonder “what if i tried to do a startup”

you only live once.

cheers. hold your head up high and ignore the armchair critics

------
benatkin
I haven't tried running it yet, but it looks like pretty good code! It's
modular and based on a stack that a lot of JavaScript developers want to use.

It makes sense that there is a lot of skepticism in this thread. Most startup
code is either solving too narrow of a problem or too messy to be useful when
the startup is shut down. This appears to be neither.

------
veeralpatel979
Hey - sorry your startup didn't work out. If you decide to try again, I'm sure
it will be easier :)

And thanks for open sourcing your tech! I see some legitimate critiques in the
comments here - "it's not production-ready but you claim it is", "you
shouldn't have built your own e-commerce solution" \-- but even if no one uses
your open source project, people can learn from it.

------
throwaway536273
I skimmed through the code. I share the sentiments from most people here that
it lacks tests. But it does look like a lot of startup code I have seen
before.

On a side note, I noticed that you and your co-founders may be on H1-Bs ,
seems like you are working for Accenture - which hires a lot of H1Bs. If you
are, be careful. Depending on your situation, you may not be able to own a
business in the US. Most worrying part is the premium support you are trying
to start may be seen as consulting. Specially advertising this, USCIS may find
what you are doing on an H1B just by doing a web search on you. If you guys
are not on H1Bs, then please disregard my comment.

------
themgt
Not to be a jerk, but IMO this is a good example of why not to build your own
greenfield e-commerce solution for your B2C idea. They were a "a New York
based fashion retail startup that served consumers in South Asian countries to
shop from luxury western brands" so it's entirely unclear why their own in-
house e-commerce platform would be anywhere near enough of a value-add to be
worth the investment.

Skimming the code it looks like mostly an overengineered CRUD/SPA with a lot
of non-DRY code, possibly some security issues, and no obvious major game
changer that would have made it worth building in the first place. And
building it would drastically slow down ability to iterate on the actual
business proposition of selling stuff, down to e.g. the HTML for customer
emails hard-coded into JavaScript.

I sorta see this as the inverse of the no technical founder problem - it's the
solely technical founder problem, where you're supposed to be focused on
selling luxury fashion to South Asian consumers but that's boring and you'd
rather be a cool startup writing your own e-commerce app using "MongoDB,
Express.js, Vue.js, Node.js, Mongoose ORM, Redis", etc. Like seeing a nail and
deciding to build a hammer factory from scratch to supply yourself with a
single hammer.

There are companies doing millions of dollars per day in sales on Shopify or
similar platforms. You should at least be at a significant fraction of that or
doing something extremely weird before you consider DIY.

~~~
zweep
Nobody doing marketplaces etc. should be using anything but off-the-shelf
software until $10 million annual revenue.

~~~
amoitnga
why 10 mil? where the number come from?

~~~
zweep
It’s obviously not precise. But roughly after that you are making about a
million a year minimum in cash flow and can think about spending $250k+ on
custom software.

------
jitendrac
Thanks for sharing, Personally, I don't find myself using it if I do
e-comerrce stuff,but It is really good head-start for someone who want to
learn how things work in real. And best of luck for any future work.

------
Viveckh
Thank you so much, everyone, for your feedback! Appreciate the encouragement
and constructive criticisms equally. We understand and share the shortcomings
you mentioned as well. As one of the co-founders and the key person to take
the blame, I wanted to answer some of the common concerns and admit our
weaknesses as well.

Why build your own platform instead of Woocommerce/Shopify?

The countries we were targeting in south Asia were countries like Nepal and
Bangladesh where debit card purchases aren't really a thing. Most of the
transactions are still in cash, bank transfers that require using local
payment gateways or locally popular app-based transfers (which resemble Venmo
and Square Cash in the US). And also, we needed to use a combination of
shipping services since worldwide shippers like UPS and FedEx don't ship to
the doorsteps in these countries since home addresses aren't easily GPS-able
due to organization issues. Some of us grew up in these countries, so we've
experienced this personally. These were just some of the custom situations
which wouldn't have been addressed while using Woocommerce or Shopify. So we
decided to build our own platform to customize it as per our unique needs as
we go.

Licensing

We would appreciate feedback on this very much. We went with MIT License since
that seemed to be the only one that allowed people to use it without much
restrictions. I admit I didn't spend much time on this, but now looking at all
the forks and engagement, it is something that needs refinement for sure.

Shortcomings in the tech and tests

There is a fair share of shortcomings which we are aware of - like missing
tests and antipatterns. We wanted to get the initial version to the market
quick, so a good portion of the work was rushed. We're working towards
addressing these issues now, since we never thought someday Veniqa would be
open-sourced and others might end up adopting it. Also, the engineering team
for 80% of the build was just two of us, and we had a third member join us
after. With regular full time engineering jobs during the day, the only way to
finish building Veniqa was through caffeine powered insanity of 15 hr coding
marathons during nights, weekends and vacations.

Future Plans, Contributions and Developer Documentation

We are currently in the process of building test suites, docker images and
writing extensive documentation to speed up startup time. Hopefully, so we can
encourage code contribution from other smart fellow engineers like yourselves.
Also, there are areas like shipping where the logic is heavily geared towards
fitting our custom needs, we are looking to generalize that. In general, we
aren't aiming Veniqa at people for whom Shopify or Woocommerce gets the job
done. It is for the engineers or bedroom startups who have custom needs due to
the nature of the business or want to use it as a baseline to speed up rapid
development.

Any github issues, code contributions are all greatly appreciated.

I have detailed some of the lessons I learned in the process in this article.

[https://medium.com/swlh/why-my-startup-never-went-live-
despi...](https://medium.com/swlh/why-my-startup-never-went-live-despite-a-
production-ready-tech-55d344c0c057)

------
737min
It is wonderful you were able and willing to opensource the IP after the
startup didn’t succeed. More founders should try to do that and plan for it
when raising financing - including in investor rights documents or the
company’s charter.

------
tnolet
Why did you guys build your own e-commerce stack?

------
Conan_Kudo
Thank you for doing the awesome thing and making your stack Free Software. It
would have been great if your startup had succeeded _and_ you did this, but
it's great that you did it nonetheless. :)

I don't personally like doing much JavaScript/Nodejs development, but it'll be
interesting diving into what it looks like for something like this...

------
Edmond
Maybe you should regroup and try to make this your next startup?

As alluded to by some of the comments, this was probably a misguided effort
for the original startup but could be worth pursuing by itself.

I believe this is how the likes of Slack, twitter and a number of other
companies came to be.

~~~
echelon
Twitter was a pivot? How have I never heard that? What was their original
product?

Edit: Wow, so I missed this whole story:
[https://www.fastcompany.com/1837848/insiders-history-how-
pod...](https://www.fastcompany.com/1837848/insiders-history-how-podcasting-
startup-pivoted-become-twitter)

------
VvR-Ox
Thank you for sharing this with us and good luck with your next idea!

------
freelancercv
What was the reason not to choose open source eCommerce CMS like woo-commerce,
opencart which have proven ground records?

------
vindows18
Why the OSS framework itself can not be a product? A saas alternative to
shopify.

------
sibeliuss
That is some high-quality code (minus the lack of tests). Nice job!

~~~
sverhagen
Maybe it's very readable, but in some circles production code with no tests is
considered per definition low quality. Or: if there's no tests, the code
"doesn't exist".

~~~
nicoburns
That seems pretty absolutist. Tested code is only as good as the tests
themselves. I'd take readable, reliable code which covers all the corner cases
over tested code that doesn't actually work reliably any day.

Of course, tests can help you achieve this kind of high quality code, and good
tests have other benefits like helping you to prevent regressions when
modifying the code, but you can still have high quality code without them and
low quality code with them.

~~~
amoitnga
in my experience, taken from projects I worked on with and without tests, even
bad tests are better than no tests at all.

No tests usually good indicators that there will be a lot of repeated and
overcomplicated code. Having a solid test coverage allows you to
change/extract functions at any point when you see something is getting outta
shape. With no tests, however, it's much easier and less scary to add rather
than change.

People often make a point that writing tests takes time, but I'm pretty sure
it slows you down in the beginning of work and speeds you up quite a bit when
you amount some volume, and further you go, more you benefit from having a
decent coverage. Also, oftentimes, especially on the server side, it's just
easier to implement/verify with automated test from the start rather than by
hand.

None of it is related to the OP codebase, just thoughts in the abstract.

~~~
speedplane
> People often make a point that writing tests takes time, but I'm pretty sure
> it slows you down in the beginning of work and speeds you up quite a bit
> when you amount some volume, and further you go, more you benefit from
> having a decent coverage.

I certainly hope that quality testing is more than just your preference or
even a good practice: it's now a central part of software development. At this
point, we know enough about the benefits of good testing to say that it's
practically malpractice to not have them. Good tests may not be a strong
enough signal to conclude that a project is good quality, but lack of tests is
a clear sign that a project is low quality.

------
mighty_bander
Thanks, my friend! Hopefully people will run with it.

------
ada1981
🇺🇳 I really support the meme of open-sourcing code / projects that fail.

Thanks for taking the time to do this.

Is there a directory of now public domain code / IP from dead start ups? 🇺🇳

~~~
SahAssar
Why the UN flags at the start and end of your comment?

~~~
ada1981
About every 12 months I like to see if some emojis are still allowed on HN.

------
martini333
cool, I guess.

But why would anyone use this?

~~~
atymic
Even if it's not usable for other, it could be a great resource as an example
MEVN stack app for newer developers to learn from.

Props to you guys for open sourcing it!

~~~
dfcowell
Unfortunately the repo has some truly awful antipatterns. The catalog service
is a masterclass in how not to write Node.

~~~
anonytrary
I think the controller/service abstractions are completely unnecessary and
cause unwanted indirection. Otherwise, this looks like a typical CRUD service
-- with custom logging, database model schemas, authentication, and routes
that utilize all of the above.

~~~
ozfive
So fix it!!! It's open source. Put some work in, or your complaints fall on
deaf ears.

~~~
anonytrary
You're assuming quite a lot. First, I'm not saying it's broken, so what is
there to "fix"? Second, I'm not using this library, so why would you expect me
to submit a PR? People aren't expected to contribute to libraries just because
they noticed a smell in the code. Open source is about contributing to stuff
you use. You don't have to (and shouldn't be expected to) fix everything you
see broken in in the world.

------
wilsonfiifi
A more in depth analysis as to why the startup “failed” can be read here [0].
Thanks for your contribution to open source Viveck and good luck with your
various projects.

[0] [https://medium.com/swlh/why-my-startup-never-went-live-
despi...](https://medium.com/swlh/why-my-startup-never-went-live-despite-a-
production-ready-tech-55d344c0c057)

~~~
kevindong
> We had a production-ready suite of apps built from the ground up over the
> past few months, but as we got closer to launch, the incompetent work from
> other teams started to become painfully evident to proceed any further.

Claiming that software that never saw any real production traffic is
"production-ready" is a bold claim to say the least. I dug into the code base
and there doesn't appear to be _any_ tests. I really hope no one actually uses
this application for anything real. I will say that the code does appear to
look clean. But validating its functionality is a mammoth task that probably
isn't worth doing when existing marketplaces/hosted stores already exist that
undoubtedly do it better.

The author also doesn't seem to have any qualms about burning bridges either.

~~~
ARandomerDude
Yeah the tone of that entire article struck me as very arrogant. Even "small"
things like "my engineers" \-- I don't think I'd want to work with this
person.

~~~
ozfive
You obviously don't understand your position in the economy then. As an
engineer you are a comodity. As much as you would like to deny this fact you
still are. Why do you think that you make a salary and the companies make
hundreds of millions or billions!?!?! The tone of your comment struc me as
very arrogant.

~~~
lukevdp
Maybe it’s cultural differences but in Australia I have never heard “My
engineers” and would never use it myself.

A company does not own it’s employees. It simply purchases their labour.

~~~
whack
That's a very odd way to view a generic term. I don't own _" my friends"_ but
I wouldn't think twice about saying _" my friends went to the bar last
night"_. Similarly for _" my co-workers"_, _" my manager"_ or _" my uber
driver"_. Just because someone used an uncommon expression, does not mean they
have some nefarious intent behind it. Especially when the context is
completely innocuous

> _I was too mesmerized working heads down with my engineers knocking out
> features and crunching out thousands of lines of code for a few months_

------
bkberry352
So in buzzwords: a SaaS pivot

~~~
threeseed
In what way is this is a SaaS pivot ?

They aren't selling software. And they aren't selling subscriptions. All they
are offering is professional support.

------
ozfive
Shame, shame, shame, on every detractor to open source here. The code may be
crappy but at least someone released code to the public and they get to learn
from it. Why don't you all write a blog post on the intricacies of how shitty
this code is so that future developers can learn what not to do. Your negative
responses are shameful. And you won't do a write-up since you are a lazy to
begin with!

~~~
kevindong
There's nothing wrong with open sourcing bad code---we do live in a free world
after all. But much like they were free to open source it, I'm free to
critique it, not use it, and not support it.

It's just striking that the team behind the project calls their code
"production-ready" despite it objectively not being true. Furthermore, they
have the audacity to try charging for a support contract for what is
undeniably going to be buggy code. Albeit I suppose it's still admirable they
open sourced their code at all.

~~~
catoc
> "... it's a free world, I'm free to critique it"

He didn't say you're not free to critique it. He asked that if you do,
critique it in a useful way: don't just shame it, but instead articulate what
exactly sucks and how it could be done better.

If you failed and are brave enough to show your failure to the world, let's
appreciate that and learn from it, not bash it so that afterwards no one dares
releasing anything anymore (not saying you did this, just explaining his
point).

Kudos for opensourcing!

~~~
matz1
People are free to shame it too.

------
dpcan
So, not only did it not make enough money for the business to run, you decided
to support it for forever for free as open source?

I suppose you can just ignore every issue and problem and security
vulnerability that comes up in the future, or hope that contributors decide to
fix things for you. Or spend countless hours of your own valuable time
updating the system for some kind of mental satisfaction?

I love open source, I use open source, I like that this is open source, but I
can't understand why people actually open source things.

~~~
microcolonel
Who said they'd support it?

