Who we are
Discourse Graphs is a philanthropically funded open-source project that helps research teams structure knowledge work, projects, and original research contributions. We do this by helping them represent their work as a structured graph (claims, evidence, requests) and move that structure between the tools they already use. We ship plugins for Roam Research and Obsidian, backed by a shared Supabase database, and we run live pilots with working scientific labs.
We’re a distributed team of about eight, funded by the Chan Zuckerberg Initiative, The Navigation Fund, and the Astera Institute, with Homeworld Collective as our fiscal sponsor. The team includes a tech lead, UX designer, two front end engineers, two researcher/product owners, and a database architecture consultant. We are non-hierarchical and we work in the open.
The problem
Our database is the layer through which every platform talks to every other. Right now it has two gaps:
- It stores node titles, not node content. Which means agents and other clients can see that something exists but can’t read it.
- It can’t express a reference that crosses a graph boundary. Cross-graph citations and relation tracking are the next thing our users need, and the third-party system we’d planned to lean on has been discontinued.
Closing the first gap, and laying the schema groundwork for the second, is what these twelve weeks are for.
What you’d work on
- Finish the remaining milestones of a Roam ↔ Obsidian push/pull sync, including conflict handling on repeat sync and property alignment across two platforms with very different data models
- Extend the Supabase schema to store node templates, slot definitions, and full node content, and expose it through the API so agent tooling can read node bodies
- Import-time sanitization: page references and forward slashes in titles currently break sync in ways that are individually small and collectively corrosive
- Write a migration readiness assessment for Roam’s forthcoming data model: what it costs, what it implies for the UI, and when we should decide
What we’re not asking you to do
Out of scope: AT Protocol and federation work, cross-graph schema reconciliation design, distributed version control, and the Roam migration itself. These are real problems we care about. They are someone else’s ticket, or a later one.
What we’re looking for
Required
- Postgres as a primary skill: schema design, migrations, and the specific pain of keeping two clients in sync
- A track record of shipping a decision under unresolved ambiguity, and writing down what you didn’t choose
- Clear written communication, explaining tradeoffs and your rationale; owning human-readable communication with your colleagues in PRs and Linear tickets.
- Comfort bridging concrete and abstract working styles, making decisions that retain initial scope and solve problems in the face of potential scope expansion or disagreement
Helpful
- Experience with Supabase specifically, or with sync/CRDT/offline-first systems
- Interest in federated protocols (AT Protocol, nanopublications, ActivityPub). This is not needed for this contract but is relevant to where we’re going.
- Any exposure to tools-for-thought, scientific infrastructure, or knowledge graphs
- Fluency with LLM-assisted development. We use it heavily. We also expect you to stand behind what lands in the repo.
How we work
Tickets in Linear and public pull requests. Each week also includes a 1:1, developer meeting, and all-hands meeting. We build for the use case in front of us and leave room to rewrite. If a choice is cheap to reverse, make it and log the alternatives rather than convening about it. If it’s expensive to reverse, raise it with the tech lead.
Your first week will focus on learning the tool from the user’s perspective before working with the data model. Over the next two to three weeks, you’ll get familiar with the codebase through adjacent tasks, giving you a strong foundation before working at that layer.
Logistics
- Term: 12 weeks, fixed. We review fit and scope in week 6; extension is possible and would be agreed upon in writing.
- Rate: $8k/mo, approximately 20 hours per week, invoiced semi-monthly through Homeworld Collective.
- Location: Fully remote. You’ll need a few hours of weekly overlap with US Pacific time.
- IP: Everything you write ships under Apache 2.0 with your name in the commit history.
To apply
Email discoursegraphs@homeworld.bio with:
- A short note (1-2 paragraphs is plenty) about a schema or data-model decision you made, and what you’d do differently now
- Code we can read: a repo, a PR, anything public
- Your availability and rate
We request applications by October 1, though applications can be rolling.
First conversation is 30 minutes with Michael Gartner, our technical lead.