Site: Here is your OTP. If someone asks you for this code STOP; it's a SCAM. Also site: Please enter the code. Me: Bro, how do you think someone would ask me for this code?
Doug Parker
@develwithoutacause.dwac.dev
Overly opinionated software developer on the Angular team at Google. Web development is hard, so I build tooling that makes it easier. Blog: dwac.dev Mastodon: techhub.social/@develwithoutacause GitHub: github.com/dgp1130
Vibe coded software is free as in puppy not free as in beer. Even if writing code is now cheap, you still have to maintain it.
new @e18e.dev blog post about when to publish source maps to npm 📦 source maps are often the reason behind bloated install sizes, but sometimes necessary. here we try to explain some of the balance, do/don't
Source maps or not?
Source maps are great for debugging, but should we be shipping them in production?
e18e.dev
Attack vector: Create a PR with two commits, the first one innocuous and second one malicious. Make the first commit *just* interesting enough to pull the reviewer's attention but not block merge. Once they spend 10 minutes trying to critique it, they forget the second commit exists and approve.
🤖"AI likes it" is not the best way to pick a framework in the age of agentic development. So where does @angular.dev land these days? My latest post 👇 dev.to/brandontrobe...
Choosing Angular in the Age of Agents
I see the some version of "Is Angular still worth picking?" every so often, and for years my answer...
dev.to
🛠️ I've made a useWebMCPTool hook for React! Chrome (myself and others) will keep this up to date with any spec changes. The hook has hygiene around unmount, result normalization, etc. Cheers! www.npmjs.com/package/use-... github.com/GoogleChrome...
npmjs.com
AI doesn’t shorten the workweek because companies simply lay people off as productivity gains show up. This has been true for all productivity gains from automation under capitalism. This is just blame the workers type shit.
this is your weekly reminder that: ⚪ intelligence != wisdom ⚪ correctness in sphere <a> doesn't port to <b> ⚪ being unchallenged leads to very dark places ⚪ be very careful of trajectory and dhh is racist much love my friends
I got tired of burning tokens, and worse, review time on Jest to @vitest.dev migrations, so I built Vitestify, a CLI that does it for you. npx @testmex/vitestify 🎯 Deterministic & beyond test files: configs, setup files, mocking APIs... 🪜 Incremental: tests that fail keep running under Jest 🧵
New blog post: Jujutsu tutorial I wrote the tutorial I wish I had. neugierig.org/software/blo...
Tech Notes: Jujutsu tutorial
I wrote the tutorial I wish I had.
neugierig.org
This post from builder.io is very well written: "Everyone's Missing the Point of WebMCP" Though I don't see browser actuation as the only use case, the article is correct that WebMCP creates/helps with a new type of product experience. www.builder.io/blog/webmcp
Builder.io: Collaborative Platform to Build With AI Agents
One codebase for engineers, designers, PMs, and marketers. Everyone works from one source of truth, on brand and in code, with no handoffs to clean up.
builder.io
$100 million+ has now been invested in open source maintainers and projects through GitHub Sponsors. 🎉 Nearly 70,000 maintainers and orgs are supported by more than 280,000 sponsors, from individual devs to Fortune 500 companies. Thank you to everyone helping make open source more sustainable. 💚
$100 million for open source: A milestone built by the community
Celebrating $100 million contributed by the community to the people who build and sustain open source every day.
github.blog
This reminds me of a bug I heard about where X% of the time a particular button would start randomly spinning in place. Turns out the root cause was that there was a small (but plausible) chance of a hash collision across microfrontends, causing a loading spinner style to get applied to the button.
A bonus reason to have `alt` text is so when your images fail, it's funnier.
Cursed documentation: "Before running this command, you may need to request an exception to access the internet."
OMG, Okumura is by far the worst boss fight in #Persona5. It just does everything wrong. * Time-limited, despite being a TBS game. * Time limit advances while mid-cutscene. * Need to take out each wave of enemies at the same time, if one survives, round resets.
Great post (and video) from Brian Treese on a new CSS variable namespacing feature we're trying out in #Angular: briantree.se/angular-css-...
Prevent CSS Variable Collisions Between Angular Apps
CSS custom properties are great for theming, but they can create subtle problems when multiple Angular apps share the same page. If two apps use the same variable name, one can accidentally inherit th...
briantree.se
Very cool to see a serious proposal for dynamically applying HTML fragments! github.com/WICG/declara...
github.com
It's incredible to watch the mind of an experienced penetration tester examining the boundaries of a complex system to look for exploitable vulnerabilities. The acrylic picture frame next to my cat feeder has caused some significant challenges for him.
#JavaScript, what if we could delete properties in an object literal? ```javascript { ...foo, bar: delete, } ``` This is different from `bar: undefined` in that `undefined` leaves a property with the value `undefined` while delete drops the property entirely (`'bar' in result === false`).
OpenAI is winding down its browser, Atlas. Following the wind down of Sora, both shutdowns are good reminders that even if AI makes execution “free”, strategy still matters.
OpenAI is discontinuing ChatGPT Atlas, its standalone desktop browser - 9to5Mac
ChatGPT Atlas, OpenAI’s standalone desktop browser, is being sunset in favor of the new ChatGPT desktop app. OpenAI released an...
9to5mac.com
I had no idea when I picked up #Persona5 how valuable having an Asian partner would be to answering the random cultural questions it throws at me.
I know I've said this before, but I love how good libaom-av1 is at encoding screen recordings. The last video on jakearchibald.com/2026/goldilo... is HD, 60fps, 22 seconds, and 165kb.
The Goldilocks customizable select height
The 'ideal' sizing is more complicated than you think…
jakearchibald.com
I'm delighted with TS 7, but it's hard to be _that_ excited when there's no provision yet for type-checking Vue, Lit, Svelte, etc I'm watching this issue: github.com/microsoft/ty...
API usage patterns for complex editor extensions · Issue #2824 · microsoft/typescript-go
TypeScript 6.0 and earlier allowed loading third-party plugin code directly into TS Server, exposing language service and project system internals for proxying and patching. This was often used in ...
github.com
📣 The moment is here. 📣 TypeScript 7 is officially released! 7️⃣ devblogs.microsoft.com/typescript/a...
📣 The moment is here. 📣 TypeScript 7 is officially released! 7️⃣ devblogs.microsoft.com/typescript/a...
Announcing TypeScript 7.0 - TypeScript
Today we are proud to announce the availability of TypeScript 7, a 10x faster native port of TypeScript! Since its early days, TypeScript has promised to
devblogs.microsoft.com
Building for the web without browser access is a major bottleneck for coding agents. Give your agent access to Chrome. With DevTools for agents it can emulate devices, run Lighthouse audits, and read console errors to catch bugs before you ship → goo.gle/4paxGel #GoogleIOConnect #BuildWithGemini
At Google I/O Connect, we got the chance to record in a professional studio. So I asked my three “Angular Buddies”, @younesjd.dev, Marko Stanimirović, and @manfredsteyer.bsky.social to join me for a conversation about #Angular. Signals, what is still missing, and AI. 🎥 youtu.be/0_NsqGF8gM8
What’s Next for Angular? Google I/O Connect Berlin Roundtable
YouTube video by Rainer Hahnekamp
youtu.be
🌊 Streaming SSR w/ @analogjs.org + @angular.dev Incremental Hydration 🥤 github.com/analogjs/ana...
feat: add support for Streaming SSR by brandonroberts · Pull Request #2419 · analogjs/analog
PR Checklist Adds experimental progressive streaming SSR to Analog. Today render() buffers the whole document and flushes it once the app is stable. This introduces an opt-in renderStream() path th...
github.com