47 lines
No EOL
3.6 KiB
Markdown
47 lines
No EOL
3.6 KiB
Markdown
# OPEN-QUESTIONS.md — eutopic
|
|
|
|
decision log. open = not yet decided. closed = locked, with resolution noted.
|
|
|
|
---
|
|
|
|
## open
|
|
|
|
priority 0:
|
|
- exact reaction palette (design collab pending)
|
|
- branding + visual identity (design collab pending)
|
|
- RSVP interaction model (deferred, not designed yet)
|
|
- email notification format/timing for RSVPs (deferred)
|
|
- PWA — day one alongside native, or v1.5?
|
|
- DMs — websockets/simple in-app vs matrix vs no DMs ever. decide before v2 launch.
|
|
- social handle platform list expansion (signal + telegram primaries. custom covers edge cases. expand tbd.)
|
|
- server/media migration path — which host migration is least painful for media storage (filesystem → s3-compatible). greenhost/hetzner candidates.
|
|
|
|
- which njalla plan tier?
|
|
- comment hearts/likes — do comments get a heart reaction? tension with "no hierarchy" value. deferred.
|
|
- event tags — max count per event. starting point: 2 (survey community on this).
|
|
|
|
---
|
|
|
|
## closed
|
|
|
|
- ~~no push notifications ever~~ → v1: none. v2: DM notifications only if DMs land. never for feed activity.
|
|
- ~~federation UI~~ → locked off. activitypub via fedify active in stack, flag OFF. UI stays invisible always.
|
|
- ~~reaction model~~ → poster defines up to 5 emoji as their reaction set. open emoji picker always available as fallback. reactions stored as user + post + emoji + timestamp (not counters).
|
|
- ~~bulletin board as separate entity~~ → `is_event` flag on regular posts. event fields: `event_date`, `event_location`, `event_ends_at`. auto-archives 1 day after `event_ends_at`.
|
|
- ~~event reactions visibility~~ → visible to post author only. no public counts on bulletin board. no class hierarchy.
|
|
- ~~who can post to bulletin board~~ → anyone. filters/subpages handle noise.
|
|
- ~~save/bookmark~~ → optional, toggled by poster at compose time. default off for personal posts.
|
|
- ~~story interaction model~~ → no replies. "witnessed" metadata: private, per-viewer row in story_witness table, expires with story (24h). story author can view flat witness list (like ig). no public count.
|
|
- ~~comments~~ → flat, chronological, on posts only. not on stories.
|
|
- ~~DMs in v1~~ → not shipping. replaced by `display_social_handle` user flag. may become vestigial if DMs land in v2.
|
|
- ~~social handle as boolean~~ → `display_social_handle: none | mutuals | all`. single field, three states.
|
|
- ~~social handle structure~~ → array of `{ platform, handle, label?, active }`. one entry per platform. `label` only used for custom platform. `active` hides without deleting. plus free text `contact_prefs` ("bad texter", "weekends only" etc).
|
|
- ~~third-party auth / handle linking~~ → rejected. store strings, display them, done.
|
|
- ~~social handle onboarding~~ → opt-in during onboarding. if skipped: "re-enable at any time in settings."
|
|
- ~~bulletin board layout~~ → 2-column grid (`FlatList numColumns={2}`), infinite scroll, paginated fetch.
|
|
- ~~survey creator~~ → admin only (you). `is_admin` flag on user record, used only for this.
|
|
- ~~survey format~~ → multiple choice only. separate `/feedback` subpage always has free text field.
|
|
- ~~survey visibility~~ → dev use only. no results shown to users, no public engagement metrics.
|
|
- ~~survey feature~~ → v1, non-negotiable. community sees product is actively iterated on their feedback.
|
|
- ~~survey delivery~~ → slot 1 in feed as injected card (not a real post). GIF cover image. tapping routes to `/feedback` where active survey renders above permanent free text field. card drops from slot 1 per-user once they've responded (checks `survey_response` on feed load). no modal.
|
|
- ~~survey expiry~~ → ephemeral, 36h. |