Beyond the README: Crafting a Better Developer Experience for Open Source Projects

A presentation at FOSDEM in February 2025 in Brussels, Belgium by Lorna Jane Mitchell

Slide 1

Slide 1

Beyond the README Crafting a better developer experience for open source projects Lorna Mitchell @lornajane@indieweb.social @lornajane.net (bsky)

Slide 2

Slide 2

Open Source Lifecycle From user to contributor. From contributor to maintainer. @lornajane@indieweb.social @lornajane.net (bsky)

Slide 3

Slide 3

DevEx for Users @lornajane@indieweb.social @lornajane.net (bsky)

Slide 4

Slide 4

Metadata Topic tags help project discovery. Introduce your project briefly. Key project measurements. @lornajane@indieweb.social @lornajane.net (bsky)

Slide 5

Slide 5

The art of README @lornajane@indieweb.social @lornajane.net (bsky)

Slide 6

Slide 6

README structure 1.Project purpose 2.Installation 3.Basic usage 4.Further resources @lornajane@indieweb.social @lornajane.net (bsky)

Slide 7

Slide 7

Documentation Documentation is a multiplier. •Use Docs-as-Code •Publishing is optional •Getting started •Platform-specific info •Advanced usage @lornajane@indieweb.social @lornajane.net (bsky)

Slide 8

Slide 8

The Tools we Build •Follow as many conventions as you can •Make the right thing the easy thing •Offer binaries or containerized tools if appropriate •Publish plugins/examples, or curate space for community work @lornajane@indieweb.social @lornajane.net (bsky)

Slide 9

Slide 9

DevEx for Contributors @lornajane@indieweb.social @lornajane.net (bsky)

Slide 10

Slide 10

Code of Conduct A code of conduct sets out expectations for all participants. GitHub prompts with a selection of CoC templates. @lornajane@indieweb.social @lornajane.net (bsky)

Slide 11

Slide 11

Contributing file @lornajane@indieweb.social @lornajane.net (bsky)

Slide 12

Slide 12

Contributing file Everything a new user needs to contribute. •Philosophy •Mechanics •Codebase •Quality •Finishing @lornajane@indieweb.social @lornajane.net (bsky)

Slide 13

Slide 13

Philosophy Are patches actually welcome? •A public resource with a private change process •A corporate project with a permissive license but no external contributors •A community-driven project @lornajane@indieweb.social @lornajane.net (bsky)

Slide 14

Slide 14

Mechanics •branching strategy •issue creation requirements •pull request creation requirements •naming conventions •quality checks and coding standards @lornajane@indieweb.social @lornajane.net (bsky)

Slide 15

Slide 15

Finishing What is the “definition of done” in the project? •docs •tests •changelog •something else…? @lornajane@indieweb.social @lornajane.net (bsky)

Slide 16

Slide 16

Local development Local tools shorten feedback cycle and improve developer experience. @lornajane@indieweb.social @lornajane.net (bsky)

Slide 17

Slide 17

Pull request reviews Transferrable skill from other code projects. •Be clear and constructive •Be prepared to add one more commit •Be consistent •Be responsive @lornajane@indieweb.social @lornajane.net (bsky)

Slide 18

Slide 18

CI really matters Give instant feedback on the things you care about (and can automate). •coding standards •prose linting •tests •changelog @lornajane@indieweb.social @lornajane.net (bsky)

Slide 19

Slide 19

DevEx for Maintainers @lornajane@indieweb.social @lornajane.net (bsky)

Slide 20

Slide 20

Review checklist Things to check on every pull request, documented. •helps contributors too •serves as onboarding for new maintainers •reduces your cognitive load •makes more consistent reviews @lornajane@indieweb.social @lornajane.net (bsky)

Slide 21

Slide 21

Maintaining fIle •like a contributing file •but for maintainers •write down the release process •the docs publishing process •anything else that the maintainer does @lornajane@indieweb.social @lornajane.net (bsky)

Slide 22

Slide 22

Automation Invest time to save time! Automate tests, syntax checks, build processes. Also spell checks, coding standards, file naming, pull request requirements. @lornajane@indieweb.social @lornajane.net (bsky)

Slide 23

Slide 23

Notification management Do you get too many notifications, too few, or the wrong ones? •route notifications •adjust watching •use codeowners •email rules @lornajane@indieweb.social @lornajane.net (bsky)

Slide 24

Slide 24

Outreach Your project is more than the code. Build and enable the ecosystem: •write about the project •feature cool projects using your project •check stackoverflow questions •speak at a meetup @lornajane@indieweb.social @lornajane.net (bsky)

Slide 25

Slide 25

Developer Experience in Open Source @lornajane@indieweb.social @lornajane.net (bsky)

Slide 26

Slide 26

Get in touch https://lornajane.net @lornajane@indieweb.social @lornajane.net (bsky)