No description
Find a file
2025-07-25 17:22:37 -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 fix: fix vimeo extraction 2025-07-25 17:22:37 -07:00
tests refactor: use sync bcrypt to avoid issues with worker perms 2025-07-24 12:09:24 -07:00
utils refactor: use sync bcrypt to avoid issues with worker perms 2025-07-24 12:09:24 -07:00
.gitignore feature: initial commit 2025-06-24 15:40:30 -07:00
deno.json fix: deno install in the workdir? 2025-07-24 13:26:39 -07:00
deno.lock refactor: use sync bcrypt to avoid issues with worker perms 2025-07-24 12:09:24 -07:00
Dockerfile fix: deno install in the workdir? 2025-07-24 13:26:39 -07:00
README.md feature: embeds for Tidal 2025-07-24 18:34:44 -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
  • chat rooms
    • chat messages
    • 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}))(?:\:(?<port>[0-9]{1,6}))?)\b(?<path>[-a-zA-Z0-9@:%_{}\[\]<>\(\)\+.~&\/="]*)(?:\?(?<query>[a-zA-Z0-9!$%&<>()*+,-\.\/\:\;\=\?\@_~"]+))?(?:#(?<hash>[a-zA-Z0-9!$&'()*+,-\.\/\:\;\=\?\@_~"]*?))?
      • :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?)
      • 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
        • start/stop gif control
        • hide control
      • inline image support
        • hide control
      • custom emoji support
        • upload custom gif emoji
    • try to select immediate sibling messages from the same user and hide mulitple avatars
  • user profile page
    • logout button
    • profile editing
    • avatar uploads
  • 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
  • media uploads

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.