Welcome to the monorepo for Discourse Graphs. Discourse Graphs serve as a tool and ecosystem for collaborative knowledge synthesis.
This repository uses Turborepo as a build system, enabling a streamlined and efficient workflow for managing multiple applications and shared packages in a monorepo setup.
Using Turborepo allows for things like:
- Centralize shared resources: Shared configurations, utilities, and components are maintained in a single place, reducing duplication and inconsistency.
- Incremental builds: Only changes in code are rebuilt, which speeds up development.
- Parallel processing: Tasks across applications and packages run concurrently, saving time.
- Dependency graph management: Turborepo tracks relationships between projects, ensuring that tasks run in the correct order.
Learn more about how monorepos improve development workflows here and here.
apps
- website: The public-facing website for Discourse Graphs, available at discoursegraphs.com. Uses Next.js.
- roam: The Roam Research extension that implements the Discourse Graph protocol.
- obsidian: The Obsidian plugin that implements the Discourse Graph protocol.
packages
- tailwind-config: Shared tailwind config
- typescript-config: Shared tsconfig.jsons
- eslint-config: ESLint preset
- ui: Core React components
To get started with local development:
- Clone the repository:
git clone https://github.com/DiscourseGraphs/discourse-graph.git
- Install dependencies:
cd discourse-graph
npm install
- Run all applications in development mode:
turbo dev
You can use the --filter
flag to run a single application, eg:
turbo dev --filter roam
- go to your graph, open up settings, and go to the extensions tab
- click "Enable developer mode (the settings cog icon)
- click "Load extension"
- and choose the
dist
folder on your computer which is in thediscourse-graph/apps/roam
directory - you can set a hotkey to
Reload developer extension
- copy the
.env.example
file to.env
- fill in the
OBSIDIAN_PLUGIN_PATH
with the path to your Obsidian plugins folder - run
turbo dev --filter @discourse-graphs/obsidian
- install the Plugin Reloader or BRAT/Hot Reload to reload the plugin after changes
Please see our contributing guide.
Also see our style guide for more information on the specifics of our coding standards.
Found a bug? Please submit an issue.
Have questions, comments or feedback? Join our discord.
This project builds upon the foundational work of David Vargas and his suite of RoamJS plugins. His innovative contributions laid the groundwork for what Discourse Graphs has become today. We are deeply grateful for his vision and dedication, which have been instrumental in shaping this project.