My Startup Failed, So We Open-Sourced the Tech

(veniqa.com)

337 points | by Viveckh 1523 days ago

29 comments

  • lioeters 1523 days ago
    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

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

    • woutr_be 1523 days ago
      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 1523 days ago
        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.

    • rochak 1523 days ago
      Exactly how I felt when I read read this post.
  • m0zg 1523 days ago
    Note, however, that this MIT licensed code includes https://github.com/Viveckh/Veniqa/blob/develop/website/js/is..., 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.
    • klyrs 1523 days ago
      This should be the top comment... perhaps you could raise the issue on github?
    • tyingq 1522 days ago
      The commercial license, though, is pretty reasonably priced. $25 for one developer, $110 for 8, and $320 for unlimited.

      Alternatively, porting to shuffle.js or filterizr (both MIT licensed) might not be too hard.

      https://vestride.github.io/Shuffle/

      https://yiotis.net/filterizr/#/

    • ozfive 1523 days ago
      This is the most concise reason why not to use this code. The rest are complaining about the code quality rather than the implications of the licensing issues here.
      • m0zg 1523 days ago
        It's quite OK to use, if you do a review, identify all problematic dependencies, and license them under more "commercially friendly" licenses, or replace them with something else.

        I do advise to be very careful about such things, and spend the effort to figure out the legal obligations that stem from transitive deps though. Not just for this project either, for _any_ project.

        • ryukafalz 1522 days ago
          Or, you know, if you’re okay with the GPL. :)

          But agreed, you need to be aware of the license obligations of any code you use.

          • m0zg 1522 days ago
            What I wanted to point out is that just because software X is licensed under MIT or BSD or Apache 2.0, doesn't mean that all of its dependencies are, and therefore, that it's _only_ licensed under those licenses. I have observed several times in the wild people not understanding or appreciating the meaning of this crucial difference. That's a recipe for much regret later on when you think you can keep your trade secrets, and you legally can't.
    • Semaphor 1523 days ago
      But it's used as-is. That shouldn't trigger the viral clause, or am I misunderstanding something?
      • m0zg 1523 days ago
        You are misunderstanding something. ANY GPLv3 anywhere in your code makes your code subject to GPLv3's terms.
        • Semaphor 1523 days ago
          But that is in your code, isn’t this just linking it?
          • rndgermandude 1523 days ago
            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).

          • circular_logic 1522 days ago
            As other commenters have pointed out linking may still make your software GPL. However, there is still some debate on this [1].

            [1] https://en.wikipedia.org/wiki/GNU_General_Public_License#Lin...

          • krig 1523 days ago
            Linking to GPL code makes all of the code subject to the GPL.
      • Conan_Kudo 1522 days ago
        You're thinking of the Affero GPL (AGPL), which triggers the reciprocity clause on modification for network services.

        The Lesser GPL (LGPL) limits the reciprocity to the code itself, provided you're only doing dynamic linking or equivalent and not melding the code into yours (i.e. static linking).

  • tarkin2 1523 days ago
    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.
    • supermatt 1523 days ago
      To OP: ignore the haters. They are happy to use closed source software and services with no way for them to verify the products live up to their high standards - they even mindlessly agree to those corporations terms indemnifying them from poor quality code and infrastructure.

      Additionally, many hugely successful open source products started off with less-than-ideal codebases. The haters dont realise this because they arent interested in contributing anything - they just wait until everyone else does the hard work, and then adopt the product as their own.

      Thanks for open sourcing something you spent the time to create. There are many who appreciate the time, cost and effort that takes.

    • boomboomsubban 1523 days ago
      This feedback came from advertising their code, not open sourcing it. Posting it here with this title is asking for opinions on it.
      • tarkin2 1522 days ago
        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 1522 days ago
          I'm not defending the comments made here, but they aren't a byproduct of open sourcing the code.
    • emidln 1523 days ago
      As a Dev, I don't care that the world sees my house is a mess if it means I don't have to rewrite some random component library or utility library again.
    • DrNuke 1522 days ago
      The serious point is: why all the software engineering effort for just another e-commerce website, instead of focusing on sales since day 1?
      • speedplane 1522 days ago
        > The serious point is: why all the software engineering effort for just another e-commerce website, instead of focusing on sales since day 1?

        And as for their decision to open source it, why focus solely on the code that they're open sourcing, rather than the ongoing support and development they will be providing. Creating a successful open source project often comes with many of the same challenges in creating a successful company: you need to promote it, support the product and the community, and make a convincing argument that it's better than the competition.

    • marcinzm 1522 days ago
      >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.

      I found the feedback here quiet helpful as highlighting a case study in what not to do when building a business.

      Hacker News is not a marketing or promotion site. It is a discussion site.

    • hnarn 1523 days ago
      No good deed shall go unpunished
    • jodrellblank 1522 days ago
      And yet your comment does exactly what you complain about - belittle a group of people, with nothing positive to say, to make yourself feel good. Can you not see that?
  • ozfive 1523 days ago
    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 1523 days ago
      Code being open-source does not magically create a community or magically provides an incentive of working on it.
      • ozfive 1523 days ago
        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 1522 days ago
          > 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.

    • golergka 1523 days ago
      I disagree. I want to read this code to learn, so reading critique of it by various people is very useful.
    • fergie 1522 days ago
      Yup- dont like this open source code? Pull request or GTFO.
  • rubyfan 1522 days ago
    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 1522 days ago
      > 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.

    • amoitnga 1522 days ago
  • asdf333 1522 days ago
    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 1523 days ago
    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 1523 days ago
    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 1522 days ago
    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 1523 days ago
    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.

    • EpicEng 1523 days ago
      This perfectly describes how I feel in my current position... and why I signed an offer letter this morning to go somewhere else. We've hit hard times and no one seems to know exactly what we need to build to bring in new revenue.

      So instead of figuring that out as quickly as possible and building something of value... we're building a 'platform'. No one knows exactly what the platform needs to do, but management seems pretty sure that it needs to use gRPC for APis, table storage instead of SQL, an 'onion' architecture, a multi-stage data ingestion pipeline with more visio lines than I can count, docker, CQRS, a service bus for eventing, a micro-service architecture, no direct communication between services, and a SPA front end.

      While it does seem enticing to get paid (well) to play around with new tech, it strikes me as a massive waste of resources and a huge risk. I just want to build something that solves a real problem before we run out of money.

      • DelightOne 1523 days ago
        My condolences!

        > no direct communication between services

        How does indirect communication work?

        • williamdclt 1523 days ago
          I suppose they mean asynchronous communication through a message broker/queue?
          • EpicEng 1522 days ago
            Yep, exactly.
        • oulu2006 1522 days ago
          Is no direct communication between microservices necessarily a bad thing?

          I've made a few similar design decisions in our tech stack, we have no "direct communication" between microservices, discounting the shared database. Microservices communicate through the use of RabbitMQ.

          We build our system around the premise of eventual consistency, thus reducing the need of blocking computations.

          So-far this has served us rather well.

          • DelightOne 1521 days ago
            All has pros and cons. Here it is (async) central simple central communication vs central point of failure I guess.
    • mattkevan 1523 days ago
      Totally agree.

      E-commerce is hard, and getting the tech right is only a small part of it.

      I work for a very large e-commerce company, and I’ve been building e-commerce sites myself for years.

      My first attempt, in part, failed because I spent too much time trying to get the tech perfect and not enough on marketing. I should have accepted the tech was a bit crap and only tried to sort it once I had enough revenue to sort it properly.

      In my experience crappy tech doesn’t stop a company from being successful if it’s got good product/market fit. It might slow things down or cause problems later, but the company will still function. Focusing on the tech before getting the business fundamentals right means an ‘It’s been an incredible journey’ blog post is imminent.

      My rule now is to use off-the-shelf tech wherever possible, and only try and build something new if it provides enough value. Reinventing the wheel, only newer and shinier, is not providing value.

      • kd22 1522 days ago
        This is so true. The key to building something that succeeds in the longer term is because you are providing value to the market.

        Using shiny/new tech is just complementary, and might even come back to bite you later on.

    • notyourday 1523 days ago
      Their issue was that they were selling to South Asian countries and they thought the commerce there was done the way the commerce is done in the West. It is not. It is video and instant messaging with QR codes to buy.

      There are boutiques in NYC that sell 20-30k/week to SE Asia by being "showrooms" once or twice a week for 2-3 hours for QVC-like shows broadcast on chat platforms/TikTok/Instagram in native languages by 20 somethings who charge these boutiques 10-20% commissions.

      • 2323235555667 1523 days ago
        I guess you mean South Asia (which really just means India) and not SEA.

        I can’t speak for India but e-commerce in SEA is like it is everywhere else.

        Also, it’s very doubtful that people shopping at NY boutiques at a premium would not be comfortable with English and that ‘native language’ would be worth the effort.

        I live in SEA and when I want to shop — provided I’m too lazy to drive 5 miles to a JV, Polo, Fendi, Prada, Hermes, etc boutique — I can order from a local boutique / brand online.

        No one I know cares enough about boutiques in other countries to pay a premium, risk sizing issues. Generally people affluent enough to try to keep pace with trends in other markets travel enough to shop in them in person.

        Did you just make that up?

        • notyourday 1523 days ago
          > I can’t speak for India but e-commerce in SEA is like it is everywhere else.

          In the West we use credit cards and our payment systems are based around that. We do not do live video selling as a part of the commerce. Our platforms are optimized towards static image-based shopping carts with text describing products.

          > Also, it’s very doubtful that people shopping at NY boutiques at a premium would not be comfortable with English and that ‘native language’ would be worth the effort.

          They are broadcasting QVC-style out of New York boutiques to their viewers in Vietnam, China, India, Cambodia, Thailand.

          > No one I know cares enough about boutiques in other countries to pay a premium, risk sizing issues. Generally people affluent enough to try to keep pace with trends in other markets travel enough to shop in them in person.

          Good luck getting Dry Clean Only, BHH, Minions, Mia Vesper, Chen Peng etc by dropping by your local boutique.

          • mtnGoat 1523 days ago
            On the contrary i have seen a lot of growth in live video based sales in the US, the younger generation seems to really like it. Ive seen IG boutiques move $100k in product in under an hour, many times.
            • notyourday 1523 days ago
              This is the exact reason why tech people fail at business - their numbers are way off scale.

              100K per hour for 50% of the hours $432,000,000 per year. Total worldwide revenue of LVMH for 2019 is 53.7B euros. At 100k/h for 50 percent of the time it that mystery IG seller is at nearly half a percent of LVMH revenue.

              If you can give an NYC boutique owner targeting a luxury market ability to sell 10-20k for 2-3 hours a week of their time based on your audience and you can replicate it across different subsections of a luxury market, you will be picking up clients until the cows come home. Of course not single client would actually be able to do more than 2-3 hours a week of sales at most because they simply won't be able to get the product needed to resell. The LVMH-like supply chain is corporate and it is not sold via random channels, so each of the successful luxury boutiques has their own developed contacts with the designers/producers who have very small ( measured in single digits ) manufacturing capacity ( it is however or maybe because of it commands LVMH-level and even higher pricing and higher than LVMH level margins).

              Tech platform part here is 100% irrelevant. Building the sales platform on a top of shopify would have had the exact same results.

          • AmericanChopper 1523 days ago
            Traditional e-commerce is absolutely ubiquitous in SEA. Their primary e-commerce channels are web-page and app-based shopping carts, just like we have in the west. While it’s typical to support local payment methods, most sales are processed via credit/debit cards, just like in the west. Non-traditional channels certainly exist, but they are absolutely a fringe channel. Tupperware Parties are still a thing in SEA (although they’re mostly for MLM products), and a lot of businesses will let you order via DM, but those sales are nothing compared to the volume on sites like Shopee, Lazada, Tokopedia... They caught on a bit later than the west (I was personally involved in one of the first major e-commerce sites in a particular SEA economy), but their growing middle class does online shopping pretty much exactly the same way we do.
            • notyourday 1523 days ago
              The OP's company targeted luxury market. It has nothing in common with Shopee, Lazada or AliExpress.
          • dreamer7 1523 days ago
            In India, we use similar e-commerce platforms to the West and are probably more advanced in the payment infra with the advent of UPI (Unified Payments Platform).

            UPI is an interface that any bank or wallet app can use to allow individuals or businesses to send money to a mobile number or UPI Id.

            • say_it_as_it_is 1523 days ago
              UPI isn't more advanced. It's just different. If there is a compelling value preposition for it to disrupt credit card payment processing, it will be adopted. The financial incentives have to exist, though.
    • arkades 1523 days ago
      >Not to be a jerk

      It doesn't seem the OP was asking for a post-mortem of his start-up. It seems they were giving a gift to the community, by open-sourcing their work now that their project has come to an end.

    • zelly 1522 days ago
      > There are companies doing millions of dollars per day in sales on Shopify or similar platforms

      To be fair, Shopify takes a huge cut, and retail margins can't afford that.

      If I were them, I would have also made a homegrown e-commerce CRUD software as well.

      BUT I would have used Django or Ruby-on-Rails. It would have been finished so much faster. And I'm not sure it would even be much slower than the Node/PHP solution.

      The reason to make a greenfield solution is to plug in to the rest of your tech. It is easier to make it from scratch than to customize some third party e-commerce software. If you do not have any other software to plug in, and Shopify would actually fully meet your needs, then you should reconsider calling your idea a tech startup.

    • zweep 1523 days ago
      Nobody doing marketplaces etc. should be using anything but off-the-shelf software until $10 million annual revenue.
      • dman 1523 days ago
        Wonder how much of this is startups hiring early engineers who are only too willing to write new things to prove themselves.
      • amoitnga 1522 days ago
        why 10 mil? where the number come from?
        • zweep 1522 days ago
          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.
      • cbnotfromthere 1522 days ago
        Could you please give some examples of such off-the-shelf software for marketplaces?
    • SlippyCrisco 1523 days ago
      Solid advice.
    • say_it_as_it_is 1523 days ago
      This company was fortunate enough to have sufficient talent to build such a system. If they were forced to use shopify, they would have had another 11 months out of the year to do something productive with their time. This system may be the v2 that was created following a shopify v1.

      Grumble grumble costs grumble profits. Talented people don't stick around to maintain shopify workflow. Management needs to give people incentives to work, beyond a paycheck. Go ahead and refuse to recognize the fundamental needs of talented people. It's a great way for talent to reallocate itself to a place where it is more appreciated and supported.

      • marcinzm 1522 days ago
        Talented people being paid a lot of money to do something of little value (versus other cheaper approaches) is not a positive. As a business, the goal is to not to employ talented people but to make money. If the former doesn't help the later then that's okay.
      • sokoloff 1523 days ago
        Useful people will stick around to do what needs doing. Most of them will also be talented.
        • say_it_as_it_is 1522 days ago
          What talent is anyone developing with third party api glue work? Third party api talent. Spend years in shops that buy rather than build and you will have a major skill deficit when you move on and want to do more in your career. If a manager fails to develop actual talent, that manager deserves the outcome.
          • marcinzm 1522 days ago
            >Spend years in shops that buy rather than build and you will have a major skill deficit when you move on and want to do more in your career.

            That's not the fault of the company or the manager but the employee for staying in a job that does not line up with their long term career prospects. You cannot expect anyone to care about you except yourself. If they do then that's nice but don't expect it.

            >If a manager fails to develop actual talent, that manager deserves the outcome.

            You mean a successful company and stock options they can buy a house with?

            If a business succeeds then it can use it's series B/C funding to buy better talent. Expensive to do but by then money is a lot less tight.

            • say_it_as_it_is 1522 days ago
              You seem to think that there was a better use of technology than what was done in this case. I argue that there wasn't and that they did the best possible thing they could do with tech resources. The business failed despite the tech decisions. Now, the developers have something to show for their work, and valuable skills that others will pay to benefit by.
    • taytus 1523 days ago
      >Not to be a jerk, but

      Then don't.

      • marcinzm 1523 days ago
        To me his comment wasn't being a jerk at all.
      • sumedh 1523 days ago
        Sometimes people need to listen to some honest feedback without any BS.
        • wizardforhire 1523 days ago
          Unfortunately for the company in question and all those that will surely come after is that advice and more importantly the humility to hear that advice came too late. ~sigh
          • bcrosby95 1523 days ago
            One of the smartest things we can do is learn from the mistakes of others.

            Unfortunately most of us think we're too smart for that.

          • dewlinedew 1523 days ago
            Those who come after may find this HNews
  • jitendrac 1523 days ago
    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 1522 days ago
    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...

  • 737min 1522 days ago
    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 1523 days ago
    Why did you guys build your own e-commerce stack?
  • Conan_Kudo 1522 days ago
    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 1523 days ago
    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.

  • VvR-Ox 1523 days ago
    Thank you for sharing this with us and good luck with your next idea!
  • freelancercv 1522 days ago
    What was the reason not to choose open source eCommerce CMS like woo-commerce, opencart which have proven ground records?
  • vindows18 1523 days ago
    Why the OSS framework itself can not be a product? A saas alternative to shopify.
  • sibeliuss 1523 days ago
    That is some high-quality code (minus the lack of tests). Nice job!
    • sverhagen 1523 days ago
      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 1523 days ago
        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 1522 days ago
          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 1522 days ago
            > 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.

          • sibeliuss 1522 days ago
            I tend to think about tests as insurance. Without them, you're flying blind.
      • greatmango 1523 days ago
        let me guess - the people in those circles work for either already-profitable companies or companies flush with venture capital, rather than a company trying to get off the ground before it runs out of money?
        • sverhagen 1522 days ago
          I have worked for either established and startup companies (admittedly with varying success). I think it has more to do with the composition of the team. As engineers there are a lot of different experiences we can bring to the table, but some of us have had the transformative experience of being on projects where the testing was right, in how to do and the amount, and we have seen how it helps us on a daily basis to move faster and be humbled by the bugs that we'd otherwise have released, or that we'd otherwise would've had to troubleshoot on a remote system rather than fixing them minutes after creating them. I'm now making it a point to expose my team members to the same awesome experience. But I also understand that, as you're building a startup team, and there are many things you have to get right, this may be a skill you would go without.

          Also, I'm not advocating 99+% test coverage for new (startup) projects, but one could start with some tests selectively for core functionality or the most complex parts, and already enjoy a great overall benefit.

      • PetahNZ 1523 days ago
        What about the myriad of try catch console.log. With the statement in the readme "Database & file-based logging" unless they are overriding console, then I don't even know what they mean.

        https://github.com/Viveckh/Veniqa/search?q=console.log&unsco...

    • tnolet 1523 days ago
      What makes you say it’s high quality? Can you point out specifics?
    • PetahNZ 1523 days ago
      Am I missing something, from the 10 minutes I spent poking around this is mediocre at best.
      • sibeliuss 1522 days ago
        I'm not sure what codebases you've worked on, but this is hardly "mediocre" in any sense of the word. It's highly organized, consistent and modular. The toolchain is modern and set up well. The code is easy to read. There are folks the world over that would find working in this codebase a joy, and would be able to easily jump in and start contributing at any level of the stack.
  • mighty_bander 1522 days ago
    Thanks, my friend! Hopefully people will run with it.
  • ada1981 1523 days ago
    🇺🇳 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 1523 days ago
      Why the UN flags at the start and end of your comment?
      • ada1981 1522 days ago
        About every 12 months I like to see if some emojis are still allowed on HN.
    • chrismcb 1522 days ago
      This code isn't in public domain. It is open sourced and has a license.
      • ada1981 1522 days ago
        Good point. I’m curious about open source / public domain projects that started as funded projects.
  • martini333 1523 days ago
    cool, I guess.

    But why would anyone use this?

    • atymic 1523 days ago
      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 1523 days ago
        Unfortunately the repo has some truly awful antipatterns. The catalog service is a masterclass in how not to write Node.
        • anonytrary 1523 days ago
          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 1523 days ago
            So fix it!!! It's open source. Put some work in, or your complaints fall on deaf ears.
            • anonytrary 1523 days ago
              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.
        • preommr 1523 days ago
          seems pretty normal, what's so bad about it?
          • dfcowell 1523 days ago
            Thanks for the question - for clarity, this is the file I'm referring to in this reply: https://github.com/Viveckh/Veniqa/blob/develop/shopping-serv...

            1. The service is a leaky abstraction, it knows about HTTP status codes and presumably the response body format. The point of separating concerns is to make code reusable, HTTP response codes don't make sense outside of a HTTP call. Similarly, any calling code needs to know that `sortRule` is expecting a MongoDB sort parameter.

            2. The control flow is super unclear due to mixing async/await and Promise API coding styles. The `.catch()` call on the promise chain means that the `catch` block will never be hit and the API will always return OK, with the error object exposed to the client in the `responseData` - likely exposing implementation details about the server via the stacktrace on the error object.

            There are other nits I could pick, but those are the most important issues and my other criticisms are more a matter of preference.

        • ozfive 1523 days ago
          Are you even going to write a line of code to fix any of the 'awful anti-patterns' you mention or am I just going to get downvoted on Hacker News. For Christ's sake, this is why open source is failing. You all like to complain more than you actually do anything at all to fix things. Exactly the reason I never open source a line of code. There is no true community it's just a bunch of wankers that would rather complain about anti-patterns then make things better. Fuck.
      • PretzelFisch 1523 days ago
        How would someone judge the code quality and architecture to say this repository is a good example and how? Wouldn't the general tutorial and training material be a better source then a startups ship it now code base?
        • Jaygles 1523 days ago
          The code itself doesn't have to be good to be a good example. One thing the average tutorial doesn't have is complexity. Picking apart how this code handles complexity could be a good lesson to people who are trying to learn how to architect good sized projects.
          • dfcowell 1523 days ago
            Only if the reader is discerning enough to notice when they’re looking at a bad implementation. Otherwise there’s a risk of learning bad practices.
    • bcrosby95 1523 days ago
      It might be a good read to see how other people are solving a problem. But I wouldn't use it directly. After looking at the code for a few minutes I noticed this: https://github.com/Viveckh/Veniqa/blob/develop/shopping-serv...

      It makes sense that awkwardly hard coded hacks like this will exist in a startup's piece of software. But it's possibly full of similar things that might take a lot of effort to find, much less fix.

      When money is running out and deadlines are looming its hard to have the discipline to not do stuff like this, and a startup's goal tends not to really be to build open source software for everyone to use anyways, so I'm not surprised something like this might exist.

    • wolco 1523 days ago
      I'm using this to understand how certain pieces are structured coming from a different language background.
  • wilsonfiifi 1523 days ago
    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...

    • kevindong 1523 days ago
      > 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.

      • abc-xyz 1522 days ago
        > Claiming that software that never saw any real production traffic is "production-ready" is a bold claim to say the least.

        What is production traffic?

        > 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.

        Why? Plenty of great software doesn't include test files, and that's not a bad thing. Writing proper test files means you'll easily end up spending 2/3 of the time writing test code, and even after you've written all these test files, then you still have to do a lot of external tests as well. For instance, setting up external uptime services to ensure things are running as intended, testing everything is loading properly on multiple browsers + devices, stress test, etc. You seem to assume they've done no tests whatsoever just because they don't bother writing test files.

        > 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.

        It's worth doing if you're interested in working with a similar stack. I won't comment on the server code since I haven't worked with Node (and hate JS), but the Vuejs client looks good.

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

        I agree, but the same could be said about you.

      • ARandomerDude 1523 days ago
        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 1523 days ago
          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 1523 days ago
            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 1522 days ago
              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

          • ozfive 1523 days ago
            Keep downvoting. You tools are creating a feedback loop algorithm without writing a line of code and yet you complain about this very thing. Hacker News is dead for constructive debate. Instead of responding you cower behind a downvote. Damn, seriously!?!?
          • asveikau 1523 days ago
            > Why do you think that you make a salary and the companies make hundreds of millions or billions!?!?!

            Marx had this neat term "surplus value" to describe that problem.

    • will4274 1522 days ago
      Calling your coworkers "incompetent" in the second paragraph is.. a look. Especially when talking about false dependencies and over-engineering an MVP. A complete lack of pushback from engineering will lead to teams taking a dependency on engineering building the whole world, but this problem isn't just a "them" problem - pushback on expensive asks is a necessary part of business.
    • 100-xyz 1522 days ago
      What the article expresses is what I have also gone thru in my personal journey as an entrepreneur as well.

      I used to be in love with technology and built stuff in my own bubble. None of it gained traction. Then, I put less emphasis on tech and more on product-market fit and the let the two play off of each other. Obtained much better results!

  • bkberry352 1523 days ago
    So in buzzwords: a SaaS pivot
    • threeseed 1523 days ago
      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 1523 days ago
    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 1523 days ago
      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 1523 days ago
        > "... 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 1522 days ago
          People are free to shame it too.
    • mixmastamyk 1523 days ago
      You seem very confused about the subject and human nature for that matter. I don’t know how to help you.
      • catoc 1523 days ago
        Your comment is indeed not helping, anyone in any way. It just bashes someone making a point, without adding anything of substance.
        • mixmastamyk 1522 days ago
          A reality check may be helpful, assuming the person is ready to hear it.
          • catoc 1522 days ago
            True.
    • jodrellblank 1522 days ago
      Every comment of yours in this thread is insulting, negative, critical and - in your own words - commenting like that is shameful. What are you trying to contribute by calling everyone else who comments lazy arrogant wannabees?
  • dpcan 1523 days ago
    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.

    • atymic 1523 days ago
      Open sourcing your code in no way means you have to maintain it. Anyone can fork the repo & add their own features/fix issues. If you want them to make changes, they seem to have their development services on offer.
    • vxNsr 1523 days ago
      If you read the page you’ll they actually do offer a support package for enterprise.
    • microcolonel 1523 days ago
      Who said they'd support it?