Skip to content

Introduction

CLUB is your private pub.dev. It’s a self-hosted Dart package repository that speaks the same protocol as pub.dev, so dart pub get, dart pub publish, dart pub add, and flutter pub get all work exactly the way your team already uses them — they just point at your server instead of the public one.

Who it’s for

If your team ships shared Dart or Flutter code, CLUB replaces the workarounds you probably have today:

Instead of……you get
Copy-pasting code between projectsVersioned, semver-resolved packages
Git dependencies in pubspec.yamlFast, cached resolves with proper version constraints and search
Publishing to pub.devPackages stay private to your team
Rolling your own registryA drop-in pub.dev experience that your tooling already understands

Features

  • Works with dart pub unchanged — no custom CLI, no patches, no plugins. Your team uses the tools they already know.
  • Private by default — every request is authenticated. Nothing is public unless you make it public.
  • Publishers — group packages under a team or organization with member roles, like pub.dev’s verified publishers.
  • Familiar web UI — browse packages, read READMEs and changelogs, see version history, manage users and tokens.
  • CI-friendly tokens — scoped personal access tokens (read, write, admin) you can drop into GitHub Actions, GitLab CI, and friends.
  • Package scoring — optional pana-based pub points, just like pub.dev.
  • Search — full-text search across package names, descriptions, and READMEs.
  • Runs anywhere — one Docker container, no external database or queue required to get started.

CLUB vs pub.dev

pub.devCLUB
HostingGoogle-managedSelf-hosted
VisibilityPublicPrivate (auth required)
CostFreeFree (your infrastructure)
User accountsGoogle accountEmail/password, invited by an admin (or optional self-signup)
Package scoringpana analysispana analysis (optional — admin toggle)
SearchFull-textFull-text
API compatibilityPub Spec v2Pub Spec v2
CI/CD tokensGoogle Cloud authScoped personal access tokens
Custom domain

Users and roles

CLUB has four user roles, highest first:

RoleWhat it can do
ownerEverything, including promoting/demoting admins. One per server, created during first-time setup.
adminManage users, publishers, and packages across the server.
memberPublish packages they own and manage their own tokens. This is the default role for invited users and self-signups. (Previously called editor — old clients may still see that name.)
viewerRead-only.

The first account is created through a one-time web setup wizard on first boot. After that, owners and admins invite new users (or enable self-signup). See Managing users for the details.

Next steps