For devs who hate commit noise
No redirects. No ads. Just clean, GitHub-powered templates.
gitignore.lol is a modern, fast, and simple service for generating .gitignore files for your projects. Inspired by the classic gitignore.io, but built with modern technologies and a focus on simplicity and performance.
- 🔗 No Redirects - No weird rebranding and redirects. The base API URL stays the same.
- 🚀 Zero Fuss - Quick and simple .gitignore generation powered by GitHub's official templates.
- 💻 Web or CLI - Generate templates through the web interface or use the REST API - whatever fits your workflow best.
- ⚡ Fast & Reliable - Built with Go for maximum performance and reliability.
- 🔒 Rate Limited - Protected against abuse with configurable moving window rate limits optimized for efficiency.
- 🌐 CORS Enabled - Ready for cross-origin requests.
Get a list of available templates:
curl https://gitignore.lol/api/listGenerate a .gitignore file for Go and Node.js:
curl https://gitignore.lol/api/go,nodeRequirements:
- Go 1.25 or later
- Git
# Clone the repository
git clone https://github.com/valerius21/gitignore.lol.git
cd gitignore.lol
# Install dependencies
go mod download
# Build
go build -o gitignore-lol ./cmd/main.go
# Run
./gitignore-lolThe API is documented using OpenAPI/Swagger. You can access the documentation at:
GET /api/list- Get a list of all available templatesGET /api/{templateList}- Get combined .gitignore file for specified templates- Example:
/api/go,node,python
- Example:
- Go 1.25 or later
- Bun (for frontend)
- Docker (optional)
- Git
- Clone the repository
git clone https://github.com/valerius21/gitignore.lol.git
cd gitignore.lol- Install dependencies
go mod download- Run tests
go test ./...- Generate documentation
./scripts/generate_docs.shPORT- Server port (default: 4444)LOG_LEVEL- Logging level (default: warn)
The service includes a high-performance moving window rate limiter optimized for resource-constrained environments:
- Configurable limits: Set max requests per IP per time window
- Memory efficient: Automatic cleanup prevents memory leaks
- Monitoring:
/statsendpoint for operational visibility - Selective: Only applies to API endpoints, not static content
Example usage:
# Custom rate limiting (50 requests per 30 seconds)
./gitignore-lol --rate-limit 50 --rate-window 30
# Disable rate limiting
./gitignore-lol --enable-rate-limit=false$ go run ./cmd/main.go --help
Usage: main [flags]
Flags:
-h, --help Show context-sensitive help.
--port=4444 Port the server listens on.
--repo="https://github.com/github/gitignore.git" Gitignore repository where the .gitignore files are versioned.
--clone-path="./store" Location of the locally stored gitignore repository
--fetch-interval=300 Interval (seconds) in which the linked repository gets updatedThis project is licensed under the MIT License - see the LICENSE file for details.
- Project URL: https://github.com/valerius21/gitignore.lol