···2import * as z from "npm:zod";
34// configure these from the config.jsonc file (you can use config.jsonc.example as reference)
5-const indexTarget = z.string().refine(
6 (val) => {
7 const parts = val.split("#");
8 if (parts.length !== 2) return false;
···2import * as z from "npm:zod";
34// configure these from the config.jsonc file (you can use config.jsonc.example as reference)
5+export const indexTarget = z.string().refine(
6 (val) => {
7 const parts = val.split("#");
8 if (parts.length !== 2) return false;
···41 "did:plc:zzhzjga3ab5fcs2vnsv2ist3",
42 "did:plc:jz4ibztn56hygfld6j6zjszg",
43 ], // this would be all users in the instance to listen for all remote mentions
044 // future question for managing this specifically for like remote content tracking (followed users? items that appears in custom feeds?)
45 });
46}
···41 "did:plc:zzhzjga3ab5fcs2vnsv2ist3",
42 "did:plc:jz4ibztn56hygfld6j6zjszg",
43 ], // this would be all users in the instance to listen for all remote mentions
44+ instant: ["true"]
45 // future question for managing this specifically for like remote content tracking (followed users? items that appears in custom feeds?)
46 });
47}
···4this project uses:
5- live sync systems: [jetstream](https://github.com/bluesky-social/jetstream) and [spacedust](https://spacedust.microcosm.blue/)
6- backfill: [listRecords](https://docs.bsky.app/docs/api/com-atproto-repo-list-records) and [constellation](https://constellation.microcosm.blue/)
7-- the server stuff: [sqlite](https://jsr.io/@db/sqlite) db, typescript with [codegen](https://www.npmjs.com/package/@atproto/lex-cli), and [deno](https://deno.com/)
089## Status
10-(as of 26 aug 2025)
11currently the state of the project is:
12### Index Server
13- Database:
···15- Registration:
16 - not there yet. currently manually adding users
17 - onboarding backfill is probably next maybe
018- Indexing:
19 - Jetstream:
20 - its there, i just need to actually handle each and every record type and insert it to the db (like currently 2 out of 12 or so record collections are being inserted into the db)
···34 - considering making all of the api routes custom instead of the current situation of having some of the Index server routes be the original unmodified bsky.app routes
3536### View Server
37-- pratically unimplemented
38-- currently mostly just proxies api.bsky.app
39-- i havent split the DB between the Index server and View server yet
40-- hydration (resolving `Ref`s, handling partials) will be implemented soon i think
41-- it should (but not yet) have a ranking system to decide which index server to be prioritized if multiple index servers indexes the same user account. (and also should support both api sets (Bluesky AppView API (legacy/fallback) and Bluesky Index Server API ))
00000004243## Running
44this project is pre-alpha and not intended for general use yet. you are welcome to experiment if you dont mind errors or breaking changes.
···4this project uses:
5- live sync systems: [jetstream](https://github.com/bluesky-social/jetstream) and [spacedust](https://spacedust.microcosm.blue/)
6- backfill: [listRecords](https://docs.bsky.app/docs/api/com-atproto-repo-list-records) and [constellation](https://constellation.microcosm.blue/)
7+- the backend server stuff: [sqlite](https://jsr.io/@db/sqlite) db, typescript with [codegen](https://www.npmjs.com/package/@atproto/lex-cli), and [deno](https://deno.com/)
8+- frontend: still deno and esbuild and tailwind and react and jsx and typescript (was fun getting these to run on deno)
910## Status
11+(as of 27 aug 2025)
12currently the state of the project is:
13### Index Server
14- Database:
···16- Registration:
17 - not there yet. currently manually adding users
18 - onboarding backfill is probably next maybe
19+ - got a fancy new ui (not finished)
20- Indexing:
21 - Jetstream:
22 - its there, i just need to actually handle each and every record type and insert it to the db (like currently 2 out of 12 or so record collections are being inserted into the db)
···36 - considering making all of the api routes custom instead of the current situation of having some of the Index server routes be the original unmodified bsky.app routes
3738### View Server
39+- Registration:
40+ - got a fancy new ui (not finished)
41+ - no backfill yet
42+- Bsky API Routes:
43+ - currently mostly just proxies api.bsky.app
44+ - Notifications works ! thanks to spacedust
45+ - Following feed is probably next
46+- Database:
47+ - i havent split the DB between the Index server and View server yet
48+- Hydration (resolving `Ref`s, handling partials):
49+ - It works! not implemented for all routes yet but it can find a route i think maybe idk
50+ - it does now have a ranking system to decide which index server to be prioritized if multiple index servers indexes the same user account. (and also supports both api sets (Bluesky AppView API (legacy/fallback) and Bluesky Index Server API ))
5152## Running
53this project is pre-alpha and not intended for general use yet. you are welcome to experiment if you dont mind errors or breaking changes.