Born from a decade of development in finance, telecom and legal, CxJS bakes in the UI patterns teams keep rebuilding. Open source, battle-tested, and now TypeScript-first.
Built as one cohesive system for data-driven web applications, with consistent patterns and a great developer experience.
Typed models, consistent binding, and layout primitives keep screens easy to build, easy to refactor, and easy to autocomplete.
1 import { TextField, LookupField } from 'cx/widgets';
2 import { createModel, LabelsTopLayout } from 'cx/ui';
3
4 interface UserModel {
5 firstName: string;
6 lastName: string;
7 email: string;
8 countryId: number;
9 }
10
11 const m = createModel<UserModel>();
12
13 export default (
14 <LabelsTopLayout columns={2}>
15 <TextField value={m.firstName} label="First Name" />
16 <TextField value={m.lastName} label="Last Name" />
17 <TextField value={m.email} label="Email" />
18 <LookupField value={m.countryId} label="Country" options={countries} />
19 </LabelsTopLayout>
); Interactive examples that combine models, widgets, and charts into real portal screens.
| Type | Count |
|---|---|
| Feature | 24 |
| Docs | 12 |
| Bug | 8 |
| UX | 6 |
| User | Action |
|---|---|
| Alice | Completed task #42 |
| Bob | Created PR #128 |
| Carol | Reviewed PR #127 |
| David | Fixed bug #89 |
Explore the docs, try the examples, and start building today.
Get Started