CONTRIBUTING.md (2359B)
1 # Contributing 2 3 Hello! Let's jam! Before that, though, let's slow down and talk about how to make contributions that will be 4 welcomed with open arms. 5 6 The goal of this forum software is to enable small non-commercial communities to have their own 7 place for longer-flowing conversations, and to maintain a living history. As part of that, it 8 should be easy to make this software your own. It should also be easy to host on any kind of 9 computer, given prior experience with hosting a simple html website. Contradicting this is the 10 messy reality that the current software is written for the explicit use of the [Merveilles] 11 community! 12 13 ## Code contributions 14 In general, it's preferred to keep the code flexible than to impose (unnecessary) hierarchy at 15 this early stage, and to reach out before you attempt to add anything large-ish. Common sense, 16 basically. 17 18 In a bit more detail and in bullet-point format—the guiding principles: 19 20 * Communicate _before_ starting large rewrites or big features 21 * Keep the existing style and organization 22 * Flexibility before hierarchy 23 * Have fun! There are other places to execute at a megacorp level 24 * Additions should benefit long-term use of the forum and longer form conversations 25 * New features should have a reasonable impact on the codebase 26 * Said another way: new additions should not have an outsized impact on the _overall_ codebase 27 * The software should always be easy to host on a variety of devices, from powerful servers to smol memory-drained and storage-depleted computers 28 * As far as we are able to: avoid client-side javascript 29 * Said another way: there should always be a way to do something without a functioning javascript engine 30 * Don't `go fmt` the entire codebase in the same PR as you're adding a feature; do that separately if it's needed 31 * The maintainer reserves the right to make final decisions, for example regarding whether 32 something: 33 * makes the codebase less fun to work with, or understandable 34 * goes against the project's idea of benefitting conversations 35 * does not compose well with the existing forum experience 36 37 At the end of the day, a maintainer must live with decisions made for the project—both good and 38 bad! That weight of responsibility is taken into account when looking at new contributions. 39 40 [Merveilles]: https://now.lectronice.com/notes/merveilles/