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.
import { TextField, LookupField } from 'cx/widgets';
import { createModel, LabelsTopLayout } from 'cx/ui';
interface UserModel {
firstName: string;
lastName: string;
email: string;
countryId: number;
}
const m = createModel<UserModel>();
export default (
<LabelsTopLayout columns={2}>
<TextField value={m.firstName} label="First Name" />
<TextField value={m.lastName} label="Last Name" />
<TextField value={m.email} label="Email" />
<LookupField value={m.countryId} label="Country" options={countries} />
</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