Stop writing repetitive form code.
Build type-safe, dynamic Angular forms in minutes, not hours.
π Documentation β’ π Getting Started β’ π Migrating from ngx-formly β’ π¬ Discord β’ π Issues
Coming from ngx-formly? ng-forge is built on Angular Signal Forms β see the side-by-side migration guide for a concept-by-concept mapping with full working code on both sides.
npm install @ng-forge/dynamic-forms @ng-forge/dynamic-forms-material// app.config.ts
import { provideDynamicForm } from '@ng-forge/dynamic-forms';
import { withMaterialFields } from '@ng-forge/dynamic-forms-material';
export const appConfig: ApplicationConfig = {
providers: [provideDynamicForm(...withMaterialFields())],
};// component.ts
import { DynamicForm, type FormConfig, type InferFormValue } from '@ng-forge/dynamic-forms';
@Component({
imports: [DynamicForm],
template: `<form [dynamic-form]="config" (submitted)="onSubmit($event)"></form>`,
})
export class LoginComponent {
config = {
fields: [
{ key: 'email', type: 'input', value: '', label: 'Email', required: true, email: true },
{ key: 'password', type: 'input', value: '', label: 'Password', required: true, minLength: 8, props: { type: 'password' } },
{ type: 'submit', key: 'submit', label: 'Sign In' },
],
} as const satisfies FormConfig;
onSubmit(value: InferFormValue<typeof this.config.fields>) {
console.log('Form submitted:', value); // inferred: { email: string; password: string }
}
}β‘ Signal Forms β Native Angular Signal Forms integration
π― Type-Safe β Full TypeScript inference for form values
π¨ UI Agnostic β Material, Bootstrap, PrimeNG, Ionic, or custom
β Validation β Shorthand validators and conditional validation
π Conditional Logic β Dynamic field visibility and requirements
π Multi-Step Forms β Built-in wizard and pagination support
π i18n Ready β Observable/Signal support for labels and messages
| Angular | @ng-forge/dynamic-forms |
|---|---|
| 22.x | 1.x |
| 21.x | 0.x (experimental) |
Signal Forms are stable as of Angular 22. The 0.x line targets Angular 21, where Signal Forms were still experimental and could change in patch releases. Each release pins its Angular requirement via peerDependencies; npm warns on a mismatch.
| Package | Description |
|---|---|
| @ng-forge/dynamic-forms | Core library |
| @ng-forge/dynamic-forms-material | Material Design |
| @ng-forge/dynamic-forms-primeng | PrimeNG |
| @ng-forge/dynamic-forms-ionic | Ionic |
| @ng-forge/dynamic-forms-bootstrap | Bootstrap 5 |
| @ng-forge/dynamic-form-mcp | MCP server for AI-assisted form generation |
| @ng-forge/openapi-generator | Generate forms from OpenAPI specs |
- Feature overview
- Installation
- Field Types
- Validation
- Conditional Logic
- Type Safety
- i18n
- Custom Integrations
git clone https://github.com/ng-forge/ng-forge.git && cd ng-forge
pnpm install
pnpm run build:libs
pnpm run test
pnpm run serve:docsSee Developer Guides for architecture docs, testing strategy, and creating UI adapters.
Special thanks to the people who shaped this framework.
A huge thank you to the following supporters of ng-forge! π
MIT Β© ng-forge
β Star us on GitHub β’ Join our Discord β’ Report an Issue


