Most teams need CI/CD (run the build and deploy every time a developer pushes) or staging (host a server with my app in it to share), but current approaches always have at least one of these problems:
- Simplistic (only run unit tests)
- Slow (wait 10 minutes to run the same repetitive setup steps like "npm install")
- Complex (cache keys, base images, a slack channel to reserve staging servers, …)
We’ve spent over a year iterating with our customers to build a product that solves all of these problems.
Our configuration files (Layerfiles) look like Dockerfiles, so regular developers can write and maintain them. Here's one that creates a staging server for create-react-app:
FROM vm/ubuntu:18.04
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && curl -fSsL https://deb.nodesource.com/setup_12.x | bash && apt-get install nodejs python3 make gcc build-essential
COPY . .
RUN npm install
RUN npm test
RUN BACKGROUND npm start
EXPOSE WEBSITE http://localhost:3000
We charge a flat $42/mo/developer on our paid plan. Because it's a flat fee and not usage based, we're incentivized to make things as fast as possible: Our current margins come from a custom-built hibernating hypervisor that lets us avoid running "npm install" thousands of times per day.
We’ve upgraded the free tier to 5GB of memory for new installations this week. It’s perfect for personal projects or small MVPs where you’d like a powerful demo server that will build on every push and automatically hibernate when it’s not being used.
The easiest way to try out LayerCI is to follow our interactive tutorial: https://layerci.com/ or look at the docs: https://layerci.com/docs/
We would love to hear your thoughts about CI/CD, staging, and what we’ve built!