Skip to main content

Overview

DeployHub enforces usage limits to ensure fair resource allocation across all users. Limits are defined per plan and enforced at the system level.
All limits are defined in /prototype/backend/src/constants/planLimits.js:1

Free Plan Limits

The Free plan includes the following quotas:

Projects

3 projects maximumDeploy up to 3 separate projects simultaneously

Monthly Requests

2,000 requests/monthTotal HTTP requests across all projects

RAM Allocation

512 MB per projectMemory available for each deployment

CPU Allocation

0.1 vCPUFractional CPU for each container

Free Plan Restrictions

FeatureStatus
Custom Domains❌ Not available
Team MembersLimited to 1
Team CollaborationNot supported
// Free plan limits from planLimits.js:2-9
free: {
  projects: 3,
  requests: 2000,
  ram: 512,
  cpu: 0.1,
  customDomain: false,
  teamMembers: 1,
}

Pro Plan Limits

The Pro plan significantly increases all quotas:

Projects

10 projects maximum3.3× more projects than Free

Monthly Requests

100,000 requests/month50× more requests than Free

RAM Allocation

2048 MB (2 GB) per project4× more memory than Free

CPU Allocation

1.0 vCPU10× more CPU than Free

Pro Plan Features

FeatureStatus
Custom Domains✅ Unlimited
Team Members✅ Unlimited
Team Collaboration✅ Full support
// Pro plan limits from planLimits.js:10-16
pro: {
  projects: 10,
  requests: 100000,
  ram: 2048,
  cpu: 1,
  customDomain: true,
}

How Limits Are Enforced

When you attempt to create a new project:
  1. System checks your current plan
  2. Counts your existing active projects
  3. Compares against PLAN_LIMITS[plan].projects
  4. Blocks creation if limit exceeded
You must delete an existing project or upgrade to Pro to create more projects after reaching the limit.
HTTP requests are tracked per billing cycle:
  • Free: 2,000 requests/month
  • Pro: 100,000 requests/month
When quota is exceeded:
  • Additional requests may be throttled
  • Error 429 (Too Many Requests) returned
  • Service resumes at next billing cycle
Monitor your request usage in the dashboard to avoid hitting limits.
RAM and CPU limits are enforced at deployment time:
# Docker container resource limits
resources:
  limits:
    memory: ${PLAN_LIMITS[plan].ram}Mi
    cpu: ${PLAN_LIMITS[plan].cpu}
  • Containers cannot exceed allocated RAM
  • OOM (Out of Memory) kills occur if limit exceeded
  • CPU is throttled based on allocation
From planLimits.js:7 and :15:
  • Free: customDomain: false - feature completely disabled
  • Pro: customDomain: true - full access
Attempting to add a custom domain on Free plan returns:
{
  "error": "Custom domains require Pro plan",
  "upgrade": "/billing/plans"
}
Collaboration features are plan-restricted:
  • Free: Maximum 1 team member (yourself)
  • Pro: Unlimited team members
Team invitations on Free plan will fail validation.

Monitoring Your Usage

1

Check Dashboard

View real-time usage metrics in your account dashboard
  • Current request count
  • Active projects
  • Resource utilization
2

Set Up Alerts

Configure notifications for:
  • 80% quota usage warnings
  • Quota exceeded alerts
  • Subscription expiry reminders
3

Review Logs

Access deployment logs to identify:
  • Memory spikes
  • CPU bottlenecks
  • Request patterns

Plan Comparison Table

All values below are enforced from PLAN_LIMITS constant
ResourceFree PlanPro PlanIncrease
Projects310233%
Requests/Month2,000100,0004,900%
RAM (MB)5122,048300%
CPU (vCPU)0.11.0900%
Custom DomainsNoYesN/A
Team Members1UnlimitedN/A

What Happens When Limits Are Exceeded?

Exceeding limits can impact your application’s availability and performance.

Project Limit Exceeded

// System response when creating project #4 on Free plan
{
  "error": "Project limit reached",
  "limit": 3,
  "current": 3,
  "plan": "free",
  "action": "Upgrade to Pro or delete existing project"
}

Request Quota Exceeded

// HTTP 429 response
{
  "error": "Rate limit exceeded",
  "limit": 2000,
  "used": 2001,
  "resetDate": "2026-04-01T00:00:00Z"
}

Memory Limit Exceeded

When a container exceeds RAM allocation:
  1. Linux OOM killer terminates the process
  2. Container restarts automatically
  3. Deployment may enter crash loop
  4. Health checks fail
Solution: Upgrade to Pro for 2GB RAM

CPU Throttling

When CPU usage exceeds allocation:
  • Process is throttled (not killed)
  • Response times increase
  • Performance degrades
  • User experience suffers
Solution: Upgrade to Pro for full vCPU

Optimizing Resource Usage

  • Use smaller base images (Alpine Linux)
  • Remove development dependencies in production
  • Implement memory-efficient algorithms
  • Enable garbage collection tuning

When to Upgrade

Consider upgrading from Free to Pro when:

High Traffic

Consistently approaching 2,000 requests/month

Multiple Projects

Need more than 3 active deployments

Performance Issues

Experiencing memory or CPU constraints

Custom Branding

Require custom domain support

Next Steps