Charles de Dreuille 243e5e7139 feat(ui)!: redesign Table component with new useTable hook API
Redesigns the Table component to provide a better developer
experience with a new useTable hook supporting three pagination
modes: complete (all data loaded upfront), offset (server-side),
and cursor (server-side).

BREAKING CHANGES:

- Table component (React Aria wrapper) is renamed to TableRoot
- New high-level Table component handles data display, pagination,
  sorting, and selection
- useTable hook completely redesigned with new API

New features:

- Unified useTable hook with mode discriminator for all
  pagination patterns (complete, offset, cursor)
- Custom page caching for server-side pagination with
  bidirectional navigation and request cancellation
- Debounced query changes to reduce backend load
- Stale data preservation with visual indicator during reloads
- Row selection with toggle/replace behaviors
- Per-row disable control via getIsDisabled

MIGRATION GUIDE:

1. Update imports and use the new useTable hook:

   ```diff
   -import { Table, useTable } from '@backstage/ui';
   -const { data, paginationProps } = useTable({ data: items, pagination: {...} });
   +import { Table, useTable, type ColumnConfig } from '@backstage/ui';
   +const { tableProps } = useTable({
   +  mode: 'complete',
   +  getData: () => items,
   +});
   ```

2. Define columns and render with the new Table API:

   ```diff
   -<Table aria-label="My table">
   -  <TableHeader>...</TableHeader>
   -  <TableBody items={data}>...</TableBody>
   -</Table>
   -<TablePagination {...paginationProps} />
   +const columns: ColumnConfig<Item>[] = [
   +  { id: 'name', label: 'Name', isRowHeader: true, cell: item => <CellText title={item.name} /> },
   +  { id: 'type', label: 'Type', cell: item => <CellText title={item.type} /> },
   +];
   +
   +<Table columnConfig={columns} {...tableProps} />
   ```

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-12-19 12:48:03 +01:00
2025-12-17 20:46:04 +00:00
2025-12-16 14:08:20 +00:00
2025-12-06 11:11:38 -06:00
2025-11-19 22:21:30 +01:00
2025-12-03 11:29:14 +01:00
2025-12-18 13:24:48 +01:00

headline

Backstage

English | 한국어 | 中文版 | Français

License CNCF Status Discord Code style Codecov OpenSSF Best Practices OpenSSF Scorecard

What is Backstage?

Backstage is an open source framework for building developer portals. Powered by a centralized software catalog, Backstage restores order to your microservices and infrastructure and enables your product teams to ship high-quality code quickly without compromising autonomy.

Backstage unifies all your infrastructure tooling, services, and documentation to create a streamlined development environment from end to end.

software-catalog

Out of the box, Backstage includes:

  • Backstage Software Catalog for managing all your software such as microservices, libraries, data pipelines, websites, and ML models
  • Backstage Software Templates for quickly spinning up new projects and standardizing your tooling with your organizations best practices
  • Backstage TechDocs for making it easy to create, maintain, find, and use technical documentation, using a "docs like code" approach
  • Plus, a growing ecosystem of open source plugins that further expand Backstages customizability and functionality

Backstage was created by Spotify but is now hosted by the Cloud Native Computing Foundation (CNCF) as an Incubation level project. For more information, see the announcement.

Project roadmap

For information about the detailed project roadmap including delivered milestones, see the Roadmap.

Getting Started

To start using Backstage, see the Getting Started documentation.

Documentation

The documentation of Backstage includes:

Community

To engage with our community, you can use the following resources:

Governance

See the GOVERNANCE.md document in the backstage/community repository.

License

Copyright 2020-2025 © The Backstage Authors. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page: https://www.linuxfoundation.org/trademark-usage

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

Security

Please report sensitive security issues using Spotify's bug-bounty program rather than GitHub.

For further details, see our complete security release process.

S
Description
Copy of backstage/backstage from Spotify Backstage
Readme Apache-2.0 1.3 GiB
Languages
TypeScript 93.9%
MDX 2%
JavaScript 2%
CSS 1.5%
Handlebars 0.3%