Skip to content

Migrate telemetry/ui from Create React App to Vite #780

@hemanthsavasere

Description

@hemanthsavasere

Is your feature request related to a problem? Please describe.
The telemetry/ui project uses Create React App (react-scripts@5.0.1), which is effectively deprecated and no longer actively maintained. This results in slow dev server startup, sluggish HMR (Hot Module Replacement), and outdated tooling that is falling behind modern React ecosystem standards.

Describe the solution you'd like
Migrate the telemetry/ui build tooling from Create React App to Vite. This involves:

  • Replacing react-scripts with vite and @vitejs/plugin-react
  • Creating a vite.config.ts with the existing proxy config (http://localhost:7241) migrated from package.json
  • Moving public/index.html to the project root and adding a <script type="module"> entry point
  • Updating package.json scripts (start → vite, build → tsc && vite build, test → vitest)
  • Replacing Jest/@testing-library jest adapters with Vitest equivalents
  • Replacing process.env.REACT_APP_* references with import.meta.env.VITE_*
  • Updating tsconfig.json to target ESNext and add "types": ["vite/client"]
  • Upgrading TypeScript from ^4.9.5 to ^5.x for better Vite compatibility

Describe alternatives you've considered
Keeping CRA and upgrading react-scripts to the latest patch, however, CRA is no longer receiving meaningful updates and is effectively end-of-life. Migrating to Next.js was also considered, but since this is a standalone telemetry UI without SSR requirements, Vite is the more appropriate lightweight choice.

Additional context
Vite offers significantly faster cold starts and HMR compared to CRA's webpack-based setup, which benefits active development of the telemetry UI. The existing Tailwind CSS setup (tailwindcss@^3.4.1) is fully compatible with Vite out of the box with no configuration changes needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/uiBurr UI (telemetry frontend)kind/improvementImproving something that already existspriority/highAffects many users, needs action within weeksstatus/acceptedTriaged, validated, ready to work on

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions