Development
Development Overview
First, clone the homepage repository.
For installing NPM packages, this project uses pnpm (and so should you!):
Start the development server:
Open http://localhost:3000 to start.
This is a Next.js application, see their documentation for more information.
Code Linting
Once dependencies have been installed you can lint your code with
Code formatting with pre-commit hooks
To ensure a consistent style and formatting across the project source, the project utilizes Git pre-commit
hooks to perform some formatting and linting before a commit is allowed.
Once installed, hooks will run when you commit. If the formatting isn't quite right, the commit will be rejected and you'll need to look at the output and fix the issue. Most hooks will automatically format failing files, so all you need to do is git add
those files again and retry your commit.
See the pre-commit documentation to get started.
New Feature Guidelines
- New features should be linked to an existing feature request with at least 10 'up-votes'. The purpose of this requirement is to avoid the addition (and maintenance) of features that might only benefit a small number of users.
- If you have ideas for a larger feature, please open a discussion first.
- Please note that though it is a requirement, a discussion with 10 'up-votes' in no way guarantees that a PR will be merged.
Service Widget Guidelines
To ensure cohesiveness of various widgets, the following should be used as a guide for developing new widgets:
- Please only submit widgets that have been requested and have at least 10 'up-votes'. The purpose of this requirement is to avoid the addition (and maintenance) of service widgets that might only benefit a small number of users.
- Widgets should be only one row of blocks
- Widgets should be no more than 4 blocks wide
- Minimize the number of API calls
- Avoid the use of custom proxy unless absolutely necessary