- Home
- Introduction
Home
Introduction
Explore webapp.io's guides and examples
What is webapp.io?
Webapp.io is a hyper-optimized DevOps platform for webapps.
We build testing VMs in seconds every time you push code to GitHub, GitLab, or BitBucket.
- Our VMs automatically hibernate when they aren’t being used
- We let you duplicate VMs to make copies of your stack and run acceptance tests in parallel
- We take snapshots of the VM as it builds, so that future builds can entirely skip
docker pull
ornpm install
What happens when I sign up?
- You’ll install webapp.io onto a GitHub, GitLab or BitBucket repository
- Our onboarding will guide you to build a Layerfile which defines your VM build
- You commit your Layerfile, and we’ll automatically build it into a VM every time you push a commit.
What can serverless VMs be used for?
Our users primarily use serverless VMs for three things:
- Preview environments - by making a Layerfile with the EXPOSE WEBSITE directive, you immediately get an environment deployed for every pull request.
- Acceptance tests - by making a Layerfile with SPLIT 5, you can build your stack and fork it five times to run tests in parallel.
- Hosting - by using webapp.io hosting, you can make ephemeral environments stick around and not shut off.
At webapp.io, we’re building a serverless VM platform. You can even create multiple Layerfiles and combine them into powerful DevOps workflows to help your team ship 10x faster.
Limits
General Limits
The following general limits are applied to all Webapp.io accounts to prevent abuse.
- | Starter | Pro | Team | Scale |
---|---|---|---|---|
Number of members | 3 | 10 | 50 | Unlimited |
CI/CD Features | ||||
Concurrency | None | 6 parallel VMs | 12 parallel VMs | Custom based on server size |
Debugging terminal access | ✔ | ✔ | ✔ | ✔ |
BUTTON feature | ✔ | ✔ | ✔ | |
INHERITANCE feature | ✔ | ✔ | ✔ | |
SPLIT feature | ✔ | ✔ | ✔ | |
GitHub, GitLab, BitBucket Integrations | ✔ | ✔ | ✔ | ✔ |
Cypress, Reflect.run, Doppler Integrations | ✔ | ✔ | ✔ | ✔ |
API & Webhooks | ✔ | ✔ | ✔ | ✔ |
Layerfile Analytics | ✔ | ✔ | ||
Custom performance reports | ✔ | |||
Custom integration requests | ✔ | |||
Production-like preview environments | ||||
Access to free domain cidemo.co | ✔ | ✔ | ✔ | ✔ |
Secure preview environments | ✔ | ✔ | ✔ | ✔ |
Retry feature | ✔ | ✔ | ✔ | ✔ |
Version history guarantee | None | 15 days for 10 URLs | 30 days for 50 URLs | Custom |
Bandwidth | 10GB | 100GB | 1TB | Custom |
Number of private previewers | 3 | 10 | 50 | Custom |
Full stack hosting | ||||
Host your full stack MVPs | ✔ | ✔ | ✔ | ✔ |
Domains per organization | 1 | 5 | 10 | Unlimited |
Server access | ||||
VM access | 2 VMs | 7 VMs | 12 VMs | Custom based on private server |
Server type | Shared | Shared | Shared | Private |
Support, Security & Compliance | ||||
Technical support levels | Community Forum | Email & Slack Connect | Email, Slack Connect & Video with SLAs | |
Custom roles and permissions | ✔ | ✔ | ||
SOC2 and HIPAA support | ✔ | ✔ | ||
Security reviews | ✔ | |||
Pay by invoice | ✔ |
If your project is likely to exceed these limits, please contact sales to discuss solutions.
Domains
Starter | Team | Scale | |
---|---|---|---|
Domains per organization | Unlimited | Unlimited | Unlimited |
Snapshots & Snapshot Retention
A snapshot is a copy of a virtual machine at a specific moment in time. Snapshots help to load environments and configurations so that you can skip running steps that have not changed or that have successfully executed on previous commits.
Algorithm for Deleting Snapshots
Listed below is a summary of how we delete snapshots. It’s important to review this to learn the states of snapshots at different times.
- Split important snapshots into VIP, Important, and Not Important (VIP as the top tier).
Important Snapshots:
- Newer than 10 minutes
- Newer than a week old and the latest snapshot for an instruction
- Newer than a week old and contains the EXPOSE WEBSITE instruction for an open pull request.
VIP Snapshots:
- Prioritized snapshots per paying customer as determined by tier and how recent the snapshots are
-
Order Snapshot Importance (VIP, Important, Not Important)
-
Delete Snapshots
Delete Process:
- Delete the oldest not important
- Delete the oldest important
- Delete the oldest VIP
Environmental Lifecycle
Environments (Layerfiles with EXPOSE WEBSITE, Layerfiles that expose a debug terminal, etc.) have three lifecycle levels:
- Deleted, which means you can’t start them without rebuilding (rebuilding deletes everything, like your temporary database, registered user, and state in the environment).
- Stopped, which means you see a spinner as they start - Running, which means it’s currently running
Running to Stopped
The Running lifecycle to Stopped lifecycle happens for a few reasons:
- After 3 minutes of inactivity if there are builds queued
- After 60 minutes in general (this can be changed by our admin team if requested)
Stopped to Deleted
The Stopped lifectyle to Deleted lifecycle happens for two reasons:
- Something crashes (rare)
- Snapshot is deleted (see Snapshots & Snapshot Retention