This is a submission for the GitHub Finish-Up-A-Thon Challenge
What I Built
I built simple-rate-limiter, a small TypeScript Express middleware package that applies request rate limiting with both sliding-window and token-bucket algorithms. It started as a functional library, and I polished it into a publish-ready npm package with documentation generation, GitHub Pages deployment, and a clean package manifest.
Demo
- Repository: https://github.com/amarpreetbhatia/simple-rate-limiter
- Docs: configured for GitHub Pages at
https://amarpreetbhatia.github.io/simple-rate-limiter-npm package:https://www.npmjs.com/package/@amarpreetbhatia/simple-rate-limiter - Local run:
npm run build
npm run docs:build
The middleware can be used with createRateLimiter({ windowMs: 60000, maxRequests: 100 }) and supports headers, custom keys, and optional token-bucket mode.
The Comeback Story
Before, this project had only a basic TypeScript implementation and no documentation publishing path. I finished it by:
- renaming the project to
simple-rate-limiter - adding
jsdocconfiguration and adocs:buildworkflow - creating a GitHub Actions workflow to publish docs to
gh-pages - fixing package metadata so it is publish-ready on npm
- verifying local docs generation and package contents with
npm pack
That turnaround took the project from a good prototype into a deliverable npm library with documentation.
My Experience with GitHub Copilot
GitHub Copilot helped me move quickly by suggesting the right package metadata, scripts, and workflow structure. It also guided me through the JSDoc configuration and the GitHub Actions setup, so I could focus on finishing the product instead of worrying about the exact YAML syntax.
Top comments (0)