What's Changed
This is a release candidate for the 3.0 release.
Breaking change: Next.js to Vite
The 3.0 release contains breaking changes because the frontend is now implemented using Vite.js instead of Next.js.
The main benefits of using Vite instead of Next is that the build times are much better and there is actual support for static exports, which Next.js doesn't provide well. This means that deploying Bracket as static website to e.g. Cloudflare results in much better load times (and therefore user experience) than a Next.js application hosted on Vercel can offer.
Important
This migration from Next.js to Vite unfortunately means environment variables need to be renamed, e.g.:
NEXT_PUBLIC_API_BASE_URLshould now be called:VITE_API_BASE_URLetc.
See the configuration docs for more information.
Single Docker container
Furthermore, bracket can now be run in a single Docker container that serves both the frontend and backend. It is basically the existing backend container, except that FastAPI also serves the frontend. Requests to the backend have to be prefixed with /api, see SERVE_FRONTEND and API_PREFIX in the configuration docs for more information. The docker-compose.yaml example file has been updated to use the new "combined" docker image. This is mostly meant to quickly check out Bracket and see how it looks like, or running it locally. A huge benefit is that this prevents CORS issues because the backend and frontend are on the same domain. For production, it won't offer the same performance as hosting the frontend on e.g. a CDN but it will work fine on production as well.
Other improvements
Some other (devex) improvements have been implemented:
- Using pipenv instead of uv
- Using hey-api to use FastAPI's
openapi.jsonto generate typescript types for responses, bodies, query parameters - Use pnpm instead of yarn for frontend package management
- Using pyrefly, along with mypy, for type checking
- Bumping Mantine to Mantine 8
New Contributors
- @oscartobar made their first contribution in #1378
Full Changelog: v2.2.5...v3.0.0-rc1