Contributing code to advance HASH
HASH is a complicated application.
It is also in beta, and so whilst its external interfaces will be versioned and supported, its internals may change regularly, significantly, and without prior warning. Contributing from outside the core team is therefore not currently as streamlined as we would like, but doing so can be a great way to familiarize yourself with HASH's internals and the decisions that have influenced its architecture, as well as ongoing debates regarding and active discussions surrounding its development.
The HASH codebase can be found on GitHub and is divided up into several key sections:
/apps
contains the primary code powering our runnable applications/blocks
contains our public Block Protocol blocks/infra
houses deployment scripts, utilities and other infrastructure useful in running our apps/libs
contains libraries of shared code which multiple apps
rely on, including npm packages and Rust crates/tests
contains end-to-end and integration tests that span across one or more apps, blocks or libsA lot of our code, and all newly written or updated JavaScript files, are structured fractally. You'll need to follow this pattern when contributing.
We've produced a dictionary of terms for codebase contributors, to help you find your way around the application's internals, and to ensure we're all using the same language to refer to the same things.
If you would like to help out developing HASH, contact us, and/or check out the contributing guide in GitHub.
Next