Deterministic asset hashing for cache-safe production deployments.
AssetForge is a lightweight, open-source build tool written in Delphi that provides content-based asset versioning for modern web deployments.
It ensures browsers always receive the correct asset version while allowing aggressive HTTP caching.
Browser caching issues are one of the most common production problems. AssetForge solves this by:
- 🔐 Generating SHA-256 content hashes
- 🏷 Renaming assets with deterministic version identifiers
- 🔁 Updating HTML references automatically
- ⚡ Supporting incremental builds
- 📦 Keeping source files untouched
- 📄 Generating a manifest.json for traceability
- 🚀 Example
Input
<script src="assets/app.js"></script>
<link rel="stylesheet" href="assets/style.css">
<script src="assets/app.3f2c9ab4a1bc.js"></script>
<link rel="stylesheet" href="assets/style.a91e44dd82fa.css">
Safe to cache forever.
📦 Features
- SHA-256 hashing
- Incremental build detection
- Manifest generation
- Clean dist/ output directory
- CLI-friendly
- CI/CD ready
🔧 Installation
Clone the repository:
git clone https://github.com/yourname/AssetForge.git
Build using Delphi (RAD Studio).
🖥 Usage
assetforge --prod --ci -r ./src -d ./dist -m ./manifest.json
options
--help help
--prod renamme assets
--dev Disable hashing (development mode)
--ci Execution in CI/CD context
-r Origin directory
-d Destination directory
-m manifest file name
🛣 Roadmap
- CSS url() parsing
- GitHub Action template
🤝 Contributing
Contributions are welcome.
If you find a bug or have an improvement idea:
- Open an issue
- Submit a pull request
📄 License MIT License — free for commercial and private use.
