Thanks for your interest in contributing to Orbit! This document covers everything you need to get a local development environment running and to submit changes back to the project.
- Code of Conduct
- Ways to Contribute
- Development Setup
- Project Structure
- Making Changes
- Commit Guidelines
- Submitting a Pull Request
- Reporting Bugs
- Requesting Features
- Getting Help
Be respectful, constructive, and patient. We're a small team maintaining this in our spare time, and so are many of our contributors. Harassment, discrimination, or hostility of any kind will not be tolerated in issues, pull requests, or our Discord server.
You don't have to write code to help out:
- Report bugs via our feedback portal
- Suggest features via the same feedback portal
- Improve documentation — typos, unclear instructions, missing sections
- Fix bugs or implement features via pull request
- Help other users in our Discord server
- Review open pull requests and leave feedback
- Node.js (LTS recommended)
- npm or a compatible package manager (eg. pnpm)
- A Prisma-compatible database (PostgreSQL recommended) — Supabase, Railway, or Neon all work well for local/dev use
- Git
- Fork the repository, then clone your fork:
git clone https://github.com/<your-username>/orbit.git
cd orbit- Install dependencies:
npm install- Set up environment variables. Create a
.envfile in the project root:
SESSION_SECRET= # generate with: openssl rand -base64 32
DATABASE_URL= # your database connection string
PUBLIC_URL= # e.g. http://localhost:3000- Push the database schema and generate the Prisma client:
npx prisma db push
npx prisma generate- Run the development server:
npm run devOrbit should now be running at http://localhost:3000.
Orbit is a TypeScript project built on:
- Frontend: Next.js, TailwindCSS
- Backend: Next.js API routes, Prisma ORM
- Database: Any Prisma-compatible database (PostgreSQL recommended)
Familiarize yourself with the existing folder structure before adding new files — try to follow the conventions already in place rather than introducing new patterns.
- Create a new branch off
mainwith a descriptive name:
git checkout -b fix/session-timezone-bug
# or
git checkout -b feat/bulk-member-export-
Make your changes, following the existing code style (formatting, naming conventions, file organization).
-
Keep changes focused — one bug fix or feature per pull request makes review much faster.
-
Test your changes locally. If you've touched anything Prisma-related, make sure
npx prisma db pushruns cleanly and existing functionality still works. -
Update documentation (README, code comments, or docs at docs.planetaryapp.us) if your change affects setup, configuration, or user-facing behavior.
- Write clear, descriptive commit messages (e.g.
Fixed quota calculation for weekly resets, notfixed bug). - Keep commits reasonably scoped — avoid bundling unrelated changes together.
- Reference related issues where relevant (e.g.
Closes #123).
- Push your branch to your fork and open a pull request against
main. - Give your PR a clear title and description:
- What does this change do?
- Why is it needed?
- Any screenshots for UI changes are appreciated.
- Link any related issues or feedback-portal reports.
- Be responsive to review feedback — we may ask for changes before merging.
- Once approved, a maintainer will merge your PR.
Note: since Orbit's beta focus is on stability and matching Planetary Cloud's hosting environment, please flag in your PR description if a change has implications for serverless/Vercel deployments specifically.
Please use the feedback portal rather than opening a GitHub issue directly. When reporting, include:
- Steps to reproduce
- Expected vs. actual behavior
- Whether you're using Planetary Cloud, Vercel, or self-hosting
- Relevant logs or screenshots
Feature requests also go through the feedback portal. This helps us track and prioritize requests in one place alongside bug reports.
- Documentation: docs.planetaryapp.us
- Discord: Join our server for questions, discussion, and contributor chat
- Changelog: feedback.planetaryapp.us/changelog
Thanks again for helping improve Orbit — we appreciate it!