🚀 Weaverse v5 is Here - Powered by React Router v7
We're excited to announce the release of Weaverse v5, marking a major milestone in our journey to provide the best developer experience for building Shopify Hydrogen storefronts. This guide provides all the information you need about this release, including how to upgrade your existing Weaverse Hydrogen project from Remix to React Router v7.
Weaverse v5 introduces a major architectural change, migrating from Remix to React Router v7 to align with Shopify Hydrogen's May 2025 release.
What's New in v5?
React Router v7 Foundation
- Modern Architecture: Complete migration from Remix to React Router v7
- Better Performance: Improved tree-shaking, faster builds, and better runtime performance
- Enhanced DX: Faster hot reloading and clearer error messages
- Future-Proof: Aligned with Shopify Hydrogen's long-term roadmap
Key Benefits
🚀 Performance Improvements
- Faster build times with better tree-shaking
- Optimized bundle sizes for production
- Improved development server startup times
🛠️ Developer Experience
- Enhanced hot module reloading
- Better TypeScript integration
- Clearer error messages and debugging
- Modern React patterns and best practices
🔮 Future-Ready
- Aligned with Shopify Hydrogen May 2025 release
- Compatible with the latest React ecosystem
- Foundation for upcoming Weaverse features
Before You Begin Migration
⚠️ Important: This is a major version upgrade with breaking changes. Please:
- Backup your project and commit all changes
- Test thoroughly in a development environment
- Review dependencies that might be affected
- Plan for downtime if upgrading production
Migration Options
You have two primary migration paths:
Option 1: Start with a New Weaverse Theme (Recommended)
The easiest approach is to create a new project with the latest Weaverse CLI and migrate your customizations:
# Create a new React Router v7 projectnpx @weaverse/cli@latest create --template=pilot --project-id="your-project-id" --project-name=my-hydrogen-storefront
# Copy your custom components and configurations# from your old project to the new one
Advantages:
- Clean React Router v7 setup
- Latest best practices
- No migration complexity
- All new optimizations
When to choose this option:
- You have a relatively simple project
- Your customizations are primarily in components/sections
- You want the cleanest possible upgrade
Option 2: Upgrade Existing Project
Follow the manual migration steps to upgrade your current project in place.
Advantages:
- Preserve existing project structure
- Gradual migration possible
- Maintain current deployment setup
When to choose this option:
- You have extensive customizations
- Complex deployment configurations
- Want to maintain project history
Option 1: Creating a New Project (Fresh Start)
Step 1: Create New Project
# Create a new Weaverse project with React Router v7npx @weaverse/cli@latest create my-upgraded-project --theme pilot
# Navigate to the new projectcd my-upgraded-project
Step 2: Migrate Your Customizations
- Copy Custom Sections: Move your custom sections from
app/sections/
in your old project to the new one - Update Components: Copy custom components and update any Remix-specific imports
- Environment Variables: Copy your
.env
file and update any changed variable names - Styling: Migrate your custom styles and Tailwind configurations
- Weaverse Configuration: Copy your
weaverse/
directory configurations
Step 3: Update Weaverse Settings
In your Weaverse dashboard:
- Update the project preview URL to point to your new development server
- Test all sections and components in the visual editor
- Verify theme settings are working correctly
Step 4: Deploy and Test
- Deploy your new project to your preferred hosting platform
- Update your Weaverse project's production URL
- Test thoroughly before switching traffic
Option 2: Manual Migration (In-Place Upgrade)
Prerequisites
Before starting the manual migration, ensure you have:
- Shopify Hydrogen 2025.4.0 with all Remix Future Flags enabled
- Node.js 20+ installed
- All changes committed to version control
Step 1: Enable Remix Future Flags
If you haven't already, enable all Remix future flags in your vite.config.ts
:
// vite.config.tsexport default defineConfig({ plugins: [ // ... other plugins reactRouter({ future: { v3_fetcherPersist: true, v3_relativeSplatPath: true, v3_throwAbortReason: true, v3_lazyRouteDiscovery: true, v3_routeConfig: true, v3_singleFetch: true, }, }), ],});
Test your application thoroughly with these flags enabled before proceeding.
Step 2: Run React Router Migration Codemod
npx codemod remix/2/react-router/upgrade
This codemod will automatically update:
- Import statements from Remix to React Router
- Component usage patterns
- Basic file structure changes
Step 3: Create React Router Configuration
Create a react-router.config.ts
file in your project root:
// react-router.config.tsimport type {Config} from '@react-router/dev/config';
export default { appDirectory: 'app', buildDirectory: 'dist', ssr: true,} satisfies Config;
Step 4: Update Vite Configuration
Clean up your vite.config.ts
:
// vite.config.tsexport default defineConfig({ plugins: [ tailwindcss(), hydrogen(), oxygen(), reactRouter(), tsconfigPaths(), ], // ... rest of config});
Step 5: Update Dependencies
npm install --force \ @weaverse/hydrogen@5.0.0 \ @shopify/hydrogen@2025.5.0 \ @shopify/remix-oxygen@3.0.0 \ @shopify/cli@3.80.4
Step 6: Update TypeScript Configuration
Update env.d.ts
:
// env.d.tsdeclare module 'react-router' { // TODO: remove this once we've migrated to `Route.LoaderArgs` for our loaders interface LoaderFunctionArgs { context: AppLoadContext; }
// TODO: remove this once we've migrated to `Route.ActionArgs` for our actions interface ActionFunctionArgs { context: AppLoadContext; } // ... rest of your types}
Update tsconfig.json
:
{ "include": [ "./**/*.d.ts", "./**/*.ts", "./**/*.tsx", ".react-router/types/**/*" ], "compilerOptions": { "rootDirs": [".", "./.react-router/types"], // ... rest of options }}
Step 7: Update Git Ignore
Add React Router generated files to .gitignore
:
# React Router.react-router/
Step 8: Update Weaverse Components
Update any custom components that use Remix-specific APIs:
// Before (Remix)import { useLoaderData } from '@remix-run/react';import type { LoaderFunctionArgs } from '@shopify/remix-oxygen';
// After (React Router v7)import { useLoaderData } from 'react-router';import type { LoaderFunctionArgs } from 'react-router';
Step 9: Test and Verify
Run the following commands to verify your migration:
# Generate types and run type checkingnpm run codegennpm run typecheck
# Start development servernpm run dev
Common Migration Issues
Import Errors
Problem: Import errors for Remix packages Solution: Update imports to use React Router equivalents:
// Beforeimport { ... } from '@remix-run/react';import { ... } from '@shopify/remix-oxygen';
// Afterimport { ... } from 'react-router';import { ... } from '@shopify/hydrogen';
Type Errors
Problem: TypeScript errors with loader/action types Solution: Update type imports and usage:
// Beforeimport type { LoaderFunctionArgs } from '@shopify/remix-oxygen';
// After import type { LoaderFunctionArgs } from 'react-router';
Build Errors
Problem: Build fails with React Router configuration
Solution: Ensure react-router.config.ts
is properly configured and .react-router/
is in .gitignore
Testing Your Migration
Checklist
- Development server starts without errors
- All pages load correctly
- Weaverse visual editor functions properly
- Custom components render correctly
- Forms and interactions work as expected
- Build process completes successfully
- Production deployment works
Weaverse-Specific Testing
- Visual Editor: Test all sections in the Weaverse studio
- Theme Settings: Verify global theme settings work
- Component Data: Ensure component loaders work correctly
- Preview Mode: Test preview functionality
- Section Management: Test adding/removing/reordering sections
What This Means for You (If Upgrading)
If You're Just Getting Started with Weaverse
- No action needed for new projects - all new projects created with
npx @weaverse/cli@latest create
will use React Router v7. - Enjoy better performance and developer experience out of the box.
- Access to the latest Weaverse features and improvements.
If You Have an Existing Weaverse Project (v4 or older)
- Plan your migration - this is a major version with breaking changes.
- Test thoroughly - use this guide and test in a development environment first.
- Take your time - v4 will continue to receive critical bug fixes, but we recommend upgrading for the best experience and future features.
Timeline & Backwards Compatibility
- v5.0.0: React Router v7 support released.
- v4.x: Continues to receive critical bug fixes for a limited time.
- Migration Period: We recommend migrating within 6 months for the best experience and continued support.
- Support: Full support and guidance available during the migration period.
Getting Help
If you encounter issues during migration:
- Check the Console: Look for specific error messages.
- Review Documentation: Refer to React Router v7 docs.
- Community Support: Join our Slack Community.
- Official Support: Contact support@weaverse.io.
What's Next?
After successful migration:
- Update Documentation: Update your project's README and internal docs.
- Train Your Team: Familiarize your team with React Router v7 patterns.
- Optimize Performance: Take advantage of new React Router v7 features.
- Plan Updates: Schedule regular updates to stay current.
Thank You
This release represents months of work to ensure Weaverse stays at the forefront of modern web development. We're grateful for our community's feedback and support throughout this journey.
Ready to upgrade? Follow the steps above or create a new project to experience the power of Weaverse v5!
Additional Resources
- Shopify Hydrogen May 2025 Release
- React Router v7 Documentation
- Weaverse Documentation
- Full Weaverse Changelog
- Questions about the migration? Join our Slack community or reach out to our support team at support@weaverse.io
Migration to v5
Weaverse v5 introduces several important changes, including the migration to React Router v7 and updates to component schema properties. This guide will help you migrate from v4 to v5 smoothly.
Breaking Changes
1. React Router v7 Migration
Weaverse v5 has migrated from Remix to React Router v7, aligning with Shopify Hydrogen's latest architecture. This affects import statements and some routing patterns.
Before (v4 with Remix):
import { useLoaderData } from '@remix-run/react'import type { LoaderFunction } from '@remix-run/node'
After (v5 with React Router v7):
import { useLoaderData } from 'react-router'import type { Route } from './+types/page'
2. Component Schema: Inspector → Settings
The inspector
property in component schemas has been deprecated in favor of settings
. While inspector
is still supported for backward compatibility, new components should use settings
.
Before (v4):
export const schema: HydrogenComponentSchema = { type: 'my-component', title: 'My Component', inspector: [ { group: 'Content', inputs: [ { type: 'text', name: 'heading', label: 'Heading', defaultValue: 'Welcome' } ] } ]}
After (v5):
import { createSchema } from '@weaverse/hydrogen';
export let schema = createSchema({ type: 'my-component', title: 'My Component', settings: [ { group: 'Content', inputs: [ { type: 'text', name: 'heading', label: 'Heading', defaultValue: 'Welcome' } ] } ]});
Migration Notes:
- The system automatically handles both
inspector
andsettings
during the transition - When both properties exist,
settings
takes priority - Components using only
inspector
will show deprecation warnings but continue to work - The structure of the inputs array remains exactly the same
3. Theme Schema Migration
Theme schemas should also be updated to use settings
instead of inspector
:
Before (v4):
export const themeSchema: HydrogenThemeSchema = { info: { name: 'My Theme', version: '1.0.0', author: 'Developer' }, inspector: [ { group: 'Colors', inputs: [ { type: 'color', name: 'primaryColor', label: 'Primary Color', defaultValue: '#000000' } ] } ]}
After (v5):
export const themeSchema: HydrogenThemeSchema = { info: { name: 'My Theme', version: '1.0.0', author: 'Developer' }, settings: [ { group: 'Colors', inputs: [ { type: 'color', name: 'primaryColor', label: 'Primary Color', defaultValue: '#000000' } ] } ]}
Migration Steps
Step 1: Update Dependencies
Update your Weaverse dependencies to v5:
npm install @weaverse/hydrogen@latest
Step 2: Migrate Component Schemas
-
Rename
inspector
tosettings
in all component schemas:# You can use find and replace in your editor# Find: inspector: [# Replace: settings: [
-
Update TypeScript types if you have any custom type definitions referencing the
inspector
property.
Step 3: Update Theme Schema
Update your theme schema file (app/weaverse/schema.server.ts
) to use settings
instead of inspector
.
Step 4: Test Your Components
- Start your development server and verify that all components render correctly
- Check the Weaverse Studio to ensure all settings panels work as expected
- Look for deprecation warnings in the console and address any remaining
inspector
usage
Step 5: React Router Migration (if needed)
If you're also migrating from Remix to React Router v7, follow these additional steps:
- Update import statements throughout your codebase
- Update route configurations to use React Router v7 patterns
- Update type definitions to use React Router v7 types
Backward Compatibility
Weaverse v5 maintains backward compatibility for the inspector
property:
- Components with only
inspector
will continue to work but show deprecation warnings - Components with both
inspector
andsettings
will usesettings
and ignoreinspector
- The input structure and all input types remain unchanged
Common Issues and Solutions
Issue: Deprecation Warnings
Problem: Console shows warnings about inspector
property usage.
Solution: Update your schemas to use settings
instead of inspector
.
Issue: Settings Not Appearing
Problem: Component settings don't appear in Weaverse Studio after migration.
Solution:
- Ensure you've renamed
inspector
tosettings
correctly - Restart your development server
- Clear browser cache and refresh Weaverse Studio
Issue: Type Errors
Problem: TypeScript errors related to schema properties.
Solution: Update your TypeScript types to reference settings
instead of inspector
.
Need Help?
If you encounter issues during migration:
- Check the Component Schema Guide for detailed information
- Review the API Types documentation for updated type definitions
- Join our Discord community for support
- Open an issue on GitHub if you find bugs
Benefits of v5
After migration, you'll benefit from:
- Improved performance with React Router v7
- Better type safety with updated schema properties
- Enhanced developer experience with clearer naming conventions
- Future-proof architecture aligned with the latest Shopify Hydrogen standards