Pål Brattberg 👨💻 retweeted
Introducing Blink Claw - the first platform to hire unlimited AI employees that run your business 24/7.
180+ AI models included. Gmail, Slack, LinkedIn, HubSpot - one-click connect. No API keys, no $600 Mac Mini.
Reply "Claw" + RT. Your first agent is on us. ($50 - 200 creds)
Pål Brattberg 👨💻 retweeted
This is the question every software company is asking themselves right now. What happens to our roadmap if an engineer can produce 2X or 5X more output.
The general direction will be roadmap expansion. Companies that just use this leverage to cut costs will be outcompeted by those that decide to do more.
As a result, this will mean we will see more competitive battles between companies, but also the expansion of many more categories since software can touch more surface area.
The limiter then becomes how rapidly your customers can actually adopt new software, how good you make that software (vs. it becomes slop because it’s so much easier), and whether you can get paid for more software or if customers’ expectations just go up over time for what they get from each vendor.
As an aside, building up a brand, ecosystem, and distribution moat ends up being critical. If software development cost per unit go down, then the new game is how you can get customers to adopt and remain sticky. GTM becomes a critical factor in all this.
Pål Brattberg 👨💻 retweeted
I become Cursor’s first full-time PM 4 months ago.
What I am NOT doing:
- Manage a product sprint
- Grooming
- PRD
What I am doing:
- Help build, price, market, and launch our first second product: Bugbot
- Customer support for Bugbot for the first couple months - I’ve responded to literally thousands of emails
- Enable and help our rapidly scaling GTM to sell Bugbot and Cloud agents to enterprise
- Spend lots of time with our biggest customers who are least similar to our engineering team
- Talk to hundreds of users for competitive analysis and UXR
- Advocate for and help kick off some of the features that became Cursor 2.0 (agent layout + plan mode)
- Architect and scope a new platform product we’ll be releasing soon
- Help GTM close deals and expand our footprint in our enterprise contracts directly in the sales process
- Travel across the world to visit our customers, help with enablement, and see where we can improve
- Helping with misc random things: evaluating strategic acquisitions, “thought leadership” events, lots of recruiting, product/content marketing, devrel, and more
Am I PM-ing correctly? 🤷🏾♂️
Cursor scaled to $29B without any full-time PMs.
Ryo (Cursor's Head of Design) walked me through how they work and it's the opposite of every big tech best practice:
1. Roles are muddy
PM work is spread across designers and engineers. Everyone does what fits their strengths and uses AI to fill the gaps.
2. Most designs start with code directly
Ryo barely uses Figma except for initial exploration. Most features start as live Cursor prototypes because "it feels more real than pictures."
3. No annual roadmap theater
Just a "fuzzy direction" and features shipped to concentric circles (e.g., staff, nightly beta users, consumers, enterprises) to polish.
Ryo also showed me exactly how he designs and codes new features using Cursor and how he avoid creating generic purple AI slop.
📌 Subscribe to watch our full tutorial tmr: youtube.com/@peteryangyt?sub…
Pål Brattberg 👨💻 retweeted
our process for writing the release notes has changed a lot in the last 6 months
Now it’s:
1) for each commit, send the code + message + github PR and linked issues to Gemini 2.5 to read and decide if “paragraph-worthy” or “bullet point worthy” or if it’s a CI thing to skip and write an initial draft. Post processing step includes the commit link associated in an HTML comment for us to verify.
2) use a keyword similarity sorter script to combine them into one file that loosely groups
3) spend about 2 hours editing and checking for accuracy
doing it 100% manually used to take 4-6 hours and we regularly forgot to include things in the release notes. we’ve been doing this for like 10 releases now
Bun v1.2.23
- Fixes 119 issues (addressing 412 👍)
- `bun install` migrates `pnpm-lock.yaml` → `bun.lock`
- pub/sub in Bun.redis
- concurrent `bun test`
- `sql.array` for postgres client
- Node.js compatibility improvements
Thanks to 16 contributors!
bun.com/blog/bun-v1.2.23
Pål Brattberg 👨💻 retweeted
No big deal or the end of the world?
Here’s something that should be obvious: People don’t like to have their grievances downplayed or dismissed. When that happens, even the smallest irritations can turn into an obsessive crusade.
Imagine you’re staying at a hotel, and the air conditioning isn’t working right. You call the front desk to mention it, and they say, oh yeah, they know about that, and someone is going to come fix that next week (after you’ve left). In the meantime, could you just open a window (down to that noisy, busy street)? Not a word of apology, no tone of contrition.
Now what was a mild annoyance – that it’s 74F degrees when you like to sleep at 69F – is suddenly the end of the world! You swell with righteous fury, swear you’ll write a letter to management, and savage the hotel in your online review.
Jean-Louis Gassée, who used to run Apple France, describes this situation as the choice of the two tokens. When you deal with people who have trouble, you can either choose to taken the token that says “it’s no big deal” or the token that says “it’s the end of the world”. Whichever token you pick, they’ll take the other.
The hotel staff in the example above clearly took the “it’s no big deal” token, and as a result forced you to take the “it’s the end of the world” token. But they could just as well have made the opposite choice.
Imagine the staff answering something like this: "We’re so sorry. That’s clearly unacceptable! I completely understand how it must be almost impossible to sleep when it’s so hot in your room. If I can’t fix this problem for you tonight, would you like me to refund your stay and help you find a different hotel room nearby? In any case, while we’re figuring out the solution, allow me to send up a bottle of ice water and some ice cream. We’re terribly sorry for this ordeal and we’ll do everything to make it right."
With an answer like that, you're almost forced to pick the "It's no big deal" token. Yeah, sure, some water and ice cream would be great!
Everyone wants to be heard and respected. It usually doesn’t cost much to do either. And it doesn’t really matter all that much whether you ultimately think you’re right and they’re wrong. Arguing with heated feelings will just increase the burn.
Keep that in mind the next time you take a token. Which one are you leaving for the customer?
Pål Brattberg 👨💻 retweeted
Here’s a big list of things that don’t seem to work, based on the last 20 years of running Tiny:
• Giving an advisor or advisory board free equity to advise a CEO without putting any real skin in the game and investing their own money (they usually go “thanks for the free equity” and occasionally respond to emails)
• Variable price/cost plus contracts (going over budget = vendor makes more money - natural incentive to go over budget)
• Synergy between two entities, unless they are almost 100% identical and it happens naturally between the two management teams with a clear profit incentive (even then, rarely works)
• Hiring people with traditional finance backgrounds—especially big corporate accounting—as opco CFOs (I see this a ton - first time entrepreneurs in small businesses hire a bean counter when they need somebody who is willing to roll up their sleeves and operate the business alongside them with a financial lens)
• Hiring outside management/compensation/etc consultants (they have no alignment and get paid regardless of the outcome / often incentivized to tell you to change everything so they sound smart / they can’t deliver hard news to management because they serve them / “consulting is the art of picking your pocket watch to tell you the time”)
• Fractional CFO/finance people vs. in-house finance (you’d almost always pay the same amount just in-housing, except you get 1/20th of their time and attention and they aren’t aligned with you)
• Hiring a big company person to run a small or medium company (no scrappiness, used to a big cushy org full of support - usually don’t know how to hire, how to do HR, how to incentivize, how to run an actual org, think TOO big)
• Hiring a CEO from a business with X business model (for example, ads) and expecting them to execute Y business model (for example, recurring membership revenue) in your business (people typically keep executing the strategy they know and love/are comfortable with - “to a person with hammer, everything looks like a nail”)
• Expecting a business to disrupt itself or incubate its own “labs” projects (these are usually expensive boondoggles and the innovator’s dilemma typically kicks in “never expect someone to understand something that their paycheck depends on them not understanding”)
• Expecting a CEO to issue dividends to head office vs. horde cash when their incentives don’t align with dividend receiving shareholders (CEOs will often press to keep as much cash on the balance sheet as possible, unless dividends benefit them as well - you essentially incentivize them to create silly R&D projects or at least project the need for massive cash investment)
Pål Brattberg 👨💻 retweeted
The best startups already do this:
- Linear: has a zero bug policy and a "goalie" role (dev who fixes all reported bugs, fulltime, on rotation).
- Figma: zero bug policy for new features + "quality weeks"
Did deepdives on both in @Pragmatic_Eng , check them here: (cont'd)
Pål Brattberg 👨💻 retweeted
I installed a box high up on a pole somewhere in the Mission. Inside is a crappy Android phone, set to Shazam constantly, 24 hours a day, 7 days a week. It's solar powered, and the mic is pointed down at the street below walzr.com/bop-spotter
Pål Brattberg 👨💻 retweeted
You know what the biggest problem with pushing all-things-AI is? Wrong direction.
I want AI to do my laundry and dishes so that I can do art and writing, not for AI to do my art and writing so that I can do my laundry and dishes.
Pål Brattberg 👨💻 retweeted

Elon Musk@elonmusk5 May 2024
🇺🇸!
United StatesConnected via United States App StoreLocation may be affected by a proxy or VPN.Account-level information, not a live location or per-post device.
Maiden launch of Falcon Heavy, the most powerful operational rocket on Earth, with the first dual rocket landing
Pål Brattberg 👨💻 retweeted
Hey #buildinpublic,
I collected a list of more than 250 places to post your Startup and get your first paying customers 💵
like
repost
comment "directories"
will DM you the list.
(must be following)
Pål Brattberg 👨💻 retweeted
Can't believe I got this working 🤯
Live preview of a Blender scene with the Vision Pro.
Pål Brattberg 👨💻 retweeted
Way long ago, I worked on products that used Authorize .net and PayPal for payments. They were nightmares.
Then, in 2011, a friend invited me to a private beta for something called Stripe. He even showed me how it worked... he grabbed my computer and did the famous "Collison installation" to send me a real dollar from his credit card with a curl command.
To me, that was when building a SaaS became ridiculously easy.
Later on, Stripe launched something called Checkout that took things a step further. Instead of just taking payments, Checkout provided a complete UI for my users to setup subscriptions with periodic invoices.
To me, that was when building a SaaS became really, ridiculously easy.
But now I think we can do even better...
For me, the biggest headaches with setting up Stripe subscriptions today are:
1. Syncing customer data into Stripe Customer objects
2. Listening to webhooks for when a subscription completes
Clerk is known for managing sign-ups and user profiles. For B2B SaaS, we also have a feature to manage business customers called "organizations".
As you can imagine, it's quite feasible for us to continually sync this data into Stripe Customer objects so you don't have to. Perfect.
And we also have a simple trick for (2). It won't work for everyone, but I think it will work for most.
Instead of you listening to webhooks for when a subscription completes, Clerk can listen to webhooks for you.
Once we're notified of a subscription, we'll update the Clerk-generated JWTs that are normally used for authentication, and add information about the user's subscription plan.
Then, you'll be able to use Clerk for authentication and authorization. It will be something like:
auth().protect({plan: "gold"})
If you've seen this syntax before, it's because it extends on our custom roles capabilities:
auth().protect({role: "admin"})
To me, this will make building a SaaS really, really, ridiculously easy.
Pål Brattberg 👨💻 retweeted
so excited to share with you all: a new @GitHubNext addition to Copilot Labs...
✨ Code Brushes ✨
We wondered how we could make editing your code feel as tactile and easy as paint with a brush in Photoshop?
writeup: githubnext.com/projects/code…
and 🧵
Pål Brattberg 👨💻 retweeted
"My scaleup hired a Director of Engineering who did nothing for a year, except come up with artificial 'verticals' which worked terribly. The person was let go after a year."
- from a software engineer.
This summarizes so many challenges & problems with engineering leadership:
Pål Brattberg 👨💻 retweeted
Informal poll: What's your ideal ratio of engineers to PM?
And how technical is your product, on a scale of HTML site <--> OpenAI?


























