Kercel is an open-source alternative to Vercel that deploys static websites on AWS.
Import a GitHub repository, trigger builds on EC2 workers, and serve the build generated site through CloudFront. The infrastructure is provisioned using AWS CDK (Python), while a Python Lambda control plane manages deployments.
- GitHub repository deployments
- EC2 build workers
- CloudFront CDN for static hosting
- REST API for project and deployment management
- Real-time deployment logs over WebSockets
- IaC with AWS CDK
- Python
- AWS CDK
- AWS Lambda
- EC2
- API Gateway
- SQS
- DynamoDB
- S3
- CloudFront
- Next.js
- React
.
├── infra/ # AWS CDK application and Lambda handlers
├── web/ # Next.js dashboard
└── docs/ # Documentation and images
- Python 3.11+
- Node.js 20+
- AWS CLI configured
- AWS CDK CLI
git clone https://github.com/karthiksuki/kercel.git
cd kercelCreate a virtual environment.
macOS / Linux
cd infra
python3 -m venv .venv
source .venv/bin/activateWindows (PowerShell)
cd infra
python -m venv .venv
.venv\Scripts\Activate.ps1Install dependencies and deploy.
pip install -r requirements.txt
cdk deploy --all -c stage=devAfter deployment, note the stack outputs:
| Output | Description |
|---|---|
RestApiUrl |
REST API endpoint |
WebSocketApiUrl |
WebSocket endpoint |
CloudFrontDomainName |
Hosted website domain |
AcceleratorDns |
Global Accelerator endpoint |
Existing
devstacks created with older resource names may requirecdk destroybefore redeploying.
cd ../web
cp .env.example .env.localUpdate:
NEXT_PUBLIC_API_URL=<RestApiUrl>
NEXT_PUBLIC_WS_URL=<WebSocketApiUrl>Install dependencies and start the development server.
npm install
npm run devOpen http://localhost:3000.
Contributions are welcome! Please read CONTRIBUTING.md before opening an issue or pull request.
Licensed under the MIT License. See LICENSE.

