Thank you for your interest in contributing to DevUtils! This document provides guidelines and information for contributors.
- Node.js 18 or higher
- npm or yarn
- Git
-
Fork and Clone
git clone https://github.com/ahammadabdullah/dev-utils.git cd dev-utils -
Install Dependencies
npm install
-
Start Development Server
# Terminal 1: Start Vite dev server npm run dev # Terminal 2: Start Electron app npm run electron
-
Build for Testing
npm run build:release
- Use the Issues page
- Include steps to reproduce
- Provide system information (OS, version)
- Include screenshots if applicable
- Open an issue with the "enhancement" label
- Describe the feature and its benefits
- Consider implementation complexity
-
Create a Branch
git checkout -b feature/your-feature-name
-
Make Changes
- Follow the existing code style
- Write clear commit messages
- Test your changes thoroughly
-
Commit Guidelines
git commit -m "feat: add new utility tool" git commit -m "fix: resolve timestamp conversion bug" git commit -m "docs: update README with new screenshots"
-
Push and Create PR
git push origin feature/your-feature-name
src/
├── components/ui/ # Reusable UI components
├── features/ # Feature-specific components
├── hooks/ # Custom React hooks
├── layout/ # Layout components
├── lib/ # Utilities and helpers
└── types/ # TypeScript definitions
To add a new utility tool:
-
Create Feature Directory
src/features/your-tool/ ├── YourTool.tsx └── useYourTool.ts -
Implement the Tool
- Use the ToolCard component wrapper
- Follow existing patterns for UI consistency
- Add proper TypeScript types
-
Add to Navigation
- Update
src/lib/types.tswith the new tool type - Add icon and metadata to TOOLS array
- Update
-
Export and Route
- Export from feature directory
- Add to main App.tsx routing
- Test all functionality manually
- Ensure responsive design works
- Test both light and dark themes
- Verify Electron build works correctly
- Use strict TypeScript settings
- Prefer interfaces over types for objects
- Use proper return types for functions
- Use functional components with hooks
- Follow React best practices
- Use proper prop typing
- Use Tailwind CSS classes
- Follow existing design patterns
- Ensure dark mode compatibility
- Electron: Desktop app framework
- React 18: UI library
- TypeScript: Type safety
- Vite: Build tool
- Tailwind CSS: Styling
- shadcn/ui: UI components
- Lucide React: Icons
npm run build:release- Update version in
package.json - Update
CHANGELOG.md - Create and push git tag
- GitHub Actions will handle the rest
- Check existing Issues
- Look at the codebase for examples
- Feel free to ask questions in issues
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to DevUtils! 🎉