SpinAI is an open internal tool and contributions are welcome. Whether you are fixing a bug, improving the UI, adding a feature, or updating documentation, the process is the same: fork, branch, change, verify, and open a pull request. Following the conventions below keeps the codebase consistent and makes reviews faster for everyone.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/fmoraga01/SpinAI/llms.txt
Use this file to discover all available pages before exploring further.
Before you start
- Browse the open issues to see what is already being worked on and avoid duplicating effort.
- If you are planning a large feature or a significant refactor, open an issue first to discuss the approach before writing code. This saves time if the direction needs adjustment.
- Familiarise yourself with the code style guidelines described below — they are enforced during review.
Contribution workflow
Fork the repo and clone your fork
Fork the repository on GitHub, then clone your fork locally and move into the project directory:
Create a branch
Create a branch from
main using one of the following naming conventions:feature/short-description— new functionalityfix/bug-description— bug fixesdocs/improvement— documentation changes
Make changes and test locally
Edit the files you need to change, then run the development server to verify your changes in the browser:Open http://localhost:3000 to see the app. Test the relevant flows manually before moving on.
Verify the build and lint pass
Run a production build to catch TypeScript errors, then run the linter to check code style — both must pass before opening a PR:Fix any errors reported before continuing.
Commit your changes
Stage and commit your changes with a clear, descriptive message. Keep commits atomic — one logical change per commit makes the history easier to follow and simplifies reverting if needed:
Push and open a Pull Request
Push your branch to your fork and open a Pull Request against the upstream Your PR should include:
main branch:- A descriptive title that summarises the change
- A clear explanation of what changed and why
- A link to the related issue if one exists (use
Closes #123to auto-close it on merge)
Code style guidelines
SpinAI is written in TypeScript with React and Tailwind CSS. All contributions are expected to follow these conventions:- TypeScript with explicit types — declare types for all function parameters, return values, and non-trivial variables. Do not use
any. - Functional React components with hooks — no class components. Use descriptive names that reflect what the component renders.
- Tailwind classes over inline styles — use Tailwind utility classes for styling wherever possible. Avoid
style={{}}props unless there is no Tailwind equivalent. - Single-responsibility functions — each function should do one thing well. Aim to keep functions under 20–30 lines; if a function is growing beyond that, look for a natural split.
- Comments only when the “why” is not obvious — code should be readable on its own. Add a comment when the reasoning behind a decision is not clear from the code itself, not to describe what the code does.
The repository contains
AGENTS.md and CLAUDE.md files at the root. These files contain instructions and context for AI coding assistants (such as GitHub Copilot Workspace or Claude) that work inside this repository. If you are using an AI assistant to help with your contribution, these files will be picked up automatically to guide its output to match the project’s conventions.