Skip to content

DiscourseGraphs/discourse-graph

Repository files navigation

Welcome to the monorepo for Discourse Graphs. Discourse Graphs serve as a tool and ecosystem for collaborative knowledge synthesis.

Local development

Turborepo

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 & Packages

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

Getting Started

To get started with local development:

  1. Clone the repository:
git clone https://github.com/DiscourseGraphs/discourse-graph.git
  1. Install dependencies:
cd discourse-graph
npm install
  1. Run all applications in development mode:
turbo dev

You can use the --filter flag to run a single application, eg:

turbo dev --filter roam

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 the discourse-graph/apps/roam directory
  • you can set a hotkey to Reload developer extension

Obsidian

  • 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

Contributing

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.

Community

Have questions, comments or feedback? Join our discord.

Supporters

Acknowledgement

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.

Releases

No releases published

Packages

No packages published

Contributors 8