Skip to content

docs: add backend contributing guide #18077

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 32 commits into from
May 30, 2025
Merged

docs: add backend contributing guide #18077

merged 32 commits into from
May 30, 2025

Conversation

mtojek
Copy link
Member

@mtojek mtojek commented May 28, 2025

Preview: https://github.com/coder/coder/blob/docs-backend-contrib-guide/docs/contributing/backend.md

This PR introduces the foundation for a backend contributing page aimed at new contributors who are unfamiliar with Coder's codebase.

The goal is to provide a smooth onboarding experience where a fresh developer can spend 15–30 minutes and walk away with a basic understanding of the backend architecture, tooling, and workflows.

Included sections

  • Quickstart: a guide to set up a local backend dev environment
  • Tech Stack and Libraries
  • Repository Structure: explanation of key directories and their responsibilities
  • Testing Utilities: summary of Go testing helpers available in the codebase
  • Quiz: Essential questions every contributor should be able to answer before jumping into implementation

@mtojek mtojek self-assigned this May 28, 2025
@mtojek mtojek requested review from johnstcn and mafredri May 28, 2025 15:33
@mtojek mtojek marked this pull request as ready for review May 28, 2025 15:34
Copy link
Member

@mafredri mafredri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a really solid doc, lots of good info packed in, nice work! Left some comments inline.

cd coder
```

1. Run the development script to spin up the local environment:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps we could add a quick explainer what the develop script does to deepen the understanding? (I.e. spins up coderd with embedded postgresql, creates an admin and a member user, prepares an initial template, etc.)

Also, are all of these intentionally 1.?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In theory, Markdown should auto-number, but I think this might only work if the content beneath is indented correctly.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Markdown linter enforces 1.-numbering, so I hope this will work. Once we've finished the technical review, I'll politely ask Edward to verify.


## Repository Structure

The Coder backend is organized into multiple packages and directories, each with a specific purpose. Here's a high-level overview of the most important ones:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great detail! Wdyt about adding a key areas of interest section under here as well, just so people scanning this can get a better idea of what's the most important. Maybe point out agent, coderd, queries, provisioner for instance.

Copy link
Member Author

@mtojek mtojek May 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe point out agent, coderd, queries, provisioner for instance.

I'm intrigued! Do you have something specific in mind? Should I move up the most important ones?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that's a great idea! Let's iterate on this further in future PRs.

@mtojek mtojek requested review from johnstcn and mafredri May 29, 2025 11:35
Copy link
Member

@johnstcn johnstcn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work @mtojek ! Let's keep iterating on this.

@mtojek mtojek requested a review from EdwardAngert May 29, 2025 11:45
@mtojek
Copy link
Member Author

mtojek commented May 29, 2025

@EdwardAngert shall I ask you to verify if the new page is consistent with our docbase? There are a lot of link references, and I hope our doc renderer can handle those.

Copy link
Contributor

@ssncferreira ssncferreira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a really great addition 🚀 just added a couple of comments for consideration

Copy link
Member

@matifali matifali left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM now.

@EdwardAngert
Copy link
Contributor

considering where this is, don't wait on my review - I want to work my way through the steps, which might take a little while. I can add edits as I go

@mtojek mtojek merged commit 1fba419 into main May 30, 2025
34 checks passed
@mtojek mtojek deleted the docs-backend-contrib-guide branch May 30, 2025 14:24
@github-actions github-actions bot locked and limited conversation to collaborators May 30, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants