Skip to content

Contributing ​

Flyva is created and maintained by the Owls Department team. We welcome issues, ideas, and pull requests - but please keep in mind that we want to keep the project lean and purposeful, so we can't guarantee that every suggestion will be merged or implemented.

Local development ​

Prerequisites ​

  • Node.js 20+
  • pnpm (enabled via corepack)

Setup ​

  1. Clone the repository
bash
git clone git@github.com:owlsdepartment/flyva.git
cd flyva
  1. Enable corepack and install dependencies
bash
corepack enable
pnpm install

Project structure ​

The repo is a pnpm monorepo with three packages and two playgrounds:

  • packages/shared — framework-agnostic core logic
  • packages/nuxt — Nuxt module
  • packages/next — Next.js integration
  • playground/nuxt — Nuxt app for testing
  • playground/next — Next.js app for testing

Running the playground ​

bash
# Nuxt playground
pnpm dev:nuxt

# Next.js playground
pnpm dev:next

Use the playgrounds to test your changes against a real app.

End-to-end tests (Playwright) ​

@playwright/test lives in packages/next and packages/nuxt, not the repo root. After pnpm install, download browsers once (shared cache for both packages):

bash
pnpm playwright:install

If you prefer the long form: pnpm --filter @flyva/next exec playwright install (either package works). Then pnpm test / pnpm test:e2e can launch Chromium.

Commits ​

Commits must follow the Conventional Commits specification. A commit message linter will reject non-conforming messages.

bash
git commit -m "feat(nuxt): add custom transition resolver"
git commit -m "fix(shared): handle missing transition key gracefully"

Pull requests ​

Work on a separate branch forked from main. New changes land exclusively through reviewed pull requests.

Before pushing, the pre-push hook will run linters automatically. You can also run them manually:

bash
pnpm lint

Support us ​

Flyva is currently fully sponsored and maintained by Owls Department. If you would like to sponsor the project, invite us to an event, or feature us in a publication, please reach out at opensource@owlsdepartment.com.