jake metz retweeted
12 years in the making... Scroll-Driven Animations are officially Baseline Newly Available 🎉
Pure CSS scroll-driven animations are now supported across every major browser engine and to celebrate this milestone, check out this animated timeline tracing the history of the feature from the 2014 proposal to today, built using Scroll-Driven Animations → goo.gle/3Urm9fT
jake metz retweeted
just launched: @mobbin mcp 💛
your AI agents can now search 600,000+ real app screens. paywalls, onboarding, checkout, permissions — from apps that already shipped.
ai tools can write code. they just don't know what good looks like. now they do.
👉 mobbin.com/mcp
jake metz retweeted
Adobe tried to buy Figma for $20 billion in 2022.
The deal collapsed. So Figma went public on the NYSE in July 2025 instead. Ticker FIG. Public company. Quarterly earnings. Wall Street pressure.
You know what happens to design tools after they IPO.
In March 2025, Figma raised the Professional Full seat 33%. From $15 to $20 a month. Organization seats jumped to $55. Enterprise to $90.
Then they took Dev Mode, which was free during beta, and locked it behind a paid seat. Your developers now pay extra to inspect the designs your designers already paid to create.
In March 2026, Figma started charging for AI credits on top.
If Figma raises prices again, you pay.
If Figma gets acquired, you pray.
If Figma shuts down, your files die with it.
Your design system. On their servers. In a proprietary format only their app can read. To draw rectangles on a screen.
There is an open source design platform that runs on your hardware. Stores your files in plain SVG. Costs $0 forever for unlimited users.
It is called Penpot. 45,700+ stars on GitHub.
A full Figma-grade design platform built on open web standards. Vector editing. Components. Design tokens to W3C spec. Flex and Grid layouts. Real-time multiplayer. Interactive prototyping.
Here's what it does:
→ Real-time collaboration. Live cursors. Comments in line.
→ Components, variants, shared libraries.
→ Auto layout, Flex, CSS Grid. The tool outputs production CSS, not lookalike CSS.
→ Interactive prototypes with overlays, animations, and flows.
→ Inspect tab. Free. Built in. Every developer grabs production CSS, SVG, HTML without a separate seat.
→ Plugin ecosystem. Figma import to migrate your files.
→ Self-host on Docker in one command. Your designs never leave your network.
Here's the wildest part:
Figma stores your designs in a proprietary format only Figma can read.
Penpot files are SVG. The same format your browser has rendered for 25 years. Open them in any editor. Open them in 20 years. Nobody can lock you out.
The feature Figma charges your developers extra for, Penpot gives away. Without asking permission.
Figma Professional: $20/month per seat. A 10-person team: $2,400/year.
Figma Organization: $55/month per Full seat. A 50-person org: $33,000/year.
Penpot: $0. Unlimited users. Unlimited files. Unlimited teams. Self-hosted. Free forever.
45,700+ stars. 2,700+ forks. 250+ contributors. MPL-2.0 license. Backed by a community that believes design tools should be free.
Your designs. Your files. Your standards.
100% Open Source.
(Link in the comments)
jake metz retweeted
Anthropic have just buried OpenAI and ChatGPT with this ad lmfao
There’s no coming back from that
jake metz retweeted
Tailwind lays of 75% of their team. the reason is so ironic:
> their css framework became extremely popular w AI coding agents, 75m downloads/mo
> that meant nobody would visit their docs where they promoted paid offerings
> resulting in 40% drop in traffic & 80% revenue loss
jake metz retweeted
I just completed "Complete Intro to MCP" by @holtbt on @FrontendMasters!
Clear explanations, hands-on examples, and practical insights into building real MCP servers. Highly recommended for devs exploring AI workflows.
frontendmasters.com/courses/…
jake metz retweeted
The people who don't feel this way are the ones who are fucked, honestly.
I've never felt this much behind as a programmer. The profession is being dramatically refactored as the bits contributed by the programmer are increasingly sparse and between. I have a sense that I could be 10X more powerful if I just properly string together what has become available over the last ~year and a failure to claim the boost feels decidedly like skill issue. There's a new programmable layer of abstraction to master (in addition to the usual layers below) involving agents, subagents, their prompts, contexts, memory, modes, permissions, tools, plugins, skills, hooks, MCP, LSP, slash commands, workflows, IDE integrations, and a need to build an all-encompassing mental model for strengths and pitfalls of fundamentally stochastic, fallible, unintelligible and changing entities suddenly intermingled with what used to be good old fashioned engineering. Clearly some powerful alien tool was handed around except it comes with no manual and everyone has to figure out how to hold it and operate it, while the resulting magnitude 9 earthquake is rocking the profession. Roll up your sleeves to not fall behind.
jake metz retweeted
Try Node 25.2 and see if your app still works
Problem: they implemented the spec strictly, but the spec is not convenient in practice 😅
Breaks Docusaurus, Jest, Metro, html-webpack-plugin, eval, and more
jake metz retweeted
AI coding assistants save you so much time by auto-generating code, leaving you more time to do other things such as fixing extremely hard-to-debug issues caused by the valid but incorrect AI-generated code
jake metz retweeted
React 19 greatly simplify vanilla data fetching
Previously we had to useEffect, handle race conditions, unmounts, loading/error state...
Now you just:
- store a promise
- read it within Suspense/ErrorBoundary
This makes a whole class of problems disappear
jake metz retweeted
Don't be that teammate who blindly refactors code and only makes things worse.
Let's look at some good vs bad refactoring patterns with real examples 🧵
jake metz retweeted
Problem: You need to check if a value matches one of many potential values.
Solution: Consider array.includes.
This avoids declaring a bunch of repetitive conditionals.
jake metz retweeted
Vite 5.4 is out ⚡️
If you're using Sass, the new "modern" and "modern-compiler" APIs will give your apps a performance boost!
We'll be kicking off the next major beta with Environment API soon. If you're building on top of vite, get involved 🛠️
github.com/vitejs/vite/blob/…
jake metz retweeted
Why I don't use Scrum to manage my Remote Teams?
TL;DR: It adds at least 8 hours of meetings per Sprint. That's 2 full days of lost productivity, per team member, per month!
This is what I do instead:
jake metz retweeted
NEW POST: As React UI controls become more sophisticated, complex logic can get intertwined with the visual representation: hard to reason about, hard to test. @JuntaoQiu tackles this with a Headless Component, separating the brain from its looks.
martinfowler.com/articles/he…
jake metz retweeted
Tonight, we are flying 10 American flags inside U.S. Bank Stadium to represent the 10 Americans who are currently being held hostage and were among the more than 200 people kidnapped by Hamas during the October 7 terrorist attacks on Israel.




















![// Instead of this:
if (
status === "active" ||
status === "committed" ||
status === "preferred" ||
status === "locked"
) {
// logic here
}
// Consider this:
if (["active", "committed", "preferred", "locked"].includes(status)) {
// logic here
}](https://pbs.twimg.com/media/GUtOkWrXIAEhS9e.jpg?name=small&format=webp)








