A modern, feature-rich clone of Remix IDE built with React, TypeScript, and Zustand. This project provides a comprehensive Solidity development environment with modern tooling and best practices.
- Modern React Architecture: Built with React 18, TypeScript, and Vite
- State Management: Zustand for lightweight, efficient state management
- Beautiful UI: Tailwind CSS with dark/light theme support
- File System: Virtual file system with project management
- Project Structure: Ready for Monaco Editor integration
- Monaco Editor: VS Code-like editing experience with Solidity syntax highlighting
- Solidity Compiler: Client-side compilation with @agnostico/browser-solidity-compiler
- Web3 Integration: Deploy and interact with smart contracts
- Testing Framework: Built-in testing capabilities
- Plugin System: Extensible architecture
- Debugger: Step-through debugging for smart contracts
- Gas Optimization: Built-in gas analysis tools
- Version Control: Git integration
- Collaboration: Real-time collaborative editing
- Frontend: React 18 + TypeScript
- State Management: Zustand with Immer
- Styling: Tailwind CSS + Headless UI
- Editor: Monaco Editor (VS Code engine)
- Build Tool: Vite
- Compilation: @agnostico/browser-solidity-compiler (client-side)
- Web3: Web3.js for blockchain interaction
- Testing: Vitest + React Testing Library
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run buildremix-ide-clone/
├── src/
│ ├── components/ # React components
│ │ ├── ui/ # Reusable UI components
│ │ ├── FileExplorer/ # File management
│ │ ├── CodeEditor/ # Monaco editor wrapper
│ │ ├── Compiler/ # Solidity compilation
│ │ ├── Deploy/ # Contract deployment
│ │ ├── Terminal/ # Integrated terminal
│ │ └── Layout/ # Layout components
│ ├── stores/ # Zustand stores
│ │ ├── fileStore.ts # File system state
│ │ ├── editorStore.ts # Editor settings
│ │ ├── compilerStore.ts # Compilation state
│ │ └── deployStore.ts # Deployment state
│ ├── services/ # Business logic
│ │ ├── compiler.service.ts
│ │ ├── fileSystem.service.ts
│ │ └── workers/ # Web Workers
│ ├── hooks/ # Custom React hooks
│ ├── types/ # TypeScript definitions
│ ├── utils/ # Utility functions
│ └── constants/ # App constants
├── public/
│ └── workers/ # Web Worker files
└── docs/ # Documentation
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run test # Run tests
npm run lint # Lint code
npm run format # Format code with Prettier
npm run type-check # TypeScript type checking- State Management: Use Zustand stores for global state
- Components: Keep components small and focused
- TypeScript: Maintain strict type safety
- Testing: Write tests for business logic
- Performance: Use React.memo and useMemo appropriately
- Project setup with Vite + React + TypeScript
- Zustand state management setup
- Tailwind CSS configuration
- File system store implementation
- Editor store implementation
- Basic UI layout
- Project structure
- Monaco Editor integration
- File explorer component
- Tab management
- Theme switching
- Solidity compiler integration
- Web3 wallet connection
- Contract deployment
- Testing framework
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License.
Built with ❤️ for the Ethereum developer community