Coffee journaling on ATProto (alpha) alpha.arabica.social
coffee

Description#

This file includes the backlog of features and fixes that need to be done. Each should be addressed one at a time, and the item should be removed after implementation has been finished and verified.


Features#

  1. LARGE: complete record styling refactor that changes from table-style to more mobile-friendly style

    • Likely a more "post-style" version that is closer to bsky posts
    • To be done later down the line
    • setting to use legacy table view
  2. Settings menu (mostly tbd)

    • Private mode -- don't show in community feed (records are still public via pds api though)
    • Dev mode -- show did, copy did in profiles (remove "logged in as " from home page)
    • Toggle for table view vs future post-style view
  • Maybe add loading bars to page loads? (above the header perhaps?)
    • A separate nicer pretty loading bar would also be nice on the brews page?

Far Future Considerations#

  • Maybe swap from boltdb to sqlite

    • Use the non-cgo library?
    • Is there a compelling reason to do this?
    • Might be good as a sort of witness-cache type thing (record refs to avoid hitting PDS's as often?)
    • Probably not worth unless we keep a copy of all (or all recent) network data
  • The profile, manage, and brews list pages all function in a similar fashion, should one or more of them be consolidated?

    • Manage + brews list together probably makes sense
  • IMPORTANT: If this platform gains any traction, we will need some form of content moderation

    • Due to the nature of arabica, this will only really need to be text based (text and hyperlinks)
    • Malicious link scanning may be reasonable, not sure about deeper text analysis
    • Need to do more research into security
    • Need admin tooling at the app level that will allow deleting records (may not be possible), removing from appview, blacklisting users (and maybe IPs?), possibly more
    • Having accounts with admin rights may be an approach to this (configured with flags at startup time?) @arabica.social, @pdewey.com, maybe others? (need trusted users in other time zones probably)
    • Add on some piece to the TOS that mentions I reserve the right to de-list content from the platform
    • Continue limiting firehose posts to users who have been previously authenticated (keep a permanent record of "trusted" users)
      • By logging in users agree to TOS -- can create records to be displayed on the appview ("signal" records) Attestation signature from appview (or pds -- use key from pds) was source of record being created
    • This is a pretty important consideration going forward, lots to consider

Fixes#

  • Loading on htmx could probably be snappier by using a loading bar, and waiting until everything is loaded

    • Alternative could be using transitionary animations between skeleton and full loads
    • Do we even need skeleton loading with SSR? (I think yes here because of PDS data fetches -- maybe not if we kept a copy of the data)
  • Headers in skeletons need to exactly match headers in final table

    • Refreshing profile should show either full skeleton with headers, or use the correct headers for the current tab (It currently shows the brew header for all tabs)
  • Add styling to mail link and back to home button on terms page

  • Take revision pass on text in about and terms

  • Need to cache profile pictures to a database to avoid reloading them frequently

    • This may already be done to some extent
  • Tables flash a bit on load, could more smoothly load in? (maybe delay page until the skeleton is rendered at least?)

    • I think the profile page does this relatively well, with the profile banner and stats

Refactor#

  • Need to think about if it is worth having manage, profile, and brew list as separate pages.

    • Manage and profile could probably be merged? (or brew list and manage)
  • Profile tables should all either have edit/delete buttons or none should

  • Also, add buttons below each table for that record type would probably be nice

  • Maybe having a way of nesting modals, so a roaster can be created from within the bean modal?

    • Maybe have a transition that moves the bean modal to the left, and opens a roaster modal to the right

Notes#

  • Popup menu for feed card extras should be centered on the button

    • Maybe use a different background color (maybe the button color?)
  • Add a copy AT URI to extras popup

  • Firehose maybe not backfilling likes

  • TODO: add OpenGraph embeds (mainly for brews; beans and roasters can come later)

  • Fix opengraph to show handle, record type and date?

    • Then show brewer and bean?
    • Add an image of some kind as well