Frequently asked questions
A quick tour of CannaDB — what it is, how the data works, and the atproto basics that make the site tick.
About CannaDB
What is CannaDB?
CannaDB is a community-driven cannabis strain and seed database built on the AT Protocol — the same open network that powers Bluesky. It catalogs strains and the breeders who make them, with lineage, descriptions, ratings, and reviews contributed by the people using it.
What can I do here?
Browse strains and breeders, follow lineage from parents to crosses, search across the catalog, and — once you sign in — publish your own strain and breeder records, leave reviews, and like the entries you find useful.
Is it free?
Yes. CannaDB is free to use and the code is open source under the Apache 2.0 license. The lexicons (the data schemas) are released under CC0.
AT Protocol basics
What is the AT Protocol?
The AT Protocol (or "atproto") is an open network for publishing structured data under your own identity. Instead of every site keeping its users in a private database, atproto users have a portable account that any compatible app can read from and write to. atproto.com has a thorough overview.
What is a PDS?
A Personal Data Server (PDS) is where your records actually live. Bluesky runs a large PDS that most people use, but you can run your own or use any third-party host. When you publish a strain on CannaDB, the record is written to your PDS — not to a CannaDB-owned database.
What is a DID?
A Decentralized Identifier (DID) is your permanent, machine-readable identity on atproto. It looks like did:plc:abc123… and never changes, even if you switch handles or move PDS hosts. Every record you publish is signed under your DID.
What is a handle?
A handle is the human-readable name for your DID — for example alice.bsky.social or cannadb.org. Handles are looked up through DNS or HTTPS and point at your DID, so you can change handles without losing your history.
What is a lexicon?
A lexicon is a public schema that describes a record type. CannaDB defines two: org.cannadb.strain and org.cannadb.breeder. The schemas are published as JSON so any app can read or validate them:
How does CannaDB get the data, then?
CannaDB subscribes to the atproto firehose (Jetstream) and indexes any record that matches one of its lexicons. The site you're reading is an AppView — an indexer plus a presentation layer. The records themselves stay in their authors' repositories.
Accounts & signing in
Do I need to make a CannaDB account?
No. CannaDB doesn't have its own user database. If you have any atproto handle — Bluesky, a self-hosted PDS, or anywhere atproto reaches — you can sign in with it.
How does sign-in work?
CannaDB uses OAuth against your auth server. You enter your handle, get redirected to your provider, approve the connection, and bounce back. CannaDB never sees your password.
Where do I sign in?
The Sign in link in the top navigation. Any atproto-compatible handle works.
Publishing strains & breeders
How do I add a strain?
Sign in, then visit /strain/new (or use the New strain link from your profile). Fill in the form and publish. The record is written to your PDS; CannaDB indexes it within a second or two and the new strain page appears.
What's the difference between a strain and a cut?
A strain is a broad named line — like "Blue Dream." A cut (or phenotype) is a specific selection from inside that line that someone has stabilized or propagated clonally. CannaDB models both with the same lexicon; the kind field distinguishes them.
What is a breeder record?
A breeder record represents the seed company, breeder, or person who released the strain. Strain records reference a breeder by URI so the relationship survives renames and edits. You can add a breeder at /breeder/new.
Can I edit a record after I publish it?
Yes — only your own records. The edit form rewrites the same record in your PDS, and CannaDB picks up the new version. Previous versions are kept on the strain's versions tab.
What about lineage?
If you know a strain's parents, you can link them when you publish. CannaDB renders a graph of the cross relationships on each strain's lineage tab.
Can I delete a record?
Yes. Deleting a record removes it from your PDS; CannaDB unindexes it shortly after. Strains that were attributed to a deleted breeder still render the breeder's stored name as a fallback.
Likes, reviews & trust
What does liking a strain do?
Likes are public, reversible signals. They feed the trending rail on the home page and surface widely-loved entries. Like records also live in your PDS.
How do reviews work?
Signed-in users can leave one review per strain, with an overall rating, optional axis ratings (effect, taste, etc.), free-form notes, and photos. Reviews are records too — yours, in your repo, edited or deleted whenever you want.
What does the "seeded" pill mean?
A small seeded badge marks records published by a CannaDB editorial account. Editorial seeding is a way to bootstrap the catalog with reference data; it carries no special authority over community-published records.
What about trust signals?
CannaDB classifies each publishing DID into a trust band so you can tell editorial entries from community entries at a glance. The classification is informational — every record renders, regardless of band.
Moderation
How do I report something?
Every review has a flag link. Anonymous flagging works too — you don't need to be signed in to file a report. Flags go into a moderator queue and are triaged by editors.
Who moderates?
A small editor role, scoped to specific atproto DIDs configured by the operator. Editors can hide flagged content, dismiss bogus flags, and merge duplicate breeder records via canonicalization. Editors can't edit other people's records — only their visibility on the AppView.
If a record is hidden, is it deleted?
No. Hiding is local to the AppView; the underlying record still lives in the author's PDS. Other AppViews are free to render it.
Data, portability & privacy
Where does my data live?
In your atproto repository, on whatever PDS holds your account. CannaDB only keeps an index — derived data optimized for search and display.
What if CannaDB shuts down?
Your records stay where they are. Anyone could spin up a new AppView, point it at the same lexicons, and re-index the network — that's the whole point of building on atproto.
Can other apps read my CannaDB records?
Yes. Records on atproto are public by default. Any AppView, validator, or third-party client can fetch org.cannadb.* records by subscribing to the firehose or reading directly from the PDS.
Bugs, feedback & contact
I found a bug or have a feature request.
Open an issue on the public tracker: tangled.org/cannadb.org/cannadb/issues. Bug reports, feature ideas, lexicon questions, moderation feedback — all welcome there.
How do I contact the team?
Filing an issue is the fastest path; the same tracker doubles as the contact channel. CannaDB is built and maintained by dwot.io.