Nocterra is free software. Contributions are welcome when they help the general Nocterra project and fit the technical direction of the CMS: fast pages, open standards, privacy, accessibility, portability and long-term maintainability.
Contributing does not only mean sending code. A useful contribution can be a bug report, a tested reproduction case, documentation, examples, testing on real websites, funding for development, a new extension, an add-on, or joining the development team.
Nocterra is maintained through one upstream development line. Work that belongs in the public project is reviewed, tested and released through that line, whether it started as volunteer work, funded work, commissioned work or development by the regular project team.
A contribution should strengthen Nocterra as a general free-software CMS. It may solve a problem found on one website, but the result should be useful, understandable and maintainable as part of the wider project.
That does not mean every contribution has to belong in the core CMS. Some work fits better as an extension, an add-on, documentation, an example, a test case or a requested feature for a later release. The important part is that the work can be evaluated and maintained without weakening the freedom, portability or clarity of the project.
Good bug reports are very useful. Please describe what happened, what you expected, and how the problem can be reproduced. When possible, include the Nocterra version, PHP version, relevant configuration, server context, page or article source, log messages and a small reproduction case.
Reports about multilingual sites, blog URLs, metadata, generated links, navigation, cache invalidation, redirects, forms, extensions and add-ons are especially helpful when they include enough information to reproduce the behaviour.
Nocterra development is partly request-driven. A useful feature request explains the problem or use case, why existing functionality does not cover it, and what kind of behaviour would solve it.
For larger requests, it also helps to describe whether the feature belongs in the core CMS, an extension or a separate add-on, and whether you can help test, specify or fund the work.
Testing on real websites is important. Some problems only become visible through actual site structures, real content, older PHP versions, multilingual domains, redirects, generated metadata, cache behaviour or extension use.
If you test a pre-release build, please report both problems and successful results. Knowing that a change works on a real website can be as useful as finding a bug.
Documentation contributions can include corrections, clearer explanations, installation notes, configuration examples, API notes, migration notes, add-on documentation and practical examples.
Nocterra documentation should help people understand the system, not only copy commands or settings. Clear explanations of why something works in a certain way are valuable.
Donations help maintain Nocterra and related free-software work. You can use the donation button on this website for a general contribution.
If you want to fund a specific feature, add-on, fix or documentation effort, please contact us by email first. That makes it possible to discuss the scope, planning and whether the work belongs in the upstream project.
Code contribution can mean a small patch, a larger change, a new extension, a separate add-on or ongoing participation in development. Larger changes should be discussed before implementation, so the work can fit the project structure, coding style, compatibility goals and release process.
Extensions are distributed with Nocterra but can be installed or not installed. Add-ons may provide larger or more specialised functionality. Both should follow the same basic principles as the core project: free software, inspectable code, maintainability and respect for the user.
Contributing code can also mean joining the development team. This is different from sending in an isolated patch. It means taking part in the ongoing work: discussing design choices, maintaining code, testing changes, reviewing behaviour on real websites and helping prepare public releases.
If you are interested in that kind of contribution, please contact us by email and describe your background, the kind of work you want to do and the parts of Nocterra you are interested in.
Please report suspected security issues by email. Include enough information to understand and reproduce the issue, but do not publish exploit details before there has been time to investigate and prepare a fix.
If you want to contribute, please send us an email first: info@nocterra.org. Describe what you want to report, improve, test, fund or build.
For technical work, include the Nocterra version, relevant configuration, PHP version, server context and a small reproduction case where possible. For larger changes, new extensions, add-ons or development-team participation, please contact us before doing substantial implementation work.
This helps us check where the contribution belongs, how it can be reviewed, and how it can be tested and released through the upstream development line.
Nocterra is released under the GNU Affero General Public License version 3. For this project, a free software licence is not only a licence that can be combined with the AGPLv3. It must also preserve the user's practical freedoms: the freedom to use the software for any purpose, study how it works, change it, share copies and share modified versions.
Contributions should fit the direction of Nocterra as a freedom-respecting CMS. In practice this means:
We do not accept contributions that reduce those freedoms, or that make those freedoms impractical in normal use. That includes code, licences or technical designs that depend on proprietary components, required registration, telemetry, hosted control platforms, tivoization, platform lock-in or other mechanisms that let someone receive source code but prevent them from actually using modified versions under their own control.
Optional integrations may communicate with closed or semi-closed external services, such as payment providers, account systems or publishing platforms, when that is useful for a specific website. The integration code itself must still be free software and must not require non-free code to be shipped with Nocterra, an extension or an add-on.
We do not accept contributions that introduce binary blobs, proprietary libraries, hidden components or mechanisms that download and add non-free code to the Nocterra code base after installation. A free add-on may talk to an external service; it may not make Nocterra depend on non-free software as part of its distributed or installed code.
Contributions that add visitor tracking, advertising hooks, mandatory external services or dependencies that make ordinary websites less portable will normally not fit the project.
Nocterra development is coordinated through the project's own planning, issue tracking and version control systems. Public releases are prepared from one upstream development line.
Before public release, changes are tested and evaluated in pre-release builds and on real Nocterra-based websites. This includes changes that started as bug reports, funded development, documentation work, patches, extensions or add-ons.
Not every idea can be accepted, and not every accepted idea will be implemented immediately. Some work needs funding, testing, further design or a better place in the project structure. When a contribution fits, the goal is to handle it in a way that strengthens Nocterra for everyone who uses it.