Files
bracket/frontend/package.json
Erik Vroon 583eb4e963 Migrate Next.js to Vite (#1397)
Vite is much simpler to use than Next.js and we don't need any of the
features Next has that Vite doesn't have.

Benefits of moving to Vite are:
- Much better performance in dev and prod environments
- Much better build times
- Actual support for static exports, no vendor lock-in of having to use
Vercel
- Support for runtime environment variables/loading config from `.env`
files
- No annoying backwards-incompatible changes on major releases of Next
- Better i18n support without having to define getServerSideProps on
every page
- Better bundle optimization
- No opt-out Vercel telemetry 

Also replaces yarn by pnpm and upgrades mantine to 8.3
2025-11-12 11:18:06 +01:00

73 lines
2.2 KiB
JSON

{
"name": "bracket",
"version": "1.0.0",
"private": true,
"scripts": {
"dev": "vite",
"build": "vite build",
"analyze": "ANALYZE=true vite build",
"start": "vite start",
"typecheck": "tsc --noEmit",
"export": "vite build && vite export",
"jest": "jest",
"jest:watch": "jest --watch",
"prettier:check": "prettier --check \"**/*.{ts,tsx}\"",
"prettier:write": "prettier --write \"**/*.{ts,tsx}\"",
"test": "tsc --noEmit && pnpm run prettier:write"
},
"dependencies": {
"@emotion/react": "^11.14.0",
"@emotion/server": "^11.11.0",
"@hcaptcha/react-hcaptcha": "^1.14.0",
"@hello-pangea/dnd": "^18.0.1",
"@mantine/core": "8.3.7",
"@mantine/dates": "8.3.7",
"@mantine/dropzone": "8.3.7",
"@mantine/form": "8.3.7",
"@mantine/hooks": "8.3.7",
"@mantine/notifications": "8.3.7",
"@mantine/spotlight": "8.3.7",
"@react-icons/all-files": "^4.1.0",
"@tabler/icons-react": "^3.35.0",
"@vitejs/plugin-react": "^5.1.0",
"axios": "^1.13.0",
"date-fns": "^4.1.0",
"dayjs": "^1.11.10",
"i18next": "^25.6.0",
"nuqs": "^2.7.3",
"react": "^18.3.0",
"react-dom": "^18.3.0",
"react-i18next": "^16.2.0",
"react-icons": "^5.5.0",
"react-qr-code": "^2.0.12",
"react-router": "^7.9.5",
"swr": "^2.3.0"
},
"devDependencies": {
"@trivago/prettier-plugin-sort-imports": "^6.0.0",
"@types/node": "^24.10.0",
"@types/react": "^18.3.0",
"@types/react-dom": "^18.3.0",
"@typescript-eslint/eslint-plugin": "^7.18.0",
"@typescript-eslint/parser": "^7.18.0",
"eslint": "^8.57.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-typescript": "^18.0.0",
"eslint-config-mantine": "^3.2.0",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsx-a11y": "^6.10.0",
"eslint-plugin-react": "^7.37.0",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-testing-library": "^7.13.0",
"i18next-browser-languagedetector": "^8.2.0",
"i18next-http-backend": "^3.0.2",
"postcss": "^8.5.0",
"postcss-preset-mantine": "^1.18.0",
"postcss-simple-vars": "^7.0.1",
"prettier": "^3.6.0",
"typescript": "^5.8.2",
"vite-plugin-i18next-loader": "^3.1.3",
"vite": "^7.2.2"
}
}