Locations have at least a date, time, description, location, and tags.
A tagging mechanism which allows restricting tags to specific individuals.
Ability to import events from other calendars (okay if it requires custom code).
Ability to embed calendar in other websites.
Must be able to filter the embedded view to specific tags or locations.
Visually cohesive with the OrcasHub ecosystem (okay if it requires some CSS work).
Excellent mobile experience.
Nice to haves
Somewhere that events can be discussed or people can express planning to attend.
Existing options
OrcasHub native
Pros
High level of familiarity with code. Comfortable adding new features.
Highly integrated into OrcasHub already. Unified user and permission model.
Nice visual experience of viewing events by week.
Supports consuming events externally via RSS.
Excellent mobile experience.
Already has years of familiarity within the community.
Cons
Single developer currently. Though the code base is pretty simple.
Changes will be limited to Tony's availability until we find someone else to help.
This also means changes will also take time from other aspects of OrcasHub
Missing features
Tags on events (small)
Limit tags to specific individuals (small)
Filtering of events by tag or location (medium)
Embedding externally (medium, depending on desired layout)
Discussion (likely by integrating with Discourse) (medium)
ActivityPub (??)
Gancio
Pros
Third-party developing gets us a starting point for free.
Has extremely basic event recurrence already.
Has basic support for embedding (though it's unclear if the embedded layout is desirable).
Has nice search functionality.
Cons
Changes that the upstream project doesn't agree with will have to be maintained as a fork.
Changes that the upstream doesn't want to prioritize will be limited to our ability to learn Vue, Nuxt, and the other tools used. (Tony doesn't have experience with these tools).
Separate authentication/users. Does not support being an Oauth client (this seems to be prioritized work -JV)
Main page user experience is visually overwhelming and may need to be replacing.
Missing features
Limit tags to specific individuals (unknown, but involves logic and db changes)
Undesirable main page UI may need to be replaced (very large)
Discussion (likely by integrating with Discourse) (medium)
Mobilizon
Pros
Cons
Ugly af.
Probably buggy af.
Major usability/bugginess in limited testing.
Missing features
Other Considerations
What could John spin up to modify more easily?
What could another engineer spin up to modify more easily?
How amenable is Gancio team from making modifications?
How easy are PRs to get incorporated into the main project?
Could a strategy be to integrate Gancio, but minimize dev (Tony) changes until we have a set up (announcements, photos, etc) in place with other elements?