We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
- Fork the repository and create your branch from
main - If you've added code that should be tested, add tests
- If you've changed APIs, update the documentation
- Ensure the test suite passes
- Make sure your code lints
- Issue that pull request!
- Node.js 18.0 or later
- npm 8.0 or later
-
Clone the repository:
git clone https://github.com/CodeStorm-Hub/CodeStorm-Hub.github.io.git cd CodeStorm-Hub.github.io -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open http://localhost:3000 in your browser
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint
src/
├── app/ # Next.js App Router pages
│ ├── globals.css # Global styles and design tokens
│ ├── layout.tsx # Root layout component
│ └── page.tsx # Homepage
├── components/ # Reusable UI components
│ ├── ui/ # Basic UI components (Button, Card, etc.)
│ └── layout/ # Layout components (Header, Footer)
└── lib/ # Utilities and configurations
└── utils.ts # Utility functions
This project uses a comprehensive design system based on:
- Colors: Radix Colors for consistent, accessible color palettes
- Components: Radix UI Primitives for accessible, unstyled components
- Styling: Tailwind CSS for utility-first styling
- Typography: Geist font family for modern, readable text
- Use Radix UI primitives as the foundation for complex components
- Follow the established color tokens and spacing scale
- Ensure all components are accessible (ARIA labels, keyboard navigation)
- Use TypeScript for all components with proper prop types
We use ESLint and Prettier to maintain consistent code style:
- Use TypeScript for all new code
- Follow the established ESLint configuration
- Use meaningful variable and function names
- Add JSDoc comments for complex functions
- Keep components small and focused
We follow the Conventional Commits specification:
feat:for new featuresfix:for bug fixesdocs:for documentation changesstyle:for formatting changesrefactor:for code refactoringtest:for adding testschore:for maintenance tasks
By contributing, you agree that your contributions will be licensed under the BSD 3-Clause License.
This project is inspired by and follows best practices from: