We love your input! We want to make contributing to Atom as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Fork the repo and create your branch from
main. - Install dependencies:
npm install
- Run the app:
npm run dev
- Run tests (we use Jest):
Please ensure all tests pass before submitting your PR.
npm test - Lint your code:
npm run lint
src/app: Next.js App Router pages and API routes.src/components: React components.widgets/: Dashboard widgets (Docker, System, etc.).modals/: Dialogs for adding/editing content.ui/: Reusable primitive components.
src/lib: Utility functions and server-side logic.src/types: TypeScript definitions.
To add a new widget preset:
- Open
src/lib/widgetPresets.ts. - Add a new
WidgetPresetobject to theWIDGET_PRESETSarray. - Define the default endpoint, fields, and suffix/format options.
- Ensure any install or build dependencies are removed before the end of the layer when doing a build.
- Update the README.md with details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters.
- You may merge the Pull Request in once you have the sign-off of two other developers, or if you do not have permission to do that, you may request the second reviewer to merge it for you.