How to Contribute
Take care to read all contributions guidelines before you begin!
- Learn how to contribute to open source.
- Follow a step-by-step guide to practice your first contribution.
- Locate an open issue on GitHub. Let us know you would like to volunteer.
- Optionally, you may coordinate efforts on the
#contributors
channel within Discord. - If the Skeleton team approves your request, you’ll be assigned to the issue.
- Complete the work and submit a pull request and we’ll review the changes.
NOTE: non-trivial PRs submitted without our prior consent will be denied. Repeat offenders will be banned.
Using PNPM
Skeleton makes use of PNPM and PNPM workspaces to maintain all projects within the Skeleton monorepo.
- Install PNPM on your local computer.
- Fork the Skeleton monorepo via the option on GitHub.
- Use Git to clone the forked project to your local machine.
- Point your terminal at one of the sites or package projects listed below.
- Run
pnpm i
to install the required depedencies. - Run
pnpm dev
to start a local dev server for each project.
Monorepo Structure
Sites
Public facing websites that are deployed to Vercel.
Path | Description |
---|---|
/sites/skeleton.dev | The production skeleton.dev documentation website. |
/sites/next.skeleton.dev | The temporary Next/v3 documentation website. |
/sites/themes.skeleton.dev | The Skeleton themes generator website |
Packages
Modular Skeleton packages distributed via NPM.
Path | Description |
---|---|
/packages/skeleton | The Skeleton core package, containing the Tailwind plugin. |
/packages/skeleton-react | The Skeleton React package, containing Skeleton React components. |
/packages/skeleton-svelte | The Skeleton Svelte package, containing Skeleton Svelte components. |
/packages/create-skeleton-app | The Skeleton onboarding CLI application. |
Branch
Skeleton uses two primary branches. All pull requests should be created from and to the dev
branch.
Branch | Description | Pull Requests |
---|---|---|
dev | Represents the bleeding edge developement branch. | Allowed |
master | Represents the release branch of the all projects. | Never |
PR Branch Conventions
Please use the following naming convention when creating your pull request.
Branch | Role |
---|---|
docs/* | When updating the documentation site. |
feat/* | When implementing a new feature. |
chore/* | When implementing small changes. |
bugfix/* | When implementing feature bugfixes. |
Keep branch names short and semantic, using dashes to seperate words.
Changesets
Changesets are used to automatically generate the Skeleton changelog for each release. Any contributions made to projects that live within the /packages
directory must contain a Changeset. Use the following instructions to generate a changeset.
- Make sure you’re within local pull request feature branch.
- Navigate to the root of the Skeleton monorepo.
- Run
pnpm changeset
to trigger the Changeset CLI. - Follow the instructions when prompted.
- Changeset are added to the
/.changeset
directory.
Changesets use semantic version. We recommend the following convention.
Version | Role |
---|---|
major | Do not use. Reserved for maintainers. |
minor | For notable changes, such as a new features. |
patch | For small changes, such as a typo. |
Changeset descriptions will appear verbatim on the Changelog. Keep it short, semantic, and prefix this like branch names.
Tooling
Skeleton makes use of the following technology for improving the developer experience.
Prettier
We use Prettier for code formatting and linting.
Test Suite
Unit tests are handled via Vitest.
VS Code Extensions
We recommend the following extensions for VS Code: