The Problem Every Developer Faces
Picture this: You're excited to start a new project. You create a new repository, run npm init, and then... the dreaded tooling setup begins.
npm install --save-dev eslint prettier husky lint-staged
npm install --save-dev @typescript-eslint/parser @typescript-eslint/eslint-plugin
npm install --save-dev stylelint stylelint-config-standard
npm install --save-dev commitlint @commitlint/config-conventional
# ... 20 more packages and counting
Then comes the configuration files:
.eslintrc.json.prettierrc.huskyrc.lintstagedrc.stylelintrccommitlint.config.js
Each with dozens of configuration options. Each needing to work together. Each requiring maintenance.
Two hours later, you still haven't written a single line of actual code.
Sound familiar?
The Real Cost of Developer Tooling
Let's be honest about what this costs:
- Time Lost: 2-4 hours per project setup
- Inconsistency: Every project configured slightly differently
- Maintenance Burden: Updating 10+ dependencies regularly
- Onboarding Friction: New team members confused by configuration
- Cognitive Load: Remembering what all these tools do
For a team of 5 developers starting 10 projects a year:
- 100-200 hours spent just on tooling setup
- That's 2.5-5 weeks of productive development time lost
And that's just setup. Add maintenance, debugging configuration conflicts, and keeping up with best practices? The real cost is even higher.
Introducing @vinesheg/dev-forge
What if you could get enterprise-grade developer tooling with a single command?
npm install --save-dev @vinesheg/dev-forge
npx forge init
That's it. 30 seconds and you're done.
dev-forge is a zero-configuration developer toolkit that bundles and pre-configures six essential development tools into one package:
- Biome - Lightning-fast linting and formatting (10-100x faster than ESLint)
- Knip - Find unused files, dependencies, and exports
- Lefthook - High-performance Git hooks (faster than Husky)
- Commitlint - Enforce conventional commit messages
- Stylelint - Professional CSS/SCSS linting
- npm-package-json-lint - Validate your package.json structure
Why This Matters
1. Zero Configuration
No configuration files to create. No options to remember. No decisions to make. It just works.
The package includes battle-tested defaults that follow industry best practices. You can override anything if needed, but 95% of projects won't need to.
2. Single Dependency
Instead of installing and managing 10+ packages:
Before:
{
"devDependencies": {
"eslint": "^8.0.0",
"prettier": "^3.0.0",
"husky": "^8.0.0",
"lint-staged": "^13.0.0",
"@typescript-eslint/parser": "^6.0.0",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"eslint-config-prettier": "^9.0.0",
"stylelint": "^15.0.0",
"stylelint-config-standard": "^34.0.0",
"@commitlint/cli": "^17.0.0",
"@commitlint/config-conventional": "^17.0.0"
}
}
After:
{
"devDependencies": {
"@vinesheg/dev-forge": "^1.0.0"
}
}
3. Built on Speed
dev-forge uses the fastest tools available:
- Biome (written in Rust) is 10-100x faster than ESLint
- Lefthook (written in Go) outperforms Husky significantly
- Parallel execution by default for even faster checks
On a medium-sized project:
- ESLint + Prettier: ~8 seconds
- Biome: ~0.5 seconds
That's a 16x speedup on every commit, every save, every check.
4. Automatic Git Hooks
Git hooks are installed automatically and run on every commit:
Pre-commit hook:
- ✅ Lints and formats staged files
- ✅ Checks CSS/SCSS
- ✅ Validates package.json if changed
- ✅ Auto-fixes issues when possible
Commit-msg hook:
- ✅ Enforces Conventional Commits
- ✅ Ensures clean commit history
- ✅ Enables automatic changelog generation
No bad code reaches your repository. Ever.
5. Team Consistency
Every developer on your team gets the same setup:
# New team member joins
git clone your-repo
npm install # Automatically runs 'forge init'
# ✅ Fully configured, ready to code
No more "works on my machine" issues. No more style debates. No more inconsistent code.
Real-World Impact
Before dev-forge:
Monday 9:00 AM: Start new microservice
Monday 9:05 AM: npm init
Monday 9:10 AM: Install ESLint, Prettier, Husky...
Monday 9:30 AM: Configure ESLint
Monday 10:00 AM: Configure Prettier
Monday 10:30 AM: Set up Husky + lint-staged
Monday 11:00 AM: Configure commitlint
Monday 11:30 AM: Fight with ESLint/Prettier conflicts
Monday 12:00 PM: Finally start coding
After dev-forge:
Monday 9:00 AM: Start new microservice
Monday 9:05 AM: npm install --save-dev @vinesheg/dev-forge
Monday 9:06 AM: npx forge init
Monday 9:07 AM: Start coding
Time saved: 2 hours 53 minutes
How It Works
dev-forge uses a smart "extends" pattern for maximum flexibility:
- Installation creates minimal local configs that extend the toolkit's defaults
- All tools run from the toolkit's own dependencies
- Zero maintenance - update one package, update everything
- Customization - override any setting by editing the generated configs
Example generated biome.json:
{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"extends": ["./node_modules/@vinesheg/dev-forge/configs/biome.json"]
}
Want to disable a rule? Just add it:
{
"extends": ["./node_modules/@vinesheg/dev-forge/configs/biome.json"],
"linter": {
"rules": {
"suspicious": {
"noExplicitAny": "off"
}
}
}
}
Usage
Initialize in a New Project
npm install --save-dev @vinesheg/dev-forge
npx forge init
Add to package.json Scripts
{
"scripts": {
"lint": "forge check",
"lint:fix": "forge fix"
}
}
Run Checks
npm run lint # Check all files
npm run lint:fix # Auto-fix issues
Git Hooks Run Automatically
git add .
git commit -m "feat: add user authentication"
# ✅ Pre-commit hook checks your code
# ✅ Commit message validated
# ✅ Commit succeeds if all pass
CI/CD Integration
Add to GitHub Actions:
- name: Quality Checks
run: npx forge check
That's it. All your quality checks in one command.
Who Should Use This?
Individual Developers
- ✅ Side projects
- ✅ Portfolio work
- ✅ Learning projects
- ✅ Open source contributions
Benefit: Spend time coding, not configuring
Startups
- ✅ Move fast without sacrificing quality
- ✅ Consistent standards from day one
- ✅ Easy onboarding for new hires
Benefit: Scale from 2 to 20 developers seamlessly
Established Teams
- ✅ Standardize across all projects
- ✅ Reduce maintenance burden
- ✅ Modernize legacy tooling
Benefit: Reduce tool setup time by 80%+
Open Source Projects
- ✅ Lower barrier for contributors
- ✅ Enforce quality automatically
- ✅ Modern, fast tooling
Benefit: More contributions, higher quality
Technical Details
Built With
- Biome - Rust-based linter/formatter
- Lefthook - Go-based Git hooks
- Modern, maintained packages only
Requirements
- Node.js ≥ 18.0.0
- Git (for hooks)
File Size
- Package: ~2 MB
- With dependencies: ~50 MB
- Negligible impact on project size
Performance
- Initialization: < 1 second
- Check command: 2-5 seconds (medium project)
- Git hooks: < 1 second
Comparison with Alternatives
| Feature | Manual Setup | ESLint+Prettier+Husky | dev-forge |
|---|---|---|---|
| Setup time | 2-4 hours | 1-2 hours | 30 seconds |
| Packages to install | 10+ | 6-8 | 1 |
| Config files | 5-7 | 4-5 | 5 (auto-generated) |
| Linting speed | Fast | Slow | Very fast |
| Maintenance | High | Medium | Low |
| Best practices | Maybe | Depends | Built-in |
| Git hooks | Manual | Manual | Automatic |
| Dead code detection | No | No | Yes |
| Package.json validation | No | No | Yes |
Getting Started Today
- Install:
npm install --save-dev @vinesheg/dev-forge
- Initialize:
npx forge init
-
Start coding:
- Git hooks are installed
- All tools configured
- Quality checks automatic
The Philosophy
dev-forge follows three core principles:
- Convention over Configuration - Sensible defaults that just work
- Speed Matters - Use the fastest tools available
- Developer Experience First - Make the right thing the easy thing
We believe developers should spend time solving problems, not configuring tools.
What's Next?
We're working on:
- 🔌 Plugin System - Add custom tools easily
- 📚 More Tools - Additional quality checks and automation
Try It Now
Don't let tooling setup slow you down. Try dev-forge in your next project:
npm install --save-dev @vinesheg/dev-forge
npx forge init
It takes 30 seconds. Your future self will thank you.
Published under MIT License. Free to use, modify, and share.
Top comments (0)