GitHub - SourceCode/ForgeTS: A scaffolding tool for quickly standing up new projects with default structures and best practices.
Production-grade project scaffolding for TypeScript.
ForgeTS is a powerful CLI tool and infrastructure factory designed to accelerate TypeScript development. It provides deterministic, security-first scaffolding for modern applications, handling everything from monorepo structure to strict quality gates.
๐ Key Features
- Production-Ready Scaffolding: Generate full-stack TypeScript applications with best practices baked in.
- Security First: Built-in adherence to NIST 800-53 Rev5 compliance standards (where applicable).
- Monorepo Support: Optimized for managing multiple packages and applications in a single workspace.
- Quality Gates: Pre-configured pipelines for strict type checking, linting, and testing.
- AI-Native: Designed with AI agents in mind, including comprehensive self-documentation (
AGENTS.md).
๐ ๏ธ Tech Stack
- Runtime: Node.js (>=20.0.0)
- Package Manager: pnpm
- Language: TypeScript
- Testing: Vitest
- Tooling: ESLint, Prettier, Husky
๐ Quick Start
To get started with ForgeTS locally:
-
Clone the repository:
git clone <repository-url> cd ForgeTS
-
Install dependencies:
-
Build the project:
-
Run the CLI (example):
# Run the CLI from the package source pnpm --filter @forge-ts/cli run start --help
For detailed instructions, see the Installation Guide and First Run Guide.
๐ Documentation
Detailed documentation is available in the docs/ directory.
- Installation: Prerequisites and detailed setup steps.
- Setup: Environment configuration and secrets management.
- Functionality: Core features and capabilities.
- Architecture: Deep dive into the monorepo structure and components.
- Testing & Coverage: comprehensive guide to testing strategy and coverage reports.
- Security: Authentication, authorization, and security practices.
- Contributing: Guidelines for developers contributing to ForgeTS.
๐งช Testing
We use Vitest for unit and integration testing.
# Run all tests pnpm test # Run tests with coverage pnpm test --coverage
See Testing Documentation for more details.
๐ค Contributing
We welcome contributions! Please see our Contributing Guide for details on how to get started.