We appreciate your interest in helping improve Discourse Graphs! Contributions, whether in code or documentation, are always welcome. 🙌
Before diving into a pull request, it’s a good idea to open an issue to discuss what you have in mind. This ensures your work aligns with the project’s goals and reduces the chance of duplicating ongoing efforts.
If you’re uncertain about the value of your proposed change, don’t hesitate to create an issue anyway 😄. We’ll review it together, and once we agree on next steps, you can confidently move forward.
Here’s how to contribute:
- Fork and clone the repository.
- Create a new branch for your updates.
- Implement your changes, making sure your code:
- Is formatted with Prettier
- Follows our Style Guide
- Passes all TypeScript type checks
- Write tests that validate your change and/or fix.
- Push your branch and open a pull request. 🚀
The Discourse Graphs website hosts documentation for plugins and general information. Here's how to add or edit documentation:
Blog posts are located in /apps/website/content/blog/
-
Create your post file: Copy
EXAMPLE.mdxas a starting template and rename it to your desired URL slug (for example,my-new-post.mdx) -
Required metadata: Every blog post must start with YAML frontmatter (reference
EXAMPLE.mdxfor the exact format):--- title: "Your post title" date: "YYYY-MM-DD" author: "Author name" published: true tags: - release description: "Optional summary used for metadata." ---
-
Content: Write your content below the frontmatter using Markdown or MDX. Blog posts render through Nextra, so standard markdown features and Nextra components are available.
Detailed guidance for plugin docs lives next to the update-user-docs skill:
- navigation-mapping.md — where files live,
docMap.ts(shared pages), andnavigation.ts(every new page) - doc-conventions.md — filenames, frontmatter, screenshots, and cross-links
- scope-detection.md — how changed file paths map to Obsidian vs Roam vs shared docs (useful when unsure where a doc belongs)
All documentation images should be placed in /apps/website/public/docs/[platform]/ following this structure:
- Platform-specific images:
/public/docs/[platform]/(e.g.,/public/docs/roam/,/public/docs/obsidian/) - General documentation images:
/public/docs/
When referencing images in your documentation, use relative paths from the public folder:
To preview your changes locally:
- Environment setup: Copy
/apps/website/.env.exampleto/apps/website/.envand configure any necessary environment variables - Install dependencies: Run
npm installfrom the project root - Start development server: Run
npm run devornpx turbo devto start the website locally - View your changes: Navigate to
http://localhost:3000to see your documentation
The website uses Next.js with the App Router, so changes to Markdown files should be reflected automatically during development.