Contributing to Stackio
We’re happy that you’re interested in contributing to Stackio!
You can contribute to Stackio in many different ways, such as providing support to others in our support discussions on GitHub, requesting new application templates, sending PRs to fix bugs, or adding new applications.
Important
Our guidelines may seem stricter than in most open source projects, but this helps keep things organized and maintainable in the long run.
You might feel that strict guidelines can turn away contributors, but they help prevent maintainer burnout and frustration, which ultimately keeps the project healthy.
1. Support Contributions
We mainly use the GitHub Discussions feature for support requests, and we also have a community Discord server where people can look for help.
We provide Coolify-compatible compose files and guides for open-source applications, but if you run into any issues while using compose files or guides from us, you should not create issues or support posts on Coolify’s community or GitHub. Maintainers there will redirect you to Coolify support only if the issue is related to Coolify.
Everyone should use our GitHub Discussions for help instead of GitHub Issues. Only maintainers can open issues in our repository, and they are reserved for bugs and application template requests. Maintainers will convert discussions into issues when an actionable fix or feature addition is confirmed.
Receving Support
If you are requesting support, you must provide as much information as possible about your issue so others can help you effectively. Most importantly, respect everyone, people help others voluntarily in their own time.
Please avoid pinging maintainers for attention. They will check discussions when they get some free time. You can ping a maintainer if no one has responded to your discussion for over two weeks.
Providing support
If you are offering support to others, verify the information or guide before sharing it. Most importantly, be patient and kind with others, even when they are not.
2. Application requests Contributions
Everyone should create a new discussion under “Application Requests” in our GitHub repository. Only maintainers can open issues in our repository, and those are reserved for bugs and application template requests. Maintainers will convert discussions into issues when an actionable fix or feature addition is confirmed.
The application you want to see added to Stackio must have Docker images published by the official team of that application. The application should be well maintained by its team and used by many people.
Maintainers may reject application requests without providing any reason.
3. Pull requests Contributions
Maintainers may close pull requests at their discretion without giving any reason (this applies to all pull requests).
Pull request must close an Issue or Discussion
Every pull request must close an issue or a discussion in our repository.
You can send a pull request that does not close an issue or discussion, but there is no guarantee that maintainers will review it. They might review it in a day, a week, a year, or they may close it without a review.
Pull request title formatting
Every pull request must start with a category keyword. The title must begin with one of the following:
[core]- Changes to the codebase related to the Stackio site[application]- Changes to existing application pages or adding a new application[automation]- Changes to GitHub workflow files[changelog]- Changes to the changelog
Examples
[application]Added new application Beszel[core]Fixed image zoom not working on mobile devices
AI usage disclosure
If you are using AI or receiving help from AI in the process of creating the pull request (or in any of the changes in it), you should mention this in the pull request description.
We do not dislike or oppose AI usage. However, some people submit pull requests entirely done by AI without understanding what the changes do, which wastes maintainers’ time and reduces trust in the contributor.
AI usage is perfectly fine as long as you know exactly what your pull request changes do and why each change is being made.
Test before you submit
You should test your changes thoroughly before sending the pull request. Your changes must work as expected when a maintainer tests them.
Images guidelines
Applications can have screenshots and logos, which should be included on the application’s page on Stackio.
Important
If you cannot follow the image guidelines, that’s okay, just let the maintainers know in your pull request description. They will add required images when they test your pull request.
If you are adding any image to Stackio, please follow these guidelines:
- All images should be in
.webpformat. - Application screenshots and logos should be placed in
/public/images/application/<Application-Name>. - Images should have meaningful names (avoid names like
1.webp, uselight-mode-screenshot-1.webpinstead) - Screenshot images should have a resolution of
1920px x 1080px, and the content should be clearly visible on all devices. - Application logo images should have a resolution of
512px x 512px, and they should be clearly visible in both light and dark modes.
4. Setting up development environment
- Fork the Stackio repository to your GitHub account (guide).
- Clone the Stackio Repository from your fork to your local machine (guide)
- Run
bun installto install all dependencies - Run
bun devto start the development server - Open
http://localhost:3000in your browser to view the Stackio site and start working on your changes. - Once you have finished your changes, run
bun lintand thenbun format(if you get any lint errors or warnings). - Test your changes thoroughly.
Tip
We use bun as our package manager, but you can use any package manager you prefer. Just make sure not to commit your package manager’s lock files to the repository.
5. Codebase Structure
Folder/File Explanations
.github/: Contains GitHub-specific configurations including workflows for CI/CD, and discussion templates.content/: Holds the MDX content files for the documentation site.(application)/: Contains MDX files for individual application documentation and deployment guides.resources/: Core documentation like contributor guidelines and deployment guides.meta.json: Controls sidebar content structure
public/: Static assets served by the application, such as images, fonts, and favicons.src/: The main source code directory.app/: Next.js app router pages and API routes.components/: Reusable React components, including UI primitives and page-specific components.lib/: Utility functions and shared logic.
Taskfile.ymldefines development tasks using the Task runner (a Make alternative).
6. Sending a Pull request
- Once you have completed development, commit your changes to your forked repository.
- Push the changes to your GitHub account (
git push) - Visit Stackio repository on Github
- Click the “Pull Requests” tab and then the green “New Pull Request” button.
- Choose your fork and branch as the compare branch.
- Fill out the pull request details and submit it by clicking “Create Pull Request”
Important
The pull request description will be automatically populated by GitHub using our predefined PR template. This template includes the following statement:
I have read and understood the [contributor guidelines](https://stackio.shadowarcanist.com/resources/contributor-guidelines), and agree to the terms.Any pull request description that does not include this statement will be automatically closed.
Note
Make sure your pull request is out of draft mode as soon as it’s ready for review or merge.
Pull requests that remain in draft mode for too long may be closed by maintainers.