How to Contribute?

Guides
Author

ML+X

Published

June 25, 2024

Modified

March 10, 2026

Nexus is built by people sharing what they’ve learned with each other. This guide covers what we’re looking for, what makes a good contribution, and how to submit one.

Our philosophy: share what you know

Nexus isn’t a link aggregator — it’s a place where community members share resources they have personally used and can speak to. Every contribution should reflect real experience:

  • Share what has genuinely helped you. A workshop that clarified a tricky concept, a library that saved you hours, a dataset that was well-suited for a particular task — if it made a difference in your work, it belongs here.
  • Add your perspective. Don’t just point to a resource — tell the community why it’s worth their time. What did you find most useful? What are its strengths and limitations? Who is it best suited for?
  • Be authentic. In an era of abundant AI-generated content, what makes Nexus valuable is the human curation and firsthand experience behind every post. We’d rather have a short, honest write-up from someone who used the resource than a polished summary from someone who didn’t.

Using generative AI when contributing

GenAI tools are great for writing — we use them too. The key is that you stay in the driver’s seat. Here’s what that looks like:

  • Steer with your experience. Whether you draft from scratch or use AI to help, make sure the post reflects what you actually know — your impressions, recommendations, and caveats. AI doesn’t have your experience, so you need to bring that.
  • Review carefully and iterate. AI gets things wrong. Read through the output critically, fix inaccuracies, and make sure every claim holds up against your own understanding. A few rounds of back-and-forth usually gets things where they need to be.
  • Make it sound like you. The most useful Nexus posts have a real point of view — why you found something helpful, what tripped you up, who you’d recommend it to. If a post could have been written by anyone about anything, it needs more of you in it.

In short: use AI however it fits your workflow — just make sure the end result genuinely reflects your experience and reads like something you stand behind.

What kinds of resources can I share?

Contributions fit into one of four sections:

  • 🧠 Learn — Workshops, books, videos, guides, and notebooks
  • 🛠 Toolbox — Models, datasets, libraries, and compute resources
  • 🖊️ Stories — Blogs, talks, and real-world applications of ML/AI
  • 🚀 Projects — Projects from labs, hackathons, and partners

What makes a good post?

You don’t need to write a lot — you just need to be helpful and specific:

  1. A clear title that tells readers what the resource is and what it covers.
  2. A brief description in your own words: what the resource does, why you found it valuable, and who it’s best for.
  3. Prerequisites — what should someone already know before diving in?
  4. Strengths and limitations — a balanced, honest take helps people decide if the resource fits their needs.
  5. Links to related resources on Nexus, when relevant.

Use one of the resource templates below to get started — they’ll guide you through the structure.

Examples of good posts

Click “Improve this page” near the top right of any post to view its source code.

External content (resources you’re recommending):

Original content (things you’ve written):

Need topic ideas?

Browse open issues labeled “Resource” on the GitHub Issues page for community-requested topics. If you’d like to tackle one, comment on the issue to let others know.

How to submit a new post

Quick overview

  1. Create a GitHub Issue announcing your planned resource
  2. Fork and clone the repo
  3. Create a branch, write your post using a template
  4. Commit, push, and open a Pull Request
  5. Wait for review

New to Git? We recommend GitHub Desktop — see our GitHub Desktop guide for a walkthrough. UW-Madison researchers can also get help at the Data Science Hub’s Coding Meetup office hours.

Step-by-step instructions

1. Create an Issue on GitHub

Before writing, announce your plan so the team can provide early feedback.

  1. Go to Nexus GitHub Issues and click New Issue.
  2. Title it with the name of your resource and add the “Resource” label.
  3. Briefly describe why this resource should be on Nexus.
  4. Wait for feedback before proceeding.

2. Fork and clone the repo

  1. Go to the ML+X Nexus repository and click Fork (top-right).
  2. Clone your fork to your local machine. In GitHub Desktop: File > Clone Repository, paste the URL, and click Clone.

3. Create a branch and write your post

  1. In GitHub Desktop: Branch > New Branch. Name it descriptively (e.g., workshop-introDL, video-NeurIPS2024).
  2. Copy the appropriate template into the correct folder (see folder structure below).
  3. Edit the template in your preferred text editor. The template comments will guide you.

4. Commit, push, and open a Pull Request

  1. In GitHub Desktop, write a descriptive commit message and click Commit.
  2. Click Push to upload your changes.
  3. On GitHub, click Compare & pull request, ensure you’re merging into the main branch, write a short description, and submit.

5. Review

A Nexus developer will review your PR. They may request changes — just push additional commits to your branch.

Resource templates

Start with one of these and follow the inline comments:

Learn: Blog · Book · Notebook · Video · Workshop

Stories: Blog · Video

Toolbox: Data · Model · Library

Where to place your file

Place your .qmd file in the appropriate subfolder:

├── Learn/
│   ├── Blogs, Books, Guides, Notebooks, Videos, Workshops
├── Applications/ (Stories)
│   ├── Blogs, Videos
├── Toolbox/
│   ├── Compute, Data, GenAI, Libraries, MLOps, Models

If your resource doesn’t fit an existing category, propose a new one in your GitHub Issue.

Previewing locally (optional)

If you have Quarto installed, you can preview your post before submitting:

quarto preview <your_file.qmd>

Previewing in VSCode: Install the Quarto extension for VSCode. Once installed, you can preview .qmd files with:

  • Ctrl+Shift+K (Windows/Linux) or Cmd+Shift+K (Mac) — renders a preview of the document.
  • Or click the Preview button that appears in the top-right corner of the editor when a .qmd file is open.

Note: VSCode’s built-in Markdown preview (Ctrl+Shift+V) does not work with .qmd files — you need the Quarto extension.

Don’t spend too much time perfecting things locally — you can always iterate after the PR is open.

Contributing a Jupyter notebook

If you’re sharing a code-along notebook (e.g., a tutorial, demo, or walkthrough), the workflow is slightly different from other resource types. Nexus stores notebooks as .qmd (Quarto markdown) files, and a GitHub Action automatically generates the .ipynb after your PR is merged.

The workflow:

  1. Develop in a notebook — write your content in Jupyter (.ipynb) as you normally would.
  2. Convert to .qmd — when you’re ready to submit, run: bash quarto convert your_notebook.ipynb This produces a .qmd file with your code cells and markdown preserved.
  3. Add YAML front matter — open the .qmd and add the required metadata header at the top. Use the notebook template as a reference. Key fields include jupyter: python3 and execute: eval: false (prevents code from running during the site build).
  4. Submit a PR with the .qmd file — place it in Learn/Notebooks/. Do not include the .ipynb in your PR; the GitHub Action will generate it automatically after merge.

For a working example, see the RAG: Romeo and Juliet notebook and its source .qmd.

How to improve an existing post

Want to fix a typo, add a code-along, or share your perspective on an existing resource? Anyone is welcome to suggest improvements.

  1. From the post’s page on Nexus, click “Improve this page” (top-right).
  2. On GitHub, click the pencil icon to edit the file in your browser.
  3. Make your changes, scroll down, and choose “Create a new branch for this commit and start a pull request.”
  4. Click Propose changes, then Create pull request.

That’s it — the maintainers will review and merge if everything looks good.

Comments

Every resource post on Nexus has a Comments section at the bottom, powered by giscus (backed by GitHub Discussions). Visitors can leave reactions and comments using their GitHub account. This is enabled automatically for all posts — you don’t need to add anything to your front matter. If you ever need to disable comments on a specific page, add comments: false to the YAML front matter.

Comments