Why so many negative comments on this? I find it cool. I showed this to my son and he absolutely loved it. The author is clearly a fan and this by no means is a production-grade product. Just someone tinkering in their free time and gave the DIY guide away for free. I just don’t understand the negativity.
This is nice. Somewhat related, I've been using this free, open-source app called BeardedSpice[0]. It solves my pet peeve of the media key doesn't always control the right app/browser tab.
> BeardedSpice is a menubar application for Mac OSX that allows you to control web based media players and some native apps with the media keys found on Mac keyboards. It is an extensible application that works with Chrome (Canary, Yandex, Chromium) and Safari, and can control any tab with an applicable media player.
If you emulate command+V, make sure to check the keyboard layout. You may need to translate the keycode V for the current keyboard layout like DVORAK etc
Either you render the markdown document just once (not streaming) or your document is simple and short.
I used to use swift-markdown-ui for my app but the performance is nowhere near using a wkwebview. When streaming large documents with tricky elements like large tables, code blocks, nested quotes, you may even get beached ball. It never happened when using a wkwebview.
Nice. I quit my job to build a product[0] to solve this exact problem.
I’m not interested in news but I love reading blog posts, newsletters and interesting technical discussions on HN or reddit.
So I built KTool as a “read it later on Kindle” solution. It supports web links, newsletters (via email forwarding) and RSS. I also added the ability to compile multiple articles into one magazine/ebook and deliver them at a specific time.
This has been a major UX problem for me when building my app [0] (an AI chat client for power user).
On the one hand, I want the UI to be simple and minimal enough so even non savvy users can use it.
But on the other hand, I do need to support more advanced features, with more configuration panels.
I learned that the solution in this case is “progressive disclosure”. By default, the app only show just enough UI elements to get the 90% cases done. For the advanced use cases, it takes more effort. Usually to enable them in Settings, or an Inspector pane etc. Power users can easily tinker around and tweak them. While non savvy users can stick with the default, usual UX flow.
Though even with this technique, choosing what to show by default is still not easy. I learned that I need to be clear about my Ideal Customer Profile (ICP) and optimize for that profile only.
Shameless plug: I’ve been building a native AI chat client called BoltAI[0] for the last 3 years. It’s native, feature-rich, and supports multiple AI services, including Ollama and LM Studio.
X: https://x.com/daniel_nguyenx W: https://danielnguyen.me