Introduction
HappyView is an open-source AppView for atproto. You describe your app’s data and API with lexicons, and HappyView indexes the matching records from the network and serves your API from them.
You write the parts only your app knows: which records matter, what each query returns, what a procedure does. HappyView runs the rest: following the network, backfilling history, signing users in, and writing to their accounts on their behalf.
HappyView v3 is in alpha. These docs describe v3; the v2 docs are kept for instances still on v2.
The idea
Section titled “The idea”- A record lexicon is a collection to index. Add one, and HappyView keeps every record of that kind it sees on the network.
- A query or procedure lexicon is an endpoint. Add one, and it answers at
/xrpc/<NSID>. - A script decides what happens. A short program in Lua, JavaScript or TypeScript answers a query or procedure, or runs when a record changes.
- A project holds it all. Lexicons and scripts are files in a directory you run locally and deploy to an instance.
New to atproto’s terms? How HappyView fits atproto explains each one in a sentence.
Where to start
Section titled “Where to start”- Build an app. Start with Getting Started: install
hpy, create a project, and build it up one piece at a time. - Run your own instance. Self-hosting covers Docker, the release binaries and production setup.
- Use HappyProto. HappyProto runs HappyView instances for you; you deploy your project to one.

