Howdy! I’m building a survey/poll app for ATProto and non-ATProto users. Since I’m creating a new lexicon, figured I’d see if it would fit here instead of in my own namespace. Feedback requested.
Context
I run an event and group organizing platform that already federates on the community lexicons for events and RSVPs. Now I need surveys so groups can set goals and events can do planning polls (“what time works?”, “what topics should we discuss?”).
I put something together over the past week - it’s working for my needs, but there’s plenty of room for fresh eyes. Links on request.
I’ve got no professional experience with surveying/polling, so I encourage anyone with domain experience to share input here.
Prior art
Bluesky polls: poll.blue and blueskypolls.xyz store data centrally rather than on PDS.
ActivityPub/Mastodon: Uses Question type with oneOf/anyOf for options. Single-question only.
SurveyJS: Open source JSON schema with 24+ question types. Comprehensive but complex; freemium business model.
Commercial: Google Forms, SurveyMonkey, Typeform (general surveys); Doodle, Rallly (scheduling polls).
Current approach
I have three lexicons in my own namespace (net.openmeet.survey):
net.openmeet.survey- Survey definition (multi-question, supports single/multi choice and free text)net.openmeet.survey.response- User responses (stored on voter’s PDS via strongRef)net.openmeet.survey.results- Finalized anonymized results, captured at survey end time
Source: https://github.com/OpenMeet-Team/survey/tree/main/lexicon
Questions
- Anyone else working on poll/survey stuff who wants to collaborate on the schema?
- Thoughts on trying to adopt the SurveyJS model instead of rolling a new one
- Any feedback on the lexicons I’m proposing?
Would love to federate on surveys the same way we do with events!