Angular 17 introduced a revolutionary new approach to building web applications with signals, deferred loading, and a completely revamped control flow. But what most developers miss is that Angular's tooling ecosystem exposes powerful APIs you can use programmatically.
The Angular CLI API
Angular's CLI is not just a command-line tool — it's a programmable build system built on top of the Angular DevKit. You can use it to:
- Generate components programmatically using schematics
- Analyze your project structure via the workspace config API
- Run custom builders that hook into the Angular build pipeline
- Lint and transform code using the Angular ESLint API
Schematics: Angular's Code Generation API
import { SchematicEngine } from "@angular-devkit/schematics";
import { NodeModulesEngineHost } from "@angular-devkit/schematics/tools";
const engineHost = new NodeModulesEngineHost();
const engine = new SchematicEngine(engineHost);
// Load Angular schematics collection
const collection = engine.createCollection("@schematics/angular");
// Create a component schematic
const schematic = collection.createSchematic("component");
This lets you build custom code generators, migration tools, and project scaffolding systems.
Angular Compiler API
The @angular/compiler package gives you direct access to Angular's template parser:
import { parseTemplate } from "@angular/compiler";
const result = parseTemplate(
`<div *ngIf="show">{{ title }}</div>`,
"template.html"
);
console.log(result.nodes); // AST of the template
You can use this to:
- Build custom linting rules for Angular templates
- Create documentation generators
- Analyze template complexity
- Build migration tools (e.g., from *ngIf to @if)
Angular CDK: A Free UI Toolkit API
The Component Dev Kit (CDK) is Angular's secret weapon — a set of behavior primitives:
import { DragDropModule } from "@angular/cdk/drag-drop";
import { ScrollingModule } from "@angular/cdk/scrolling";
import { OverlayModule } from "@angular/cdk/overlay";
import { A11yModule } from "@angular/cdk/a11y";
Each module is a standalone API:
- Drag & Drop — full drag-and-drop with sorting, previews, placeholders
- Virtual Scrolling — render millions of items efficiently
- Overlay — position floating elements (tooltips, dropdowns, modals)
- Accessibility — focus traps, live announcements, keyboard navigation
Angular Signals API (v17+)
import { signal, computed, effect } from "@angular/core";
const count = signal(0);
const doubled = computed(() => count() * 2);
effect(() => {
console.log(`Count is ${count()}, doubled is ${doubled()}`);
});
count.set(5); // Triggers effect automatically
Signals are Angular's reactive primitive — fine-grained reactivity without RxJS complexity.
Real-World Use Case
I built a web scraping dashboard using Angular 17's signals for real-time data updates. The CDK's virtual scrolling handled 100K+ scraped records smoothly, and the overlay API powered the data preview popups.
Need to scrape data for your Angular app? Check out my web scraping tools on Apify — get structured data from any website in minutes, no coding required.
Need a custom scraping solution? Email me at spinov001@gmail.com — I've built 78+ production scrapers.
Top comments (0)