A lexicon-driven AppView for ATProto. happyview.dev
backfill firehose jetstream atproto appview oauth lexicon
8
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs: update the repo root README, restore the original README

Trezy a979800f e0b33c0b

+45 -15
+8 -14
README.md
··· 1 1 # HappyView 2 2 3 - HappyView is the best way to build an [AppView](https://atproto.com/guides/glossary#app-view) for the [AT Protocol](https://atproto.com). Upload your [lexicon](reference/glossary.md#atproto-terms) schemas and get a fully functional AppView, complete with [XRPC](reference/glossary.md#atproto-terms) endpoints, OAuth, real-time network sync, and historical [backfill](guides/indexing/backfill.md), without writing a single line of server code. 3 + HappyView is the best way to build an AppView for the AT Protocol. Upload your lexicon schemas and get a fully functional AppView, complete with XRPC endpoints, OAuth, real-time network sync, and historical backfill, without writing a single line of server code. 4 4 5 5 Building an AppView from scratch means wiring up real-time event streams, record storage, XRPC routing, OAuth flows, and PDS write proxying before you can even think about your application. HappyView handles all of that. Define your data model with lexicons, add custom logic with Lua scripts when you need it, and ship your app. 6 6 7 7 ## Features 8 8 9 - - **Schema-driven endpoints:** Upload a [lexicon](guides/indexing/lexicons.md) and HappyView generates XRPC query and procedure routes, storage, and indexing from it — updatable at runtime with no restart. 9 + - **Schema-driven endpoints:** Upload a lexicon and HappyView generates XRPC query and procedure routes, storage, and indexing from it — updatable at runtime with no restart. 10 10 11 - - **Network sync built in:** Real-time record streaming via [Jetstream](https://github.com/bluesky-social/jetstream), historical [backfill](guides/indexing/backfill.md) from each user's PDS, and atproto OAuth with DPoP-bound proxy writes back to the PDS. 11 + - **Network sync built in:** Real-time record streaming via Jetstream, historical backfill from each user's PDS, and atproto OAuth with DPoP-bound proxy writes back to the PDS. 12 12 13 - - **Customize with Lua, hooks, and plugins:** [Lua scripts](guides/scripting.md) for query and procedure logic, [index hooks](guides/indexing/index-hooks.md) that fire on every record change, WASM [plugins](guides/features/plugins.md) for external platform integration, and [labeler](guides/features/labelers.md) subscriptions for content moderation. 13 + - **Customize with Lua, hooks, and plugins:** Lua scripts for query and procedure logic, index hooks that fire on every record change, WASM plugins for external platform integration, and labeler subscriptions for content moderation. 14 14 15 - - **Protocol-native:** Works with any PDS, resolves DIDs through the directory, and fetches [network lexicons](guides/indexing/lexicons.md#network-lexicons) via DNS authority resolution. 15 + - **Protocol-native:** Works with any PDS, resolves DIDs through the directory, and fetches network lexicons via DNS authority resolution. 16 16 17 - - **Full admin surface:** Built-in [dashboard](getting-started/dashboard.md) and [admin API](reference/admin/admin-api.md) for managing lexicons, users, API keys, API clients, backfill jobs, and plugins. 17 + - **Full admin surface:** Built-in dashboard and admin API for managing lexicons, users, API keys, API clients, backfill jobs, and plugins. 18 18 19 19 ## Design Principles 20 20 ··· 26 26 27 27 - **Protocol-native**: HappyView works with _any_ PDS, resolves DIDs through the directory, and follows atproto conventions. It's a first-class citizen of the network, not a wrapper around it. 28 28 29 - ## Next Steps 29 + ## Documentation 30 30 31 - - [Quickstart](getting-started/deployment/railway.md): Deploy HappyView on Railway or run it locally 32 - - [Lexicons](guides/indexing/lexicons.md): Upload lexicon schemas and start indexing records 33 - - [Lua Scripting](guides/scripting.md): Write custom query and procedure logic 34 - - [Index Hooks](guides/indexing/index-hooks.md): React to record changes in real time 35 - - [Labelers](guides/features/labelers.md): Subscribe to external labelers and manage content labels 36 - - [Plugins](guides/features/plugins.md): Integrate with external platforms using WASM plugins 37 - - [Event Logs](guides/admin/event-logs.md): Monitor system activity, debug script errors, and audit admin actions 31 + Full documentation is available at [happyview.dev](https://happyview.dev).
+37 -1
packages/docs/docs/README.md
··· 1 - ../../../README.md 1 + # HappyView 2 + 3 + HappyView is the best way to build an [AppView](https://atproto.com/guides/glossary#app-view) for the [AT Protocol](https://atproto.com). Upload your [lexicon](reference/glossary.md#atproto-terms) schemas and get a fully functional AppView, complete with [XRPC](reference/glossary.md#atproto-terms) endpoints, OAuth, real-time network sync, and historical [backfill](guides/indexing/backfill.md), without writing a single line of server code. 4 + 5 + Building an AppView from scratch means wiring up real-time event streams, record storage, XRPC routing, OAuth flows, and PDS write proxying before you can even think about your application. HappyView handles all of that. Define your data model with lexicons, add custom logic with Lua scripts when you need it, and ship your app. 6 + 7 + ## Features 8 + 9 + - **Schema-driven endpoints:** Upload a [lexicon](guides/indexing/lexicons.md) and HappyView generates XRPC query and procedure routes, storage, and indexing from it — updatable at runtime with no restart. 10 + 11 + - **Network sync built in:** Real-time record streaming via [Jetstream](https://github.com/bluesky-social/jetstream), historical [backfill](guides/indexing/backfill.md) from each user's PDS, and atproto OAuth with DPoP-bound proxy writes back to the PDS. 12 + 13 + - **Customize with Lua, hooks, and plugins:** [Lua scripts](guides/scripting.md) for query and procedure logic, [index hooks](guides/indexing/index-hooks.md) that fire on every record change, WASM [plugins](guides/features/plugins.md) for external platform integration, and [labeler](guides/features/labelers.md) subscriptions for content moderation. 14 + 15 + - **Protocol-native:** Works with any PDS, resolves DIDs through the directory, and fetches [network lexicons](guides/indexing/lexicons.md#network-lexicons) via DNS authority resolution. 16 + 17 + - **Full admin surface:** Built-in [dashboard](getting-started/dashboard.md) and [admin API](reference/admin/admin-api.md) for managing lexicons, users, API keys, API clients, backfill jobs, and plugins. 18 + 19 + ## Design Principles 20 + 21 + - **Schema-first**: Your Lexicons are the source of truth. Upload a schema and HappyView derives endpoints, indexing rules, and network sync from it. You describe _what_ your data looks like; HappyView figures out the rest. 22 + 23 + - **Zero boilerplate**: HappyView handles AppView infrastructure (Jetstream, backfill, OAuth, PDS proxying) for you. You should be writing application logic from minute one, not plumbing. 24 + 25 + - **Runtime-configurable**: Lexicons can be added, updated, and removed without restarting the server. New endpoints and sync rules take effect immediately, so you can iterate on your data model in real time. 26 + 27 + - **Protocol-native**: HappyView works with _any_ PDS, resolves DIDs through the directory, and follows atproto conventions. It's a first-class citizen of the network, not a wrapper around it. 28 + 29 + ## Next Steps 30 + 31 + - [Quickstart](getting-started/deployment/railway.md): Deploy HappyView on Railway or run it locally 32 + - [Lexicons](guides/indexing/lexicons.md): Upload lexicon schemas and start indexing records 33 + - [Lua Scripting](guides/scripting.md): Write custom query and procedure logic 34 + - [Index Hooks](guides/indexing/index-hooks.md): React to record changes in real time 35 + - [Labelers](guides/features/labelers.md): Subscribe to external labelers and manage content labels 36 + - [Plugins](guides/features/plugins.md): Integrate with external platforms using WASM plugins 37 + - [Event Logs](guides/admin/event-logs.md): Monitor system activity, debug script errors, and audit admin actions