4.2 KiB
Contributing to Nestri
First off, thank you for considering contributing to Nestri! It's people like you that make Nestri such a great tool.
Code of Conduct
By participating in this project, you are expected to uphold our Code of Conduct.
How Can I Contribute?
Reporting Bugs
This section guides you through submitting a bug report for Nestri. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
- Use a clear and descriptive title for the issue to identify the problem.
- Describe the exact steps which reproduce the problem in as many details as possible.
- Provide specific examples to demonstrate the steps.
Suggesting Enhancements
This section guides you through submitting an enhancement suggestion for Nestri, including completely new features and minor improvements to existing functionality.
- Use a clear and descriptive title for the issue to identify the suggestion.
- Provide a step-by-step description of the suggested enhancement in as many details as possible.
- Provide specific examples to demonstrate the steps.
Pull Requests
- Fill in the required template
- Do not include issue numbers in the PR title
- Include screenshots and animated GIFs in your pull request whenever possible.
- Follow the JavaScript/TypeScript styleguides.
- End all files with a newline
Styleguides
Git Commit Messages
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
JavaScript/Typescript Styleguide
All JavaScript and Typescript must adhere to the eslint and TS rules set in .eslintrc and tsconfig respectively. Your build will fail, otherwise.
Additional Notes
Issue and Pull Request Labels
This section lists the labels we use to help us track and manage issues and pull requests.
🐛 fix- Issues that are bugs.✨ feat- Issues that are feature requests.📝 docs- Issues or pull requests related to documentation.🔧 chore- Pull requests that add or update configuration files💄 style- Issues or Pull requests related to the UI or style files⚡ perf- Issues or Pull Requests that are related to performance♻ refactor- Issues or Pull Requests related to code refactorsgood first issue- Good for newcomers.
Project Structure
Nestri is organized as a monorepo using Turborepo. Here's an overview of the main directories and their purposes:
Root Directory
apps/: Contains the main applicationswww/: The main Nestri website built with Qwik
infra/: Contains the relevant files to deploy the app using SSTpackages/: Shared packages and configurationsapi/: Core API for Nestrieslint-config/: Shared ESLint configurationstypescript-config/: Shared TypeScript configurationsui/: Shared UI components and styles
Key Files
package.json: Root package file defining workspaces and shared dev dependenciesturbo.json: Turborepo configurationLICENSE: GNU Affero General Public License v3.0
Apps
www (Nestri Website)
This is the Nestri website hosted on Cloudflare Pages
Packages
api (Nestri Core)
The core API for Nestri, built with Hono and deployed to Cloudflare Workers.
eslint-config
Shared ESLint configurations for maintaining consistent code style across the project.
typescript-config
Shared TypeScript configurations to ensure consistent TypeScript settings across the project.
ui
Shared UI components and styles used across the Nestri project.
Infrastructure
infra/: Contains infrastructure-as-code fileswww.ts: Defines the deployment configuration for the Nestri website
Development
When working on Nestri, you'll primarily be dealing with the apps/www directory for the main website and the various packages in the packages/ directory for shared functionality.
For more detailed information about each package or app, refer to their respective README files or package.json scripts.
Thank you for contributing to Nestri!