Paste a long link, click Shorten, and get a tidy cat‑powered URL back! 😸🔗

- Serverless & Lightweight – zero infrastructure to patch or babysit.
- Custom Short IDs – six‑character alphanumerics generated on the fly.
- One‑click Copy – quick share button (coming soon!).
- DynamoDB Analytics‑Ready – every redirect can be counted for stats.
- Full Dark Mode – purr‑fect for night owls.
| Layer | AWS Service | Emoji |
|---|---|---|
| Frontend | S3 Static Website | 🌐 |
| API Endpoint | Lambda Function URL | 🌀 |
| Compute | AWS Lambda (Python 3.13) | 🐍 |
| Data Store | DynamoDB (PK=id) |
📊 |
| Permissions | IAM Role with GetItem / PutItem |
🔐 |
Everything is provisioned manually in the AWS Console — no Terraform, SAM, or CDK required.
-
Setting Value Table name WhiskersURLPartition key id(String)
-
- Runtime → Python 3.13.
- Execution role → select existing role LabRole.
- Enbale Function URL + Auth type = NONE.
- Upload
lambda_function.py(see/srcfolder).
-
- CORS → Allow origin
*, methods*, headersContent-Type. - Copy the generated URL, into the Lambda – call it
BASE_URL.
- CORS → Allow origin
-
- Create an S3 bucket with public‑read (static hosting) enabled and ACLs turned ON.
- Edit
WhiskersURL.html: update thefetch()URL to yourBASE_URL. - Upload HTML + logo PNG, and Make them public by using ACLs.
-
- Visit the S3 website endpoint.
- Paste a long link → Shorten.
- Click the returned short URL – you should see a 302 redirect to the original site.
- 📈 Click counters (increment a
hitsattribute per redirect). - ⏳ TTL / Expiry – auto‑delete stale links via DynamoDB TTL.
- 🔗 Custom Domain – map
whis.rsvia CloudFront & ACM. - 📋 Copy button & toast – polished UX.
Found a bug or have an epic idea? Open an issue or PR! Everyone’s welcome in the litter box.
MIT – use it, remix it, just don’t blame the cat if you break it. 🐾