The Threlte project is open to different kinds of support:
- Sharing: tell people about us, whether on social media or during a casual chat.
- Sponsorship: every penny counts, since we have neglegible funding; see our GitHub sponsor page.
- Support: have you learned enough about Threlte to answer questions? Help people out on our Discord support forum.
- Proposals: well researched and thought out ideas are welcome in our Proposals Forums in Discord.
- Contributing PRs: read about how to contribute PRs if you wanna start hacking at our code or docs.
We maintain our backlog in GitHub issues for transparency. You can easily find issues where PRs are welcome using the contribute label. You can also use the easy label to find a good first contribution.
Unclear about an issue label? Read our label descriptions.
If you wish to propose a totally new PR, please discuss it with the team before creating a PR. Well structured and researched ideas can be posted in our Discord proposals forum or writen up as a new GitHub issue. If you wanna just have a casual chat an idea, drop into our Discord contribution chat and fire away!
Setting up the repo:
- Clone the repo with
git clone [email protected]:threlte/threlte.git
- Install the packages by running
pnpm install:all
in the root of the repo - Develop by going to
/apps/docs
and runningpnpm run dev
Note: we practice docs-driven development: building the docs page for a feature while developing it. This allows us to test functionality through examples and feel out the API: if its hard to explain well, its probably flawed.
Some editor tooling:
- Editor Configuration: install the
editorconfig
extension for your editor. - VSCode Users: install the recommended extensions.
Threlte uses Git for version control and Changesets for release notes. You will need to understand our conventions with both to commit changes. If you get confused, remember that Git commits are for Threlte maintainers while Changesets are for Threlte users.
We don't have a strict commit message policy. Here are some best practices:
- Use conventional commits to make it easier to read your commit message.
- Go into technical details if necessary to allow maintainers to understand the context of the change.
- Use present tense exclusively to describe the changes in the commit.
Changesets is a tool that helps us keep a changelog for all the packages in the monorepo and aggregate them into release notes.
To add a changeset:
- Run the command
npx changeset
in your terminal - Select packages affected by your change; we have a dedicated package for the docs.
- Classify the change as major, minor, or patch for each selected package.
- Write the changelog as detailing WHAT the change is, WHY it was made, and HOW it affects the users.
- Commit the changeset file to your Git branch so that it appears in your PR.
Make an effort to write the changelog well, because our users see this in the release notes. Provide enough detail to be clear, but keep things as concise as possible. If migration steps are required, detail them here.
A detailed guide on adding changesets can be found here.