Thank you for your interest in contributing to nuxt-apex! To make the process smooth and efficient for everyone, please read through this guide before opening issues or submitting pull requests.
- Code of Conduct
- Asking Questions
- Getting Started
- Development Setup
- Branching and Workflow
- Coding Standards
- Commit Messages
- Running Tests
- Submitting a Pull Request
- Issue Reporting
- Feature Requests
- Documentation
- License
This project follows the Contributor Covenant v3.0. By participating, you agree to abide by its terms.
We want to keep our issue tracker focused on actionable bugs and feature requests, so please direct general questions and support inquiries to our community discussion channels:
GitHub Discussions:
- How‑to questions (“How do I configure X?”).
- Best practices (“What’s the recommended pattern for Y?”).
- Brainstorming and design feedback.
When asking a question, please include:
- Context: what you’re building and how you’re using
nuxt-apex. - Reproduction steps: code snippets or minimal repos demonstrating the issue or configuration.
- What you’ve tried: any documentation pages, examples, or approaches you’ve already explored.
By keeping questions in the right place, we can ensure bugs and feature work stay on track in our issue tracker—and community members can more easily share knowledge and help each other!
- Fork the repository on
GitHub. - Clone your fork locally:
git clone git@github.com:<your-username>/nuxt-apex.git cd nuxt-apex
- Install dependencies (requires Node.js ≥ 22.x and pnpm):
pnpm install
- Build the module for local testing:
pnpm run dev
- Use the development server in a playground Nuxt project to verify behavior.
We follow a GitHub Flow:
main: Holds production-ready code. All changes arrive here via PRs.dev: Integration branch for ongoing work and beta releases.feature/: Prefix for feature branches (e.g. feature/api-types).fix/: Prefix for bugfix branches (e.g. fix/edge-case).
Workflow:
- Create a new branch:
git checkout -b feature/your-feature. - Develop and test your changes.
- Commit your work following Conventional Commits.
- Push your branch and open a
Pull Requestagainstdev.
- Language: ES2023+ (Node.js & modern browsers).
- TypeScript: Enable strict mode; provide types for all public APIs.
- Modularity: Break features into small, reusable functions/modules.
- Performance: Prioritize scalability — batch operations, caching, and lazy-loading where appropriate.
All commits must follow the Conventional Commits spec:
fix(router): handle null query parametersfeat(parser): support nested arraysperf(build): parallelize type extractiondocs(readme): add migration noteschore: update deps
We enforce this via commitlint in CI; invalid messages will cause the build to fail.
-
Unit tests (
Vitest):pnpm test:unit
-
E2E tests (
Cypress):pnpm test:e2e
Make sure all tests pass before opening a PR.
- Ensure tests and linting pass locally.
- Rebase or merge latest dev into your branch.
- Push your branch and open a PR:
- Base:
devfor features/betas,mainfor hotfixes. - Title: Begin with a
Conventional Commitsheader (e.g.feat:,fix:). - Description: Describe what changed and why. Include links to issues if relevant.
- Base:
- Add any relevant CI labels, reviewers, and assign the PR.
- Respond to review comments; update your branch as needed.
- After merge, CI will run lint → tests → (on
dev) beta pre-release or (onmain) full release.
A great way to contribute to the project is to send a detailed issue when you encounter a problem. We always appreciate a well-written, thorough bug report.
In short, since you are most likely a developer, provide a ticket that you would like to receive:
- Review the documentation before opening a new issue.
- Do not open a duplicate issue! Search through existing issues to see if your issue has previously been reported. If your issue exists, comment with any additional information you have. You may simply note "I have this problem too", which helps prioritize the most common problems and requests.
- Prefer using reactions, not comments, if you simply want to "+1" an existing issue.
- Fully complete the provided issue template. The bug report template requests all the information we need to quickly and efficiently address your issue. Be clear, concise, and descriptive. Provide as much information as you can, including steps to reproduce, stack traces, compiler errors, library versions, OS versions, and screenshots (if applicable).
- Use GitHub-flavored Markdown. Especially put code blocks and console outputs in backticks (```). This improves readability.
Feature requests are welcome! While we will consider all requests, we cannot guarantee your request will be accepted. We want to avoid feature creep. Your idea may be great, but also out-of-scope for the project. If accepted, we cannot make any commitments regarding the timeline for implementation and release. However, you are welcome to submit a pull request to help!
- Do not open a duplicate feature request. Search for existing feature requests first. If you find your feature (or one very similar) previously requested, comment on that issue.
- Fully complete the provided issue template. The feature request template asks for all necessary information for us to begin a productive conversation.
- Be precise about the proposed outcome of the feature and how it relates to existing features. Include implementation details if possible.
If you introduce new features or change existing behaviors, please update the project documentation so that users always have access to accurate information:
- README.md: Add or adjust usage examples, upgrade notes, and configuration instructions.
- JSDoc/TypeScript definitions: Ensure public APIs have clear type annotations and comments.
By contributing to nuxt-apex, you agree that any code, documentation, or other material you submit will be licensed under the project’s MIT License. Please make sure you’ve read and understood the full license text in the LICENSE file before contributing.