ATProto forum built with ESAV
1# ForumTest - ATProto forum built with ESAV 2its an atproto forum built with [ESAV](https://tangled.sh/@whey.party/esav), an elasticsearch-based configurable generic appview. 3 4this project explores how far you can push ESAV as a backend with a example product (this forum atproto forum test thing). everything goes through ESAV, except for identity resolution, i have a deno deploy app that i use and share across multiple projects (is used in red dwarf too) 5 6i havent enabled a CDN yet so currently all images load using getBlob 7 8Live at: [https://forumtest.whey.party](https://forumtest.whey.party) 9Discuss at: [https://forumtest.whey.party/f/@forumtest.whey.party](https://forumtest.whey.party/f/@forumtest.whey.party) 10 11## ESAV config 12custom record types: 13```json 14"record_types": [ 15 "party.whey.ft.topic.post", 16 "party.whey.ft.topic.reaction", 17 "party.whey.ft.topic.moderation", 18 "party.whey.ft.forum.definition", 19 "party.whey.ft.forum.layout", 20 "party.whey.ft.forum.request", 21 "party.whey.ft.forum.accept", 22 "party.whey.ft.forum.category" 23 ], 24``` 25 26custom indexes: 27```json 28"index_fields": { 29 "party.whey.ft.topic.reaction": { 30 "subject": { 31 "id": "reactionSubject", 32 "type": "keyword" 33 }, 34 "reactionEmoji": { 35 "id": "reactionEmoji", 36 "type": "keyword" 37 } 38 }, 39 "party.whey.ft.topic.post": { 40 "text": { 41 "id": "text", 42 "type": "text" 43 }, 44 "title": { 45 "id": "title", 46 "type": "text" 47 }, 48 "reply.root.uri": { 49 "id": "root", 50 "type": "keyword" 51 }, 52 "reply.parent.uri": { 53 "id": "parent", 54 "type": "keyword" 55 }, 56 "forum": { 57 "id": "forum", 58 "type": "keyword" 59 } 60 }, 61 "party.whey.ft.forum.definition": { 62 "description": { 63 "id": "description", 64 "type": "text" 65 }, 66 "displayName": { 67 "id": "displayName", 68 "type": "text" 69 } 70 } 71} 72 73```