Submit a feedpack
A feedpack is a collection of feeds on one subject. You can make one in Monfil and propose it for the feedpack catalog. You need a GitHub account to submit it, but you can use the GitHub website for every step.
You will submit an OPML file with the feeds and update feedpacks/index.json to describe the pack. A pull request asks the Monfil maintainer to review those changes. Your pack appears in the catalog after it is accepted.
1. Make the pack in Monfil
Section titled “1. Make the pack in Monfil”- Select + in the left rail to create a workspace for the subject. Use + at the top of the feed sidebar to add the feeds you want to share. Put them in useful folders.
- Open each feed. Check that it publishes content and fits the subject. Remove duplicates and broken feeds.
- Right-click the workspace icon in the left rail and select Export as OPML.
- Save the file with a short name made of lowercase words joined by hyphens, such as
web-performance.opml.
OPML is the file format Monfil uses to move a list of feeds and folders between apps. The export saves the feeds from that workspace.
2. Make a copy of the project on GitHub
Section titled “2. Make a copy of the project on GitHub”- Create a GitHub account if you need one. Sign in and open the Monfil repository.
- Select Fork, then Create fork. GitHub makes a copy under your account. GitHub’s fork guide has pictures of these buttons.
- In your fork, open the branch menu above the file list. It shows main at first. Type a name such as
add-web-performance-pack, then select Create branch. A branch holds the changes you want to submit. Keep it selected for both file changes.
3. Upload the OPML file
Section titled “3. Upload the OPML file”- In your fork, open the
feedpacksfolder. - Select Add file, then Upload files. Choose the OPML file you exported.
- Save the change on the branch you created. GitHub may label the button Commit changes or Propose changes. A commit saves a change to your copy.
4. Describe the pack in the catalog
Section titled “4. Describe the pack in the catalog”- Stay in your fork and on the same branch. Open
feedpacks/index.json, then select the pencil icon to edit it. - Add one object inside the
packslist. Put a comma between your object and the one before it. Use this example as a guide:
{ "slug": "web-performance", "title": "Web Performance", "description": "Browser performance, metrics, tooling, and field research.", "tags": ["web", "performance", "browsers"], "curator": "Your name or handle", "sourceCount": 12, "updatedAt": "2026-09-30", "opml": "web-performance.opml"}Replace the example values with your own. Make slug unique among the existing packs, and make opml match your file name exactly. sourceCount is the number of feeds, without the folders. Set updatedAt to the date when you last checked the sources, in YYYY-MM-DD format. Use a short description and a few lowercase search tags. Keep the root version value as it is.
Save this change to the same branch as the OPML file.
5. Ask for a review
Section titled “5. Ask for a review”- Return to the original Monfil repository. Select Pull requests, then New pull request.
- Select compare across forks. Set the base repository to
theopnv/monfiland the base branch tomain. Set head fork to your copy and compare branch to the branch you created. GitHub’s pull request guide shows this screen. - Check Files changed. It should show your OPML file and your edit to
feedpacks/index.json. - Give the request a clear title. In the description, say what the pack covers, how you chose the feeds, and whether any source needs context. Select Create pull request.
GitHub runs a check that the OPML file exists and that sourceCount matches its feeds. The maintainer reviews the sources, their fit with the subject, and the catalog details. You can reply to questions on the pull request and update the same branch if changes are needed.
Before the pack can be accepted, you must sign the Contributor License Agreement. CLA Assistant adds a link to your pull request. Follow that link to sign.
If you make the OPML file yourself
Section titled “If you make the OPML file yourself”Use OPML 2.0. Put each folder in an <outline> and each feed inside a folder. Each feed needs a title, a supported type, and an xmlUrl. You can use an existing feedpack as an example.
If you work on the project locally, run npm install and then npm run check:feedpacks before you submit. That command checks the catalog file names and source counts. Open the feeds yourself to check that their URLs work and that the content fits your pack.