Skip to content
On this page

Protocol Specification

Overview

RepoSell allows a software repository to become a purchasable software product without requiring the repository owner to operate a backend, database, API, or dedicated infrastructure.

The repository owner installs and configures RepoSell once. From then on:

text
GitHub Repository
      +
GitHub Releases
      +
GitHub Actions
      +
GitHub Pages
      +
Stripe Payment Links
1
2
3
4
5
6
7
8
9

GitHub ships first, but the protocol is provider-agnostic: repositories and CI/CD sit behind the GitProvider / workflow abstractions (GitLab, Bitbucket, Gitea and others are on the roadmap). The wire contract under /reposell/* is identical regardless of provider.

The entire public RepoSell protocol is exposed through one reserved namespace:

text
/reposell/*
1

Example:

text
https://owner.github.io/my-project/reposell/
1

The repository remains completely independent from RepoSell infrastructure.

Core principle

RepoSell must require as little developer work as possible:

bash
npm install -g @reposell/cli
reposell init
git push
1
2
3

After configuration, publishing is fully automated:

text
Developer


GitHub Release


GitHub Actions
    ├── validate
    ├── generate manifest
    ├── validate payment
    ├── generate pages
    └── deploy GitHub Pages
1
2
3
4
5
6
7
8
9
10
11
12

There are no servers to run. No RepoSell API dependency. No Docker container. If RepoSell infrastructure disappeared tomorrow, every enabled repository would keep selling.

Canonical protocol surface

text
/reposell/

├── index.json                 # Protocol discovery
├── manifest.json              # Repository manifest
├── health.json                # Current health

├── sell/
│   └── index.html             # Direct sales UI

├── listing/
│   └── index.html             # Optional listing UI

└── releases/
    └── index.json             # Release catalog
1
2
3
4
5
6
7
8
9
10
11
12
13
14

This namespace is reserved for RepoSell-generated content. CI owns /reposell/** and nothing else — developer files are never overwritten.

Pages in this section

PageAnswers
Endpoint architectureWhat lives under /reposell/* and why
Manifest schemaThe canonical machine-readable documents
/sell endpointDirect sales, Payment Links, price authority
Listing endpointOptional listing integration + economics
Release modelPublication gates, state machine, health
SignaturesEd25519 signing, verification keys, trust

Protocol version

Current version: 1.0

Every generated document declares its schema explicitly:

json
{
  "schema": "reposell/manifest/v1",
  "protocol": { "version": "1.0" }
}
1
2
3
4

Schemas are stable across the lifetime of a repository. Breaking changes require a new schema version, never a silent mutation.

Made with ☕ and 🎧 by a solo developer from the Dominican Republic.

theme byReactBits