Skip to main content

Platform Roadmap

Short Term (0-6 months)

  • Have each app manage its own dependencies
  • Extend app registry for dashboard panels
  • Upgrade to React 17
  • Extend app registry for settings pages
  • Extend app registry for composability panes
  • Extract pertinent metrics from our code at build time and store in the cloud
  • Get sourcemaps working in production/QA again
  • Unify query parameter parsing/stringifying
  • Extract TS info from local packages and generate README content

Mid Term (6-12 months)

  • Randomize time zone when running Jest tests
  • Create GitHub Action for obtaining weekly metrics
  • Better visibility into Rhapsody performance (DD, NR)
  • Migrate all lodash imports to using nested imports, e.g. import { orderBy } from "lodash" should be import orderBy from "lodash/orderBy" and enforce via the "no-restricted-imports" lint rule
  • Audit the assets/ directory and remove what’s not used anymore
  • Collaborate on a "staging" environment based on a QA setup
  • Investigate using MSW or similar to mock network requests
  • Implement eslint-plugin-jsx-a11y

Long Term (+12 months)

  • Build each app independently
  • Remove all SVG loaders from webpack
  • Move from Babel to esbuild/sucrase/swc

Completed

  • A11y improvements in nav shell (#4561)
  • Up our number of test runners from 4 to either 6 or 8 (#4571)
  • Extend app registry for tasks (#4656)
  • Move certain checks (invalid imports, etc.) into a separate Babel(?)-based check tool <-- changed this to instead be custom ESLint rules (#4587)
  • Move storybook, including dependencies, to its own subdirectory (#4811)
  • Build a CLI tool/VS Code extension for working with Rhapsody (rhapsody-extension)
  • Get Rhapsody ready to boot without angular by getting initializing code out of application.js (Epic)
  • Add webpack plugin to show pretty errors in the browser (Closed - Not Fixed)
  • Roll out React Query as the canonical way to handle data fetching (doc)
  • Enforce not reaching down into @rhythm, @rhapsody, and @shared packages in Rhapsody (#4922)
  • Extend app registry for routed pages (#4936 & #4957)
  • Require reviews in /platform directory via CODEOWNERS file (#5697)
  • Refactor Pusher out of Angular and into a shared package (#5621)
  • Extend app registry for banners (#5795)
  • Interview other teams to identify pain points on Rhapsody platform
  • Pull configurable dashboard into its own package (#5875, #5920, #5915, #6008, & #5942)
  • Update to Webpack v5 (Prior Art, #6308)
  • Localization setup (#6140)
  • Separate docs site for Rhapsody (#6266)
  • Upgrade to latest Jest (#6291)
  • Implement the PNPM package manager (#6294)