How to Contribute?
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 makes a good post?
You don’t need to write a lot — you just need to be helpful and specific:
- A clear title that tells readers what the resource is and what it covers.
- A brief description in your own words: what the resource does, why you found it valuable, and who it’s best for.
- Prerequisites — what should someone already know before diving in?
- Strengths and limitations — a balanced, honest take helps people decide if the resource fits their needs.
- 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
- Create a GitHub Issue announcing your planned resource
- Fork and clone the repo
- Create a branch, write your post using a template
- Commit, push, and open a Pull Request
- 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.
- Go to Nexus GitHub Issues and click New Issue.
- Title it with the name of your resource and add the “Resource” label.
- Briefly describe why this resource should be on Nexus.
- Wait for feedback before proceeding.
2. Fork and clone the repo
- Go to the ML+X Nexus repository and click Fork (top-right).
- 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
- In GitHub Desktop: Branch > New Branch. Name it descriptively (e.g.,
workshop-introDL,video-NeurIPS2024). - Copy the appropriate template into the correct folder (see folder structure below).
- Edit the template in your preferred text editor. The template comments will guide you.
4. Commit, push, and open a Pull Request
- In GitHub Desktop, write a descriptive commit message and click Commit.
- Click Push to upload your changes.
- On GitHub, click Compare & pull request, ensure you’re merging into the
mainbranch, 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:
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, ModelsIf 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
.qmdfile 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:
- Develop in a notebook — write your content in Jupyter (
.ipynb) as you normally would. - Convert to
.qmd— when you’re ready to submit, run:bash quarto convert your_notebook.ipynbThis produces a.qmdfile with your code cells and markdown preserved. - Add YAML front matter — open the
.qmdand add the required metadata header at the top. Use the notebook template as a reference. Key fields includejupyter: python3andexecute: eval: false(prevents code from running during the site build). - Submit a PR with the
.qmdfile — place it inLearn/Notebooks/. Do not include the.ipynbin 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.
- From the post’s page on Nexus, click “Improve this page” (top-right).
- On GitHub, click the pencil icon to edit the file in your browser.
- Make your changes, scroll down, and choose “Create a new branch for this commit and start a pull request.”
- 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: falseto the YAML front matter.