To provide some context, unlost is a desktop app that uses semantic search and description to help users find what they've seen or heard on their computer.
For example, if you remember reading an article about "introverts doing user interviews" a few weeks ago, you can search for with similar phrase s and unlost will surface any related articles you've read.
Here's how I went about structuring the stack by asking myself 3 questions involving the past, current, and future.
Why this question? This helps me establish the baseline and make sure every future decisions adhere to the answer.
Validate the idea and demand of a semantic search engine for your own memories. The validation should be concluded within 2-3 months.
Why this question? This helps me establish what's needed to build the current version and helps me defer any decisions if necessary.
Why this question? This keeps track of any non-urgent requirements. As long as there is a way of achieving these given reasonable resources from current version, just leave them here. The likelihood of this changing is extremely high.
Why? privacy concerns, 0 infrastructural maintenance and cost, defer scaling related problems,...etc
because developing integrations with other apps that run smoothly takes time. Windows, I'll tackle you in a couple of months.
because it works out of of the box, is open source, and runs locally. And AI advancement happens on python so 🤷. Local python FastAPI server interfaced with Swift because it's the easy option 😬
because it comes with MacOS and easy duhh
could've used anything but given the core involves Apple libraries I might as well write it in Swift so it interfaces better
txtai services can be split horizontally across nodes locally and in the cloud so storage and performance issues should be fixable*
batch and defer cpu intensive executions only when its connected to battery? build integrations to common apps like chrome to avoid OCR process? offload processing to cloud? 👀 Not undoable
already have Swift and Python working nicely together so😛