Launch HN: LayerCI (YC S20) - Staging servers that act like (and replace) CI
<i>"LayerCI is an all-in-one devops platform, but we provide three main value propositions to our users:"</i><p><pre><code>  - Run e2e tests on every commit.
  - Collaborate easier with per-PR staging environments.
  - Set up CI/CD to build and deploy to production
</code></pre>
Anyone can do this without your company. If that's the value you bring, then I don't need your company. What value do you bring that I can't get somewhere else?<p>Also, red flag: mis-use of the term DevOps for marketing purposes.<p><i>"There are a few ways of thinking about these files named ‘Layerfile’:"</i><p><pre><code>  - Auto-discovered Dockerfiles that build entire virtual machines instead of containers, just as quickly.
  - Define a tree of virtual machines. Each subsequent layer can inherit all the running processes in its parents.
  - Trigger specific actions like build, push, test, and deploy in parallel every time you push new code.
</code></pre>
It's not explained well what benefit there is to using VMs rather than containers. Later on it briefly mentions possibly better caching than Docker containers. If it's actually better than Docker, you are <i>severely</i> burying the lede. "Better than Docker" should be on the front page. It's also not explaining whether I need to throw away all the time and money I might have already invested in containers, or what this is and isn't compatible with.<p>A lot of this solution is really built around optimizing one specific problem, which is caching during re-running whole CI pipelines. This limits the viability of your business. As soon as your customers figure out a new way to solve this problem, they don't need your custom platform anymore. I would consider LayerCI more of a specific feature of a much larger offering.<p>(In particular, the 'correc't way to solve this problem is to stand up an environment for your PR and structure your CI so you only re-run the parts that affect the particular change you want to make, rather than re-running the entire pipeline. It involves putting more thought into running your pipeline but often means the only tasks that get executed are copying a file and restarting your app)<p>P.S. You're installing the yarn GPG key and then not doing anything with it. Your node setup script isn't installing the yarn repo or yarn itself, so this is a throwaway command.