Skip to content

Conversation

@dbtlr
Copy link
Owner

@dbtlr dbtlr commented Jan 15, 2026

No description provided.

Major changes:
- Replace Remix with Astro 5 for SSG/SSR framework
- Upgrade Tailwind CSS from v3 to v4 with @tailwindcss/vite
- Convert React components to Astro components where possible
- Replace @headlessui/react with vanilla JS for mobile menu
- Switch from Material Symbols to Lucide React icons
- Update all dependencies to latest versions
- Migrate from .eslintrc.cjs to flat config (eslint.config.mjs)
- Configure Prettier for Astro files
- Preserve contact form functionality with Astro server actions
- Maintain Cloudflare Pages deployment compatibility

Benefits:
- Faster build times with Astro's island architecture
- Modern Tailwind v4 with CSS-first configuration
- Reduced JavaScript bundle size
- Better developer experience with TypeScript
Changes:
- Removed React, react-dom, @astrojs/react, and lucide-react
- Removed unused ESLint plugins and dependencies (clsx, vite, etc.)
- Added astro-icon for zero-JS icon rendering
- Converted all Lucide React icons to astro-icon components
- Moved custom SVGs to src/icons for astro-icon
- Removed vite-plugin-svgr (no longer needed)
- Updated .gitignore for ESLint cache
- Cleaned up type definitions

Bundle size reduction:
- Removed ~100KB from production bundle
- Removed ~246 packages from node_modules
- All icons now render as pure SVG with zero client JS

Dependencies removed:
- react, react-dom, @astrojs/react, @types/react, @types/react-dom
- lucide-react, clsx, vite-plugin-svgr
- All unused ESLint plugins (typescript-eslint, react, jsx-a11y, etc.)
- vite (already a peer dependency)
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.

3 participants