Skip to content

feat(ui): complete rebuild and modernization of the admin UI#91

Open
orielhaim wants to merge 5 commits intosocketio:developfrom
orielhaim:develop
Open

feat(ui): complete rebuild and modernization of the admin UI#91
orielhaim wants to merge 5 commits intosocketio:developfrom
orielhaim:develop

Conversation

@orielhaim
Copy link

Summary

Complete modernization of the Admin UI frontend (ui/). The existing stack has not been meaningfully updated since April 2023 and relies on dependencies that are deprecated or end-of-life. This PR rebuilds the frontend with a current, actively-maintained toolchain while preserving all existing functionality.

Motivation

The current UI depends on Vue 2 (EOL since Dec 31 2023), Webpack 4 via the deprecated @vue/cli-service, Vuetify 2, and several unmaintained packages (node-sass, babel-eslint, webpack-remove-debug). These create security exposure, prevent contributors from using modern APIs, and make the project increasingly difficult to maintain.

Migration details

Category Before After
Framework Vue 2.6 Vue 3.5
UI library Vuetify 2.4 Vuetify 4.0
Build tool Webpack 4 (@vue/cli-service 4.5) Vite 8
CSS - TailwindCSS 4.2
State management Vuex 3 Pinia 3
Router vue-router 3 vue-router 4
i18n vue-i18n 8 vue-i18n 11
Charts chart.js 3 + vue-chartjs 4 chart.js 4 + vue-chartjs 5
Linting & formatting ESLint 6 + Prettier + babel-eslint Biome 2.4
Package manager npm pnpm
Sass node-sass (deprecated) + sass-loader Dart Sass (built-in Vite support)
Icons bundled via vuetify-loader @mdi/font 7

Removed packages (no longer needed)

@vue/cli-plugin-babel, @vue/cli-plugin-eslint, @vue/cli-plugin-router, @vue/cli-plugin-vuex, @vue/cli-service, @vue/eslint-config-prettier, babel-eslint, core-js, eslint, eslint-plugin-prettier, eslint-plugin-vue, node-sass, prettier (ui), sass-loader, vue-cli-plugin-i18n, vue-cli-plugin-vuetify, vue-template-compiler, vuetify-loader, webpack-remove-debug

Added packages

@biomejs/biome, @vitejs/plugin-vue, @tailwindcss/vite, tailwindcss, vite, vite-plugin-vuetify, pinia, @mdi/font

UI refresh

Modernized the overall dashboard appearance for a cleaner, more contemporary look and feel, leveraging Vuetify 4's updated design language alongside TailwindCSS utility classes.

How to test

cd ui
pnpm install
pnpm dev

Breaking changes

  • Package manager: the ui/ project now uses pnpm. Run pnpm install instead of npm install.
  • Node.js: Vite 8 requires Node.js 20+.
  • Build output: generated by Vite instead of Webpack - file hashing and chunk structure in ui/dist/ will differ, but the deployment method (static file hosting) remains the same.

Related issues

@vercel
Copy link

vercel bot commented Mar 22, 2026

@orielhaim is attempting to deploy a commit to the SocketIO Team on Vercel.

A member of the Team first needs to authorize it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Question] Why not Vue 3?

1 participant