Skip to content

Latest commit

 

History

History
150 lines (95 loc) · 5.69 KB

CONTRIBUTING.md

File metadata and controls

150 lines (95 loc) · 5.69 KB

Astro Reactive Library

Hi, explorer! 🚀

Thanks for checking out the Astro Reactive Library! Welcome to a new adventure.

This is a library of components and utilities for building reactive user interfaces with Astro--a modern web framework.

There's a lot of opportunity to contribute. A good start will be to understand what Astro is, and how to set up a basic Astro project. For this, the Astro website and documentation are good places to start.

Contributing

Any contribution is welcome. Feel free to look around to find something that interests you. :)

The issues page contains some ideas, but they should not limit your contribution.

If you don't find anything there, we are happy to help you get your contribution in.

You can always create a new issue for your own idea, post on our discussions or join our Discord.

The Astro Reactive Library

This project aims to be a library that developers will use to create reactive UIs with Astro.

The project is made up of NPM workspaces, which are node projects that share a singular root package. It is good to understand the basics of this, but basically, the project will have multiple packages (under the packages directory) that share a common root package information.

We are using Turborepo as our monorepo build system.

Packages:

  1. demo in the directory apps/demo
    • Astro web application that we use to test and demonstrate the library components
  2. form in the directory packages/form
    • component that allows developers to programmatically build a form
  3. validator in the directory packages/astro-reactive-validator
    • component that allows developers to set up validators for their forms easily

Apps

  1. docs - in the directory apps/docs

    • Astro website for the library's extensive documentation
  2. landing-page - in the directory apps/landing-page

    • Astro website for the library's introductory landing page

    Open in Gitpod

Running locally

We mainly use the demo app to see changes we make on the packages. Do the following to start hacking:

  1. Fork the project then clone to your computer
git clone [email protected]:<your-user-name>/astro-reactive.git
  1. Go into the project directory
cd astro-reactive
  1. Install the node dependencies
npm i
  1. Run the demo application
npm start
  1. Open the demo application on you browser. Browse to the address
https://localhost:3000

Applications

We also maintain the documentation website and the project landing page in this repository. The source for these applications is found in the apps directory.

You can start the dev server for the docs and landing-page websites with the following commands:

npm run docs
npm run landing-page

Running the linter and tests

Please run the linter and tests before creating a PR to avoid delays in PR reviews. Fix all linting errors or failing tests whey you run the following commands.

npm run lint
npm test

HINT: Some linting errors could be automatically fixed with a command

npm run lint:fix

Hacking with the packages

As mentioned above, this project involves packages that are intended to be used in Astro applications. The demo app is our way to test and play with the packages.

If you plan to add features or fix bugs that are found in the packages, such as @astro-reactive/form, you can find the source code for this inside the packages directory.

Thank you again for your interest in contributing!

Next Actions

✍️ Read on conventional commits; you'll see this used around issues, PRs, and commit messages

🏘️ Read our community guidelines

📝 Check the discussion board for announcements or post your messages and questions

💬 Hang-out with the team on our Discord to share feedback, get support, or just have some laughs over memes 😅

🛠️ Create a new issue for bugs found or improvement ideas