No description
Find a file
Andy Burke b6b4fefa34 feature: improve audio vis a little more
fix: remove some debugging console stuff
2025-08-21 23:24:34 -07:00
.zed feature: events polling 2025-07-02 21:28:07 -07:00
models refactor: use sync bcrypt to avoid issues with worker perms 2025-07-24 12:09:24 -07:00
public feature: improve audio vis a little more 2025-08-21 23:24:34 -07:00
tests feature: improve audio vis a little more 2025-08-21 23:24:34 -07:00
utils feature: file uploads and audio embedding 2025-08-20 11:48:16 -07:00
.gitignore feature: file uploading 2025-08-11 18:02:29 -07:00
deno.json feature: file uploads and audio embedding 2025-08-20 11:48:16 -07:00
deno.lock feature: avatar uploads 2025-08-12 16:00:36 -07:00
Dockerfile fix: deno install in the workdir? 2025-07-24 13:26:39 -07:00
README.md feature: improved audio player UX 2025-08-21 21:30:53 -07:00

autonomous.contact

Bringing the BBS back.

TODO

These are in no particular order. Pull requests updating this section welcome for feature discussions.

  • should everything be an event in a room?
  • get a first-pass podman/docker setup up
  • sign up
  • check for logged in user session
  • log in
  • refactor login/sessions/totp
  • media uploads
    • local upload support (keep it simple for small instances)
    • S3 support (then self-host with your friends: https://garagehq.deuxfleurs.fr/)
      • test mounting an s3 volume under /files and having no s3 support in the codebase
  • user profile page
    • logout button
    • profile editing
    • avatar uploads
  • chat rooms
    • chat messages
    • chat message actions
      • '...' button to show actions
      • delete message
      • reply to message
      • copy message link
    • @-prefixing of users for notifications/highlighting
      • chat input box should auto-complete users for you
      • messages to you should be highlighted somehow
    • chat message reactions
    • sidebar on mobile needs to show/hide via a button
    • clean up after initial implementation
      • split the monolithic talk.html up
    • chat message processing
      • auto-link urls
        • use this regex: (?:(?<protocol>[a-zA-Z]+):)?(?:\/\/)?(?:(?<auth>(?<username>\S.+)\:(?<password>.+))\@)?(?<host>(?:(?<hostname>[-a-zA-Z0-9\.]+)\.)?(?<domain>(?:[-a-zA-Z0-9]+?\.(?<tld>[-a-zA-Z0-9]{2,64}))|localhost)(?:\:(?<port>[0-9]{1,6}))?)\b(?<path>[-a-zA-Z0-9@:%_{}\[\]<>\(\)\+.~&\/="]*?(?<extension>\.[^\.?/#"\n<>]+)?)(?:\?(?<query>[a-zA-Z0-9!$%&<>()*+,-\.\/\:\;\=\?\@_~"]+))?(?:#(?<hash>[a-zA-Z0-9!$&'()*+,-\.\/\:\;\=\?\@_~"]*?))?(?:$|\s)
      • :emoji: replacements
      • preview cards for links
      • embedded video for
        • youtube
        • vimeo
        • tiktok
      • embedded audio or audio cards for:
        • tidal
        • spotify
        • youtube (any way to differentiate for yt music?)
        • direct uploads
          • make the direct upload audio player look decent for a first pass
          • make the display cooler - clicking the spectrum should toggle to different display modes
      • add action buttons to embeds
        • copy original link (hopefully just a button with some onclick we can slap next to the iframe and style?)
        • toggle embed (toggle between showing the embed and the original link)
      • punycode urls before url extraction? (see: https://stackoverflow.com/a/26618995)
      • gif support
        • gif embeds
        • mp4 embeds
        • start/stop gif control
        • hide control
      • inline image support
        • inline images
        • hide control
      • custom emoji support
        • upload custom gif emoji
    • try to select immediate sibling messages from the same user and hide mulitple avatars
  • Notifications
    • if web notifications are not enabled, show a button to turn them on
    • if web notifications are enabled, emit on events
    • ability to mute
      • users
      • rooms
      • tags (#tags?)
  • admin panel
    • add invite code generation
      • AC_REQUIRE_INVITE_CODE: boolean env var/setting
    • AC_DIRECTORY_SERVERS: |-separated list of directory servers to report to these central servers could be distributed directories - your town might run one, your state, your country, or you could publish to a public one that is organized around interests
  • combined "bulletin board" instead of exchange/work?
    • post-it style notes with tag and keyword filtering?
  • simple wiki for resources
  • simple calendar with public/private event tracking
    • caldav support
  • smart forms
    • use the api for forms so requests will be authenticated
    • support multiple methods
    • add on_parsed to allow injecting additional data
    • refine on_response/on_reply

Getting Started Developing

  1. Install Deno

    Run their shell script (note: as yourself, not root)

    curl -fsSL https://deno.land/install.sh | sh
    

    Or using Nix:

    nix-shell -p deno
    
  2. Clone the repo:

    git clone https://andyburke.dev/andyburke/autonomous.contact.git

  3. Start the server:

    deno run task serve

  4. Navigate to http://localhost:8000

  5. Edit some code and check it out.