Shrnk is a serverless URL Compression Service built with TypeScript and Express, deployed on AWS.
It transforms long, unwieldy URLs into compact, efficient forms while operating entirely serverlessly, leveraging AWS cloud services for scalability, high availability, and low maintenance.
Shrnk provides a modern, lightweight system for compressing URLs into concise identifiers that are easy to share and manage.
The service is fully serverless, powered by AWS Lambda, API Gateway, DynamoDB, S3, and CloudWatch, making it highly scalable and cost-efficient.
- 🌍 Serverless Architecture — zero server provisioning or maintenance
- ⚡ Compact & Efficient URLs — transform long URLs into short, shareable forms
- 📈 Scalable by Design — automatically handles traffic spikes without manual intervention
- 🔐 Secure — environment secrets and AWS IAM best practices
- 📊 Monitored — logs and metrics through AWS CloudWatch
- Auto-scaling: AWS Lambda automatically scales the number of function instances based on traffic — Shrnk can handle sudden spikes in requests without downtime.
- Pay-per-use: You pay only for the compute time you use, making it cost-efficient.
- High Availability: Lambda functions run in multiple Availability Zones, ensuring resiliency.
- No Server Management: Focus on code and business logic; AWS handles infrastructure, scaling, and patching.
- Fast Deployment: Integrates seamlessly with Serverless Framework for quick updates and CI/CD pipelines.
| Layer | Technology |
|---|---|
| Language | TypeScript |
| Framework | Express.js |
| Infrastructure | Serverless Framework |
| Cloud Provider | AWS |
| Core Services | Lambda, DynamoDB, S3, API Gateway, CloudWatch |
git clone https://github.com/<your-username>/shrnk.git
cd shrnknpm install
Create a .env file in the project root: DYNAMO_TABLE_NAME=shrnk-data JWT_SECRET=your_secret_key BASE_URL=https://your-domain.com
Run locally using Serverless Offline: npm run offline
npm run deploy
CommandDescriptionnpm run buildCompile TypeScript into JavaScriptnpm run deployBuild and deploy via Serverless Frameworknpm run offlineRun the app locally with API Gateway + Lambda emulation
This project is licensed under the ISC License.
Taufiq Hassan Serverless & Cloud Developer ☁️ 🔗 GitHub
