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
- ok we can use generated columns for this probably.. https://antonz.org/json-virtual-columns/
- 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
ConnectionSummaryto 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
connectionsto 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
- 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
- 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?)
- support two-way are.na sync for imported channels
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
- get one-way sync to push up to arena working for are.na synced collections ✅ 2023-11-08
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:
- interesting interfaces for gathering digital objects in collections and revisiting gathered objects over time
- local-first are.na client
- local PDS for syncing your own data to different devices
- 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
- widget for surfacing data like photo memories (optionally filtered by collection)
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
- 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
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:
- imitate the best parts of them?
- 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.
- cosmos is actually quite nice in a lot of ways. do we:
- 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
- ok so this actually isn’t supported in expo lol i will have to eject my app to get the react-native code?
- https://github.com/Howdju/react-native-share-menu
- ok i added this expo ported version that will hopefully work
- bought my apple developer pass and i somehow have to wait for them to process it 🤦
- get init data flow working ✅ 2023-09-20
- adding expo-sqlite for now, but it doesn’t work on web
- seems like someone has tried to get this to work tho? https://github.com/ngokevin/expo-sqlite-plus-web but last updated 2 years ago. this seems feasible to persist to indexeddb though
- adding expo-sqlite for now, but it doesn’t work on web
2023-09-18
- set up the initial repo
- basic scaffolding of the expo app is up
- github issues will be the main way to track tasks
- spent some time playing figuring out styling architecture but punting the problem
- how is persistence going to work?
- how does expo-sqlite and canvas play well together?
- maybe first week milestone is getting local persistence working for multi-media and finalizing schemas?
- started collecting design inspo: https://www.figma.com/file/vo0DR6vlBqvy4p8Fx8PzsM/Basket?type=design&node-id=0%3A1&mode=design&t=Uq1XZvpD7nymkhGV-1
- omg expo doesn’t support share sheet from other apps natively. And it seems like a pain to get set up.
- nvm found one from expensify https://github.com/Expensify/react-native-share-menu
