Skip to content

Latest commit

 

History

History
104 lines (67 loc) · 2.61 KB

File metadata and controls

104 lines (67 loc) · 2.61 KB

Contributing to Calligraph

Read the README before getting started.

Before opening a PR, search existing issues and pull requests for anything related.

Developing

  • The development branch is main.
  • All pull requests should be opened against main.

Setup

  1. Clone the repository:

    gh repo clone raphaelsalaja/calligraph
  2. Create a new branch:

    git checkout -b my-branch
  3. Install dependencies:

    pnpm install
  4. Start developing:

    pnpm dev

    This starts Turborepo in watch mode — the library rebuilds on changes and the demo site hot-reloads.

  5. When your changes are finished, commit them:

    git add .
    git commit -m "feat: describe your changes"
  6. Open a pull request:

    gh pr create

Repository Structure

Path Description
packages/calligraph/ The library package
apps/web/ Next.js demo site

The library is intentionally a single-file packagepackages/calligraph/src/index.tsx. Keep it that way unless there is a strong reason to split.

Linting

This project uses Biome for linting and formatting.

pnpm lint

Linting runs automatically on pre-commit via Husky. CI will also catch anything that slips through.

We recommend installing the Biome extension for VS Code.

Commit Convention

Commits must follow the Conventional Commits specification, enforced by commitlint. Examples:

feat: add duration prop
fix: correct LCS alignment for repeated characters
docs: update usage examples
chore: bump motion to v12.1

Changesets

We use Changesets to manage versioning and changelogs.

If your PR changes the public API or fixes a bug, add a changeset:

pnpm changeset

Follow the prompts to describe your change and select a semver bump. The generated markdown file should be committed with your PR.

If your change is internal (CI, docs, dev tooling), you do not need a changeset.

Pull Requests

  • Keep PRs focused — one feature or fix per PR.
  • Link related issues in the description.
  • Make sure pnpm lint and pnpm build pass before requesting review.
  • Add a changeset if applicable.