Show HN: Linkly (linkly.at)
My friend and I wanted to show a macOS app we wrote. The app allows users to search their Chrome history and insert a link from the search results in any text box. Think the macOS emoji box (Ctrl + Command + Space), but for your Chrome history.
For the frontend, we use a combination of React and Electron, mainly for developer velocity. We used Figma to iterate on the visual design.
One the challenges was getting the pane to appear next to the user’s caret as they are typing. Currently, we place the pane at the user’s last cursor location. You might notice some quirks in Linkly that are also shared with macOS' emoji box. For example, in many apps, you'll end up with two flashing carets: one in the app's text box and another in Linkly's text input field.
The Chrome history files are SQLite databases, stored in ~/Library/Application Support/Google/Chrome/. Each Chrome profile has its own history file. We make copies of these SQLite databases and build full-text search indices using SQLite's FTS5 module (https://www.sqlite.org/fts5.html). The actual search query is a bit of a hack. We just split your query on whitespace, append "*" to each "token", and send it along to SQLite. This somewhat mimics VS Code's search functionality where each token is treated as a substring. In the future, we might parse the entire query per SQLite's grammar and rewrite it so it more closely matches VS Code's behavior and so we can disable some of SQLite's search capabilities that don't make sense for Linkly (e.g., "my_column:x").
Please let us know what you think!
1 comment
[ 5.7 ms ] story [ 12.8 ms ] threadI played around and I think it will be really tough to change existing habits for users (copying and pasting links from the browser into another app), do you have plans on meeting the user in their existing habits to allow them to ease into your experience?