https://spencers.cafe/projects/logs/basket-log

Context

possible features / use cases

  • auto-archive from remote sources
    • auto-mirror ios photos album (makes it accessible via API and owned by you)
    • auto-mirror twitter bookmarks, instagram bookmarks
    • sync are.na channels

what is the clear use case to start with?

  • own my data for things that i collect on other platforms
  • connect my gathered knowledge and references across platform
  • create practices for regular gathering and interacting with regularly gathered material
  • have a shared place to know what my friends are paying attention to and thinking about, surface collaborations and connections from the things they are doing already
    • an at-proto client for doing the above (an at-proto pinterest but more indie / creative / textured)
  • a local-first are.na client that just works
  • forage for myself and others, exchange the goods i find via barter, barter data economy
  • idea gifts for others, nerd-sniping my friends
  • preserving my a snapshot of my taste at any given time, preserving the things that i care about

open questions

  • how do you reconcile having multiple apps for input?
  • an are.na to at proto web bridge?
  • what is the final UI? can it be simplified into a single screen? should there be a stable view for collections rather than just the select modal?

testflight notes

change log:

  • 01-04: happy new year! lots of fixes and updates in this round:
    • share extension works now (this wasn’t supposed to be included but thanks A for pointing this out)
    • performance improvements across the board (still trying to make this snappier, especially the collection switch, if you can send me a video of how it performs for you this would help)
    • adding connections while your device is offline will now sync to arena when you come back online (offline deletions do not sync currently)
  • 12-24: happy holidays / merry christmas! i added the ability to link a local collection to are.na
  • 12-22: oops i broke links due to an external dependency. I’ve fixed it!

send any feedback you have via testflight or just text Spencer!


Gather is ready for your digital ephemera

  • text yourself images, snippets, links
  • organize them into collections in a dedicated view
  • import your are.na channels and add content to them from your phone
function callout(text, type) {
    const allText = `> [!${type}]\n` + text;
    const lines = allText.split('\n');
    return lines.join('\n> ') + '\n'
}

const query = `
not done
(path includes ${dv.current().file.path})
group by tags reverse
`;

dv.paragraph(callout('```tasks\n' + query + '\n```', 'todo'));

old

features

  • allow adding collection to start syncing to are.na ✅ 2023-12-27
  • take caption from image as description of block#feature
  • allow editing description / other metadata of blocks#feature
  • allow editing collections#feature
  • allow syncing photo album as a remote source#feature
  • allow zoom on images#feature
  • add pinch to zoom from text screen, otherwise need to click to zoom from detail view#feature
  • allow choosing filters from uncategorized view as well as a big collage navigation view where you can multi-select#feature
  • ^b77d8a
  • add intro screen ✅ 2023-12-13
    • create your own ID — this is how you get your data later
    • create collections
    • add things to collections
    • login to arena prompt and multi-select channels to import
    • organize things from the main screen
  • actually support share extension#feature
  • add the widget#feature
  • move search tab into an icon on top left, integrate into the chat view#feature

bugs

  • holditem shouldn’t appear for certain views (uncategorized) ✅ 2023-11-01
  • old images not showing up on phone (is it because of version upgrade?) ✅ 2023-11-01
  • link doesn’t seem to work on certain urls (neal.fun) ✅ 2023-10-22
  • still unresponsive for texting, needs to be instant ✅ 2023-10-26
    • keep keyboard all the time
    • make sure keyboard properly avoids bottom items
  • convert scrollview to flatlist for long data ✅ 2023-11-08
  • fix clearing the search when clicking connect in uncategorized ✅ 2023-11-15
  • welp now it wont build at all KILL ME, something broken with the underlying expo infrastructure it semes ✅ 2023-12-10
  • for some reason the portal for the nested select isnt working in prod even though it works on expo go in development ✅ 2023-12-11
    • just made this render inline hackily using percentages
  • arena logo needs to handle dark mode ✅ 2023-12-15
  • change specific collection chats to navigation so you can navigate back to ones you were on before / also so it will save the position when you leave the app ✅ 2023-12-27 ^e3d6d2
  • edit text blocks / handle isEditable ✅ 2023-12-14
  • swipe to connect not as useful with uncategorized view.. maybe change to edit? ✅ 2023-12-10
  • sync arena channel title and stuff too ✅ 2023-12-14
  • need to resolve how to handle blocks when deleting a collection (esp a remote one)#bug
    • im adding a new button that allows you to delete all “contained” blocks (the ones that are only in that collection)
  • get rid of spencer-did and give ppl actual id ✅ 2023-12-13
  • have some indicator for how many collections item is part of… is there a way for you to know which collections in an unobtrusive way? maybe if you zoom in on it ✅ 2023-12-13
  • should not create new block when importing arena if it is a block you already have.. (how to check this? really need unique index on the json blob lol) ✅ 2023-12-19
  • collage view for texts
  • fix the sheet scroll ✅ 2023-12-17
  • add toast for any errors #bug
    • #bug add all errors to an error log table to find in dev settings ^a98d8e
  • add a scroll icon to get back down to bottom of chats ✅ 2023-12-20
  • remote connections are not properly handled ✅ 2023-12-20 ^4ec9ec
    • each connection needs info about the remote connected info
  • link ConnectionSummary to the collection chat view, this requires ^e3d6d2 ✅ 2023-12-27

performance stuff

  • input still slow ✅ 2023-12-16
  • images load slowly / remote images especially take a while
    • probably need to mirror remote images locally?
  • switching collections is slow ✅ 2023-12-16
  • no feedback when importing channel in the new collection view, maybe should automatically go to it ✅ 2023-11-16

things to finish before sending out testflight

2023-12-27

  • #feature add a navigation stack and render the arrow on home depending on it.
  • #bug fix old share intent stuff

2023-12-20

  • working on icons and names
    • gloo sounds pretty good but i guess people don’t really like it
  • icon progress!
    • playing with colorful washi tape
  • im really happy with how this turned out. i never would have believed i would’ve been able to design an app logo that looks professional but this really has a good concept and a pretty decent execution in my opinion
  • #performance add blocks bulk insert
  • maybe allow person to change app icon by inserting their photos and blocks (can also customize splash screen into a home screen thing?)
  • #performance fix the uncategorized carousel lag

2023-12-19

  • #bug does not handle updated content from existing blocks in arena
  • #bug need to refresh collection items when re-connecting blocks in the collection chat view
  • #bug should remember the last collection you were on rather than just navigating you to home each time
  • #bug deleting from remote doesnt work while offline

2023-12-18

  • was so close to the finish line with making everything working but as i dig deeper into the arena integration, the more skeletons i find..
    • I really didn’t do a great job designing all of this out at the start because i foolishly am relying on connectedAt from a block perspective when it needs to be connection perspective
    • I can add a new column to connections to handle this, but need to preserve the invariant that collections can only have a single remote source
      • oh god but being able to pull from your photo album and push to are.na is valuable.. ok this is something to figure out later#open-question
        • i guess if you want to handle this you can move all the remote source info into a separate table and then have a list of them for a collection..
        • if there are multiple, it basically just needs to mirror what it sees into everything. But what is the final source of truth? At this point you need to have a CRDT strategy to handle conflicts lol
  • ok it’s really promising that i’m almost a daily user on this app tho
    • i really use my camera a lot to collect inspiration
    • it’s really empowering to have these collections that i return to, i start to add to them more
      • now i want to surface them somewhere interesting..

2023-11-14

  • trying to make a widget today and im gonna kms this is so complicated and deep in the weeds of expo / native development lol. it does feel very powerful / compelling to be able to make widgets tho?

2023-11-08

  • got arena working, and updated to new design without tabs and dropdown instead. lots of progress and i think the next big focus will be speed and design/intearctions + stuff like share sheet and the widgets

2023-11-01

  • this week
    • support two-way are.na sync for imported channels
      • what to do about deletions?
    • faster way to get to certain collections? (the collection dropdown at top instead of tabs) ✅ 2023-11-08
    • uncategorized view is not it right now lol ✅ 2023-11-02
    • send to amble gang to try out tomorrow
    • a live feed via API (via firehose?)

2023-10-26

  • lot of things working now, including the uncategorized view, thumbnails for collections, smooth keyboard behavior, more instant adding, importing are.na channels, etc.
  • to finish tomorrow for launch for people to start using
    • resolve the contenttype/mimetype issue ✅ 2023-10-27
    • fix showing current number in the uncategorized view ✅ 2023-10-27

2023-10-24

  • got basic are.na import working
    • get one-way sync to push up to arena working for are.na synced collections ✅ 2023-11-08
      • requires schema change to mark collections as remote sourced
      • also requires storing arena token

2023-10-18

  • feeling recurrent episodes of existential stress because of all the different parts that don’t really feel like they fit together? different parts:
    1. interesting interfaces for gathering digital objects in collections and revisiting gathered objects over time
    2. local-first are.na client
    3. local PDS for syncing your own data to different devices
    4. at protocol for interacting with other people’s data and creating an open protocol for the data
  • talking to matthew siu about this and he suggested splitting off parts of the problem to test on their own
    • for example, could test the interesting interactions with widgets and stuff by just using are.na as the underlying backing
    • maybe spin up a temporary centralized service to one-time import an are.na channel and hardcode a way to sort it into different collections and then add the widget
  • things to do at some point
    • widget for surfacing data like photo memories (optionally filtered by collection)
      • include the content and the time added
      • (stretch) control for marking as reviewed and moving on ala bulletin
    • slidebox-esque organization view ✅ 2023-10-21
    • telegram-esque gather view
    • timeline + masonry gallery view for reviewing
    • multiplayer things
      • send things to friends in their widget

2023-10-16

  • this week
    • quick actions menu? ✅ 2023-10-18
    • handle links ✅ 2023-10-18
    • handle clipboard ✅ 2023-10-18
    • share sheet
  • conversation with raymond zhong
    • pitch: “talk to your are.na channels” — arena doesn’t know the chats happening
    • when will canvas be working?
      • joel is adding custom actions back in this week, which enables writing localPDS
      • then need to get the self-authenticating stuff working
  • swipe for quick actions on messages ala superhuman for quick add
    • how to separate things when you send multiple stuff in a message? e.g. multiple images or media and text?
    • can replying do something meaningful? maybe each block can also have direct block connections? or it forms a new automatic collection w the full thread of replies
  • tinder-esque view for categorizing / labeling
    • saved filters for this (no title, no description, no collection)

2023-10-02

  • this week:
    • multi-image picker ✅ 2023-10-11
    • chat interface ✅ 2023-10-11
    • unsorted / all chats in collections as top tab ✅ 2023-10-11

2023-10-05

  • connect blocks to new pieces after adding ✅ 2023-10-11
  • get rid of aspect ratio for images ✅ 2023-10-11
  • profile feed ✅ 2023-10-06

2023-10-03

Week Intention: fully usable testflight by the end of the week. I should be able to easily add things to basket and connect them to different pieces

  • collection detail view ✅ 2023-10-05
    • fix routing to it — such a stupid bug… was not doing an “export default” in the route handler file. No error appeared about this ever until i opened it in the production app on testflight lol
  • select collection for new media to belong in ✅ 2023-10-05
  • sync via cloud
  • add search ✅ 2023-10-21
  • figure out why textarea isnt doing multiple lines by default ✅ 2023-10-25

2023-09-26

  • for this week
    • create ability to create collections ✅ 2023-10-03
    • support video media#feature
    • ability to connect items to collections ✅ 2023-10-11
  • a lot of competitive research and positioning thinking
  • researching kinopio
    • it feels like a more well-crafted developer-wise are.na coded thing (flexible api, ios widget, so many integrations) but it still doesn’t have a clear audience
      • too complicated for people to understand?
      • helena says she doesn’t think that way
    • i really like the painting indicators#ideas/software cursor-chat-esque open-source library for this. toggling between persistent and not?
    • also multi connect via painting the things you want to select is really good
    • the “boxes” for delineating clear groups within spaces is also useful and that way you can also just grab those via API… is what’s lacking here a simpler, tabular view of things? they emphasize the visual aspect too much? like that should only be one view that you’re allowed to go into when you want to sprawl out

2023-09-25

  • Intention: get basic things working on basket like tasks below
  • also having research chat with jess
  • design sprint on wednesday

2023-09-22

  • going to need to work in XCode to make a custom share view: follow these instructions#feature
  • researching flows for are.na, cosmos, pinterest
    • cosmos is actually quite nice in a lot of ways. do we:
      1. imitate the best parts of them?
      2. try to get them to integrate forage?
    • ideal here is that people could customize specific pieces of this flow instead of having to write a whole new client. For example, just the “share sheet extension” view to tinker with how they intuitively want to add things.
  • add a way to delete things ✅ 2023-10-06
  • handle images ✅ 2023-10-06
  • handle audio!! ✅ 2023-10-06
  • ugh added this react native hold menu library (https://enesozturk.github.io/react-native-hold-menu/) to get additional actions in ios-esque style, but it doesn’t work on expo 49!! What is wrong with this ecosystem why is nothing compatible with each other.

2023-09-20

  • talking with helena about gather
    • goes into “arena mode”
    • wanted to do more casual collecting which is why installed mobile app but never worked for them
    • take screenshots
    • app-specific bookmarks
    • imessage to someone else
    • pampam are.na channel - only look for stuff that vibe
    • never go to home page to scroll, intentional space thats why i love it
  • do wireframe 10 designs for feed design and homepage design

2023-09-19

  • the most basic version of this app is something that accepts content from share sheet and that you can add to on the go, and i can see a basic timeline feed of all the things i’ve added
    • maybe a “review mode” of different high-signal sources that I care about (camera roll, twitter likes, etc.)
  • get share sheet set up ✅ 2023-09-22
  • get init data flow working ✅ 2023-09-20
    • adding expo-sqlite for now, but it doesn’t work on web

2023-09-18