I use Brave, and for me it's really just the least bad option.
Firefox-based browsers do not support macOS automation (AppleScript/JXA). Safari lacks features/extensions. Orion/Vivaldi had bugs any time I tried them.
From the Chrimium-based browsers I tried, Brave blocks ads, supports PWAs, the crypto stuff can be turned off, and is stable. Brave does not excite me, but it's good enough.
Love rss, but the upside of not having an algorithm determine your content consumption quickly results in a fire hose of content.
Sadly, filtering features seem to be only available for paid subscriptions of online services, or for self-hosted solutions. Or are there solutions I am not aware of?
- native browser bookmarks: things I visit regularly and want to access quickly, like the website of my bank.
- read-later-links: I send it to my todo app, and read it the next day or delete it. No piling off links I never read.
- topic-specific links like "tool to extract tables from PDFs" go into my note taking system (in my case Obsidian), where I can also write notes on the links properly
API is noticeably slower for me, sometimes up to 10x slower.
Upon some digging, it seems that part of the slowdown is due to the gpt-5 models by default doing some reasoning (reasoning effort "medium"), even for the nano or mini model. Setting the reasoning effort to "minimal" improves the speed a lot.
However, to be able to set the reasoning effort you have to switch to the new Response API, which wasn't a lot of work, but more than just changing a URL.
> However, to be able to set the reasoning effort you have to switch to the new Response API, which wasn't a lot of work, but more than just changing a URL.
That's not true - you can switch reasoning effort in the Chat Completions API - https://platform.openai.com/docs/api-reference/chat/create . It's just that in Chat Completions API it's a parameter called "reasoning_effort", while in the Responses API it's a "reasoning" parameter (object) with a parameter "effort" inside.
My favorite is nvim-treesitter-textobjects which gives you dozens of new targets for vim motions, such as a function call or the condition of a loop.