> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stellarium.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Get involved

> Where the Stellarium community meets and the ways you can help build the network.

Stellarium is built in the open. You don't need permission to help: pick an area, look around, and say hello on [Discord](https://discord.gg/yDEBkaz6cB).

## Where to find us

<CardGroup cols={2}>
  <Card title="Discord" icon="discord" href="https://discord.gg/yDEBkaz6cB">
    Get help running a node, share what you're building, and talk through ideas before writing a SIP.
  </Card>

  <Card title="Roadmap" icon="list-check" href="https://github.com/orgs/qualletio/projects/7/views/1">
    The project backlog on GitHub.
  </Card>
</CardGroup>

## Repositories

| Repository | What's in it |
| - | - |
| [stellarium-ts](https://github.com/qualletio/stellarium-ts) | The TypeScript node, operator, and escrow program. Start here to run a node or work on the network. |
| [requestscript-js](https://github.com/qualletio/requestscript-js) | The RequestScript language: parser, types, and runtime. |
| [SIPs](https://github.com/qualletio/SIPs) | Stellarium Improvement Proposals and the whitepaper. |
| [stellarium-web](https://github.com/qualletio/stellarium-web) | The Stellarium website. |

## Ways to help

<AccordionGroup>
  <Accordion title="Research" icon="flask">
    Study how other networks handle discovery, routing, and payments. Poke holes in the [whitepaper](https://github.com/qualletio/SIPs/blob/main/WHITEPAPER.md) and turn your findings into a [SIP](/community/proposals).
  </Accordion>

  <Accordion title="Programming language development" icon="code">
    Work on the RequestScript parser, type checker, and runtime. Propose new language features, and write examples and test cases.
  </Accordion>

  <Accordion title="Website, blog, and docs" icon="book">
    Improve the website, write guides, tutorials, and reference docs, and help launch the blog.
  </Accordion>

  <Accordion title="Decentralized architectures" icon="network-wired">
    Work on peer discovery, routing, and syncing in the node. Think through trust, signing, and payments between nodes. Run nodes and report what breaks.
  </Accordion>
</AccordionGroup>

## Your first contribution

<Steps>
  <Step title="Join the Discord">
    Introduce yourself and say which area interests you.
  </Step>

  <Step title="Look around the repos">
    Read the README, try running the code, and check the open issues.
  </Step>

  <Step title="Start small">
    Fix a typo, improve an example, or answer a question.
  </Step>

  <Step title="Go bigger">
    Take on a feature or write a [SIP](/community/proposals).
  </Step>
</Steps>

## Developing stellarium-ts

The node repository is a pnpm monorepo:

| Module | Purpose |
| - | - |
| `packages/stellarium-ts` | The `stellarium-ts` npm package |
| `apps/operator` | The operator that interacts with Solana and stores receipts |
| `apps/local-resource-node` | A local node hosting a paid resource |
| `apps/local-caller-node` | A local node with no resources that syncs from the resource node |
| `programs/escrow_program` | The native Rust Solana escrow program |

```bash theme={null}
pnpm install
pnpm build
pnpm dev
```

If you change the operator's database schema, generate migrations before opening a PR:

```bash theme={null}
cd apps/operator
DATABASE_URL='postgresql://stellarium:local-only-password@127.0.0.1:5432/stellarium' pnpm exec drizzle-kit generate
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.