A collaborative pixel art canvas running on AO's Hyperbeam - a decentralized game engine for real-time multiplayer experiences.
- Real-time Collaborative Canvas: Place pixels and create art with other users in real-time
- Sticker System: Design custom 3x3 stickers and place them on the canvas
- Wallet Integration: Connect your Arweave wallet to participate
- Responsive Design: Works seamlessly on desktop and mobile devices
- Modular Architecture: Clean, maintainable codebase with reusable components
- Frontend: React 19 with TypeScript
- Build Tool: Vite with SWC for fast compilation
- Styling: CSS Modules for component-scoped styles
- Backend: AO Hyperbeam Network
- Blockchain: Arweave for decentralized storage
- Code Quality: ESLint + Prettier for consistent formatting
- Node.js 18+ and npm
- Arweave wallet (for placing pixels)
# Clone the repository
git clone <repository-url>
cd Place
# Install dependencies
npm install
# Start development server
npm run devnpm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint with auto-fixnpm run format- Format code with Prettiernpm run type-check- Run TypeScript type checking
src/
├── components/ # Reusable UI components
│ ├── Canvas/ # Main canvas component
│ ├── CanvasGrid/ # Grid display component
│ ├── ColorPicker/ # Color selection component
│ └── StickerEditor/ # Sticker creation component
├── hooks/ # Custom React hooks
│ ├── useCanvas.ts # Canvas operations hook
│ └── useSticker.ts # Sticker management hook
└── types/ # TypeScript type definitions
- Connect Your Wallet: Use an Arweave wallet to participate
- Choose Your Mode: Select between single pixel placement or sticker creation
- Select Colors: Pick from the color palette
- Create & Place: Click to place pixels or design and apply stickers
- Modular Components: Canvas functionality split into focused, reusable components
- Custom Hooks: Business logic separated into custom hooks for better testability
- Type Safety: Full TypeScript coverage for better development experience
- Performance: Optimized with React 19 and efficient state management
- Clean Code: ESLint and Prettier ensure consistent code quality
For deployment instructions, see the Deployment Guide.
Contributions are welcome! Please ensure your code follows the established patterns:
- Use TypeScript for all new files
- Follow the existing component structure
- Run
npm run lintandnpm run formatbefore committing - Add proper type definitions for new features
See LICENSE for more information.