
Product developer at @todoist. Always learning. Building @klipstack, @pixamp and more
🇨🇱
Joined March 2009
- Tweets12K
- Following645
- Followers902
- Likes53.4K
You can now keep track in @klipstack of how much you really read regularly or not. I built this for me, to stop fooling myself when I'm not reading enough.
If you're looking for a read-later app, give @klipstack a try. Even if you do not end up liking it, I'd love your feedback.
Obsidian was never meant to be your read-later service.
But unfortunately, that's how I see a lot of people use the Web Clipper.
You're reading an interesting article, and you think, "I want to remember this," so you clip the entire thing so you can read it later. It feels good, so you do it again. And over the course of a week, you add a dozen other things to your read-later list.
To be fair, this is how people have used web clippers for years. And now that Obsidian has one, it's easy to just replicate this behavior in a new app.
Using the Web Clipper this way is a really good example of what I call “The Collector’s Trap,” as clipping articles seems like it would give you lots of quality material to work with inside your Obsidian vault. But what happens instead is that you end up with a well-organized pile of articles that, let’s be honest, you're never going to read.
When you use the web clipper like this, you end up just recreating your read-later list (and the giant backlog of unread articles that come with it) inside Obsidian.
And that's a problem because the stuff that was clipped never gets processed.
It just sits there, slowly becoming a source of guilt instead of a source of new ideas.
It’s a digital landfill. So I'd advise you to take a different approach.
At its core, Obsidian is a tool for thought. But I see a lot of people treat it like an archive instead. They save the things that they feel might be important someday, and only go looking for them when they happen to remember them and want to dig them up.
Personally, I think the things you choose to keep in your vault should be the ideas you find valuable enough to actively work with.
It shouldn't be a collection of what other people have written. Your vault should be the place where you work with the ideas that you're interested enough in to figure out what you think about them.
The ideas that make you think are the ones that are worth connecting and cultivating.
Your vault is meant to be a workshop, not a library.
A library is an archive. It's where you go to find a collection of words that other people have written.
A workshop is where you go to create something new.
Your regular Chrome already auto-updated to 156, so you think you're safe
You're not
The real danger here is Playwright, Puppeteer, and MCP browser tools running inside Cursor, Claude Code, or Terminal
1. Your IDE / Terminal has macOS Accessibility permissions
2. It spawns a cached Playwright Chromium (usually stuck on v131–151 or whatever)
3. That browser inherits your IDE's Accessibility permission
4. Any site your agent visits can use the GPU process to press Cmd + Space, open Terminal, and run commands on your Mac đź’€
Check ~/Library/Caches/ms-playwright and ~/.cache/puppeteer right now and update to Playwright 1.64.1+ (Chromium 156)
- preview deployments
- prototypes that I’m not sure yet if I want to release
- collaborate in a certain change with a colleague, or hand off incomplete work
- running CI in a cloud environment
Off the top my head.
Next question: why are you still using branches?
We talked about PRs. I don't think they make sense anymore, if you rethink them from first principles.
Yes, if you only use them to trigger CI, then sure, go ahead. That's a fat commit, not a PR. But for mandatory code review? Knowledge sharing? C'mon.
But some of you said: "we use PRs because we use branches! I love to keep my stuff on branches."
And I'm here to tell you: you don't need branches! You can just push to main.
It's called trunk-based development and the idea behind it is true continuous integration: you continuously integrate your changes with the trunk, the main branch.
It's been around for a while, it works. Just yesterday I talked with someone who said they've used it in an org with 400 engineers, without any issues. Ruby, the project, uses trunk-based development.
The main idea is that you want to avoid long-lived branches. They're bad, because branches can diverge and merging can turn into a thing. And you don't want routine operations to become a thing.
Even when I worked in teams that used PRs and branches, I considered it a smell when a branch lived for longer than a day or two.
But when I shared this with others, I'd often get something back like this:
"Well, good for you, but no. MY thing, what I'm working on, that can't be done on main. It needs to be on a branch! It has a database migration, it changes the underlying shape, the architecture, it refactors this and changes that. It can't go on main yet! I need to merge it all at the end."
And then I'd say:
"Nah, I can merge nearly anything continuously in small commits to main. You split things up. Add the column first, merge that, deploy it, now it's out, works, safe.
Add the helpers first, merge them, get them out.
Want to migrate from legacy pattern A to new pattern B? Don't do it all at once. Add the dependency, then migrate A to B, one by one, safe."
If it can be merged in a large change, I bet it can be done in small increments that you merge to main.
Yes, there are exceptions, but it's 0.5% of cases, not 50%.
But there was a real problem with this approach: it was hard!
There's a lot of "meta programming" you have to do: make sure this small first change compiles and runs and the tests work, merge it, get it out, monitor it; then do the next small piece, make sure that works and get it out; then maybe push some still-unused dead code, add a feature flag, add a config variable; or keep both configurations working at the same time, etc.
That meant sometimes it was just easier to do it in a big fat branch. But big fat branches are risky!
A system that continuously flows is safer than a system that starts and stops in spurts.
But -- you guessed it -- here's the good news:
Now, with agents, all of these chores are no chores at all!
Agents are great at adding feature flags, they're great at splitting up code, they're great at keeping track of three changes and merging them one by one and watching them roll out. They're great at keeping two configurations working for a day. They're great at migrating one by one.
In other words: it's now 10x easier to just work on main and make sure everything is continuously integrated and working.
It's now easy to make sure the system constantly flows.
And look, ...
I'm not here to convince you to switch to trunk-based development. Just a ruse to get you to read this. (But also, hey: try it! Pushing to main is amazing.)
I'm here to make you RETHINK how you develop software.
Don't just use agents to replace your typing.
Use agents as the magic code-writing machines they are. Everything that was hard about software development because it involved writing code -- even the meta programming -- has become easier.
You can now reach for the stars! But you need to look up.
Ernesto retweeted
Nothing says a country's not a dictatorship like having to issue grovelling apologies for mentioning that it was in the past.
Desde LALIGA lamentamos profundamente las declaraciones de Kylian Mbappé que han causado malestar y ofensa en China. Entendemos el daño ocasionado y, en nombre de LALIGA, quiero trasladar nuestras sinceras disculpas al pueblo chino.
Durante muchos años hemos construido una relación de respeto, confianza y cooperación con China, sus autoridades, sus instituciones deportivas, sus operadores audiovisuales y millones de aficionados al fútbol español.
No podemos permitir que una actuación individual empañe esa relación ni perjudique a los más de 20 clubes de nuestras competiciones profesionales y a millones de aficionados chinos.
Estamos adoptando las medidas a nuestro alcance y trabajando directamente con nuestros socios e interlocutores en China para superar esta situaciĂłn.
Nuestro compromiso con China, su pueblo y sus instituciones es firme. Una relación construida durante tantos años no puede quedar dañada por un episodio individual.
Readers added context they thought people might want to know
Los historiadores estiman que entre 1958 y 1962, Mao causó entre 15 y 55 millones de muertes, sobre todo por hambruna. Las cifras más citadas rondan los 30-45 millones. A esto se suman cientos de miles o millones más por la Revolución Cultural y otras campañas.
scmp.com/article/723956…
rfa.org/english/commen…
Ernesto retweeted
The “as a Service” part of SaaS remains underrated.
One guy tweets that his team cancelled their @linear plan, and some people go rushing to declare SaaS and UI/UX dead.
But the guy that cancelled its @linear plan is building a SaaS with lots of UI/UX in it.
Also, this 👇 nitter.cf/karrisaarinen/status/2…
Issues created in @linear by people and via MCP are up 400% this year.
Another fast growing trend: more customers are building their own internal agents and using Linear as the shared layer for workflows, communication and context between people and agents.
As teams move faster, connecting goals, requests, reasoning and the work matters more, even if it sometimes happens after the fact in the review.
Here is one customer oriented example we can do in our Linear:
- Pick a top-10 customer. Ask the agent for a brief of their top requests and the reasoning we've captured
- Write it to a doc in Linear and decide what to build with some people
- Have the agent turn the decisions into projects and issues, carrying the customer requests and meeting notes with them
- Teams send their agents to work on them
- At the QBR, ask agent to generate a report and show the customer what has actually landed or them, how and why
Now multiple these kind of workflows 100 or 1000 times where someone is learning something worth fixing, or trying ideas and finding beta customers for it. Or just aligning across the team or cross function.
Not posting our revenue chart, but it looks a lot like this one
Guide your AI, not too much. Mostly under-guide it.
There’ll be times where you over-guide the AI. It knows better than you and is more intelligent than you.
There’ll be times where you under-guide the AI. It can go off-track, have the wrong biases, or miss context.
How well you manage this superpower is the #0 skill I look for.
User interfaces will not disappear. We're visual animals. If anything, what will happens is that they'll migrate to increasingly be generated dynamically by AI in its responses, as it is already happening in some apps. See @openuidev















