Skip to content

Copy-Labs/remix-ide-clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

104 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Remix IDE Clone

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.

🚀 Features

✅ Currently Implemented

  • 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

🚧 In Development

  • 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

🎯 Planned Features

  • Debugger: Step-through debugging for smart contracts
  • Gas Optimization: Built-in gas analysis tools
  • Version Control: Git integration
  • Collaboration: Real-time collaborative editing

🛠️ Tech Stack

  • 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

📦 Installation

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

🏗️ Project Structure

remix-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

🔧 Development

Available Scripts

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

Development Guidelines

  1. State Management: Use Zustand stores for global state
  2. Components: Keep components small and focused
  3. TypeScript: Maintain strict type safety
  4. Testing: Write tests for business logic
  5. Performance: Use React.memo and useMemo appropriately

🚦 Current Status

✅ Completed

  • 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

🚧 In Progress

  • Monaco Editor integration
  • File explorer component
  • Tab management
  • Theme switching

📋 Next Steps

  • Solidity compiler integration
  • Web3 wallet connection
  • Contract deployment
  • Testing framework

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

📄 License

This project is licensed under the MIT License.


Built with ❤️ for the Ethereum developer community

About

This is a clone of remix IDE. With an aim to learn how it is built.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors