cloudhood
Описание
Языки
- TypeScript92,5%
- JavaScript6,9%
- CSS0,4%
- HTML0,1%
- Остальные0,1%
🌐 Language / Язык
About Cloudhood
Cloudhood is a powerful browser extension that allows users to control HTTP request headers that will be embedded in all web requests. Built with modern web technologies and following Feature-Sliced Design architecture principles.
Key Features
- Header Management: Create, edit, and manage custom HTTP headers
- Profile System: Organize headers into reusable profiles
- Cross-Browser Support: Works on Chrome and Firefox
- Import/Export: Share profiles between devices and team members
- Real-time Application: Headers are applied instantly to web requests
- Modern UI: Clean, intuitive interface built with React and TypeScript
How It Works
Header overrides are managed through a Chrome extension popup (React application), stored in browser local storage, and applied to upstream page requests using Chrome's Declarative Net Request API.
📚 Documentation
- Project Map - Detailed architecture and project structure overview
- Architecture Diagrams - Visual schemas of architecture and data flows
- Developer Guide - Complete developer handbook
🚀 Quick Start
Prerequisites
- Node.js >= 20.0.0
- pnpm >= 10.10.0
- Chrome or Firefox browser
Installation
Loading the Extension
Chrome
- Open chrome://extensions/
- Enable "Developer mode"
- Click "Load unpacked extension"
- Select the
directorybuild/chrome
Firefox
- Open about:debugging
- Click "This Firefox"
- Click "Load Temporary Add-on"
- Select build/firefox/manifest.json
🧪 Testing
Unit Tests
E2E Tests
For E2E tests, always import the test fixtures:
When new UI functionality is added, it must be covered by screenshot E2E tests. Add new scenarios under and update snapshots with:
🛠️ Development
Development Commands
Local Build
For local Firefox builds, set the environment variable:
Note: This variable is not needed for GitHub Actions builds as it's automatically set from secrets.
Architecture
The project follows Feature-Sliced Design architecture:
src/
├── app/ # Application initialization
├── pages/ # Pages (widget composition)
├── widgets/ # High-level UI blocks
├── features/ # User-facing features
├── entities/ # Business entities
└── shared/ # Shared resources
Technology Stack
- Frontend: React 18 + TypeScript
- State Management: Effector
- UI Library: @snack-uikit (Cloud.ru internal library)
- Build Tool: Vite
- Testing: Vitest + Playwright
- Architecture: Feature-Sliced Design
📦 Building Extensions
Chrome Extension
The extension will be built in the directory.
Firefox Extension
The extension will be built in the directory.
Firefox Sources Archive
Creates a ZIP archive with source code required for Firefox Add-ons submission. Mozilla requires source code submission for extensions that use build tools or minification.
🚀 Releasing
We use GitHub Actions to automate the release process. The workflow:
- Bumps version based on commit messages
- Builds extensions for Chrome and Firefox
- Creates ZIP archives for both platforms
- Creates source code archive for Firefox Add-ons submission
- Publishes to Chrome Web Store and Firefox Add-ons (with source code)
- Creates a GitHub Release with both extension packages
See RELEASE_SETUP.md for details on configuring the release automation.
🤝 Contributing
Development Process
- Create a feature branch from main
- Make changes following FSD architecture
- Add tests for new functionality
- Run
and fix any issuespnpm lint - Run pnpm test:unit && pnpm test:e2e
- Create a Pull Request
Code Standards
- Use TypeScript strictly
- Follow Feature-Sliced Design architecture
- Add comments for complex logic
- Use Effector for state management
- Write tests for new functionality
Commits
Use conventional commits:
feat: add profile export functionality
fix: resolve header saving issue
docs: update documentation
test: add tests for utilities
🔗 Links
- Chrome Web Store: Install Cloudhood
- Firefox Add-ons: Install Cloudhood
- GitHub Releases: Latest Releases
📄 License
🏢 About Cloud.ru
Cloudhood is developed by Cloud.ru - a leading Russian cloud provider offering comprehensive cloud solutions and services.
Made with ❤️ by the Cloud.ru team