PolicyEngine / PolicyEngine/policyengine-app-v2
Migrate from Mantine to Tailwind + shadcn/ui
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 1
- Forks
- 3
- Avg merge
- 1d 50m
- Merged PRs (30d)
- 39
Description
Summary
Migrate policyengine-app-v2 from Mantine 8 to Tailwind CSS v4 + shadcn/ui. Mantine works but creates upgrade pain (v6→v7→v8 were breaking migrations) and locks styling to one library's patterns. Tailwind + shadcn/ui gives us owned components (no library upgrades), Tailwind alignment with policyengine-slides, and the largest React component ecosystem.
Status: complete
All phases implemented in PR #730. Zero @mantine/* imports remain. All Mantine packages removed from dependencies. CI passes (2999 tests, typecheck, lint, build).
Scope
- 287 files changed across the migration
- 192 files previously imported Mantine — all migrated
- 3 Mantine packages removed:
@mantine/core,@mantine/dates,@mantine/hooks - 2 Mantine dev dependencies removed:
eslint-config-mantine,postcss-preset-mantine
Phases (all complete)
- Phase 0: Foundation — Tailwind CSS v4 + shadcn/ui installed
- Phase 1: Wrapper components + hooks — Text, Stack, Group, Title, Container, Spinner + useMediaQuery, useViewportSize, useDisclosure
- Phase 2: Static/presentational pages —
shared/static/,home/, Footer - Phase 3: Blog, research, columns — Blog components, column renderers, brand pages
- Phase 4: Report output pages —
pages/report-output/+components/report/ - Phase 5: Form controls — Mantine form components → shadcn equivalents
- Phase 6: Charts + visualization — ChartContainer, maps, TwoColumnView
- Phase 7: AppShell, layout, header, sidebar — MantineProvider + AppShell replaced with Tailwind flex layout
- Phase 8: Pathways — Report/simulation/policy pathway wrappers and views
- Phase 9: Cleanup — All Mantine dependencies removed, theme files deleted
Supersedes #728 (vanilla-extract approach).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue states that the migration is complete in PR #730, covering 287 files and removing all Mantine imports and dependencies. Start by reviewing PR #730 and the listed migration phases; the stated completion criteria are passing tests, typecheck, lint, and build with no remaining Mantine packages.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, tailwindcss
- Domain
- frontend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 10/100