Bun Is a Toolkit, Not Just a Runtime
Bun packs a runtime, package manager, bundler, and test runner into one binary. Here is how those four parts fit together and where the seams still show.
Loading…
Topic
81 posts about TypeScript. Every summary links to the original.
See the idea
Bun packs a runtime, package manager, bundler, and test runner into one binary. Here is how those four parts fit together and where the seams still show.
AssemblyScript is a TypeScript-like way to target WebAssembly. This explainer shows how source becomes a sandboxed module, crosses explicit host boundaries, and fits performance-sensitive services.
Angular compiles component templates into executable JavaScript that manages the DOM efficiently. Learn the pipeline from TypeScript decorators through template parsing, code generation, and runtime rendering.
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
Newest first
The post presents a tutorial for building a TypeScript Model Context Protocol (MCP) client that uses Cross App Access (XAA) to securely bridge enterprise apps across trust domains. The sample app is an employee onboarding dashboard that signs in through an identity provider, exchanges identity for an Identity Assertion JWT Authorization Grant (ID-JAG), trades it for an access token, and fetches data from a protected MCP server. The tutorial uses the MCP TypeScript SDK’s CrossAppAccessProvider to automate the four-step XAA flow, including token exchange and retry on 401 responses. Developers test against xaa.dev, a free playground that hosts the IdP, authorization server, and a todo MCP server. The post explains key concepts like ID-JAG claims, separate client credentials per trust domain, and how XAA enables AI agents and enterprise apps to act on behalf of users without OAuth consent screens.
Harbor addresses a gap in Stripe’s AI-assisted workflows: designers needed dynamic information to assess stripe.com designs, but could not always justify a full engineering prototype. Built initially by one engineer in about 40 days, it lets designers describe an idea and use Stripe design systems and realistic mock data to generate shareable, browser-based prototypes without understanding code. Its agent writes a multi-file source tree, while Drydock compiles and renders React and TypeScript in the viewer’s browser; the agent can inspect pages, interact with elements, switch viewports, and iterate before publishing a single snapshot. Since May 2026, more than 3,000 Stripes have created 12,000 prototypes, and Harbor now integrates with other AI tools through MCP and Drydock’s standalone rendering contract, although live data and prototype-scoped state remain future goals.
Anthropic announced the acquisition of Bun, a JavaScript runtime, as Claude Code reached $1 billion in run-rate revenue six months after becoming publicly available. Bun is an all-in-one toolkit that combines a runtime, package manager, bundler, and test runner, and the post says its focus on speed, reliability, and developer experience has made it important to Claude Code’s infrastructure. The companies had collaborated for months, with Bun helping scale Claude Code and contributing to its native installer; Anthropic says the acquisition will bring faster performance, improved stability, and new capabilities. Bun will remain open source and MIT-licensed, while Anthropic continues investing in its JavaScript and TypeScript tooling, which has more than 7 million monthly downloads and over 82,000 GitHub stars.
WebStorm 2026.2 introduces stable TypeScript 7 support for React and Angular projects, while teams can retain older TypeScript versions when infrastructure constraints require them. TypeScript 7 replaces the Node.js-based language service with a Go-based engine intended to provide equivalent or better coding assistance with less work. WebStorm integrates the engine natively rather than through its existing plugin layer, with the largest gains expected in larger codebases. For Angular, its Kotlin-based template transpiler and adapted Volar source-mapping solution translate requests between original and generated code, enabling inline template assistance; on Kibana, project load time fell from about 12 seconds to 3 seconds. React projects can select TypeScript 7 in preferences and use the Go-based engine, while Vue support remains under development.
Stripe’s default financial infrastructure covers common payment, subscription, invoicing, and money-movement needs, but businesses may require custom rules, data models, or operational views. Rather than placing every customization behind webhooks and a separately managed server, Stripe extensibility moves logic, data, and user interface capabilities into Stripe through Scripts, Workflows, Custom Objects, and UI extensions. Scripts handle individual decisions such as TypeScript-based proration, while Workflows orchestrate event-driven or manually initiated sequences involving Stripe APIs, third-party integrations, and custom actions. Custom Objects add typed fields, validation, and relationships for concepts such as Rocket Rides’ Vehicles and Rentals, and UI extensions expose that information and business actions in the Dashboard. In the example, an End Rental action updates status, triggers inspection, and marks a vehicle available, connecting the three dimensions without requiring a separate operational system.
This tutorial builds an Express API for creating and managing Twilio Programmable Video rooms with Node.js and TypeScript. It sets up a project with Express, TypeScript 5, ts-node, node-dev, dotenv, and the Twilio Node.js helper library, while requiring Node.js 20 or 22 LTS. Twilio account credentials are stored in environment variables loaded from .env, which is excluded through .gitignore. The TypeScript configuration compiles strict CommonJS source from src into build and targets ES5; routes call the Rooms API to create rooms and complete them by changing status to completed, disconnecting connected participants. The result is a server-side room-management foundation, with access-token issuance identified as the next step for browser or mobile participants.
Stripe's extensibility SDK was built with AI involved across prototyping, architecture, implementation, and refinement, but the main change was to the development loop rather than code-generation speed. For a custom-object design, one engineer produced a working prototype, demo, and documentation site in roughly two days instead of an estimated two to three weeks, allowing the team to evaluate boundaries and reprioritize the feature for the next major launch. The team then used reviewed, detailed specifications and persistent domain guidance to delegate bounded work, including about twenty ESLint rules covering authoring constraints such as sandbox boundaries, imports, and type safety. AI also helped keep scripts, workflows, SDK generation, runtime enforcement, tooling, documentation, examples, and tests aligned, while human judgment remained responsible for abstractions and trade-offs. The post concludes that AI's leverage came from making more artifacts concrete earlier, enabling earlier feedback and a tighter deliverable.
JetBrains surveyed over 15,000 professional developers globally in 2026 to measure how much production code is generated by AI agents versus manual authoring. On average, respondents report that agents fully write approximately 47% of their code, while 38% involves AI assistance and 27% is written manually. Adoption varies across ecosystems, with Go, JavaScript, and TypeScript developers reporting the highest agentic code generation at 54% to 55%, while C and C++ developers retain the highest manual share. Senior developers lead adoption over juniors, with about a quarter delegating more than 80% of code generation to agents. Cluster analysis categorizes the developer population into agentic coders (31%), AI-assisted coders (47%), and manual coders (23%).
The updated Okta Angular SDK introduces fully standalone architecture, eliminating NgModules and wrapper functions in favor of standalone providers and functional guards. In an Angular v22 sample project, authentication is configured with the provideOktaAuth function without requiring a custom backend. Route security utilizes functional guards, while user and group data fetch flows are handled using rxResource alongside signal inputs. To support dynamic environments without requiring rebuilds or redeployments, the setup implements runtime configuration loading via provideAppInitializer and OktaAuthConfigService. Security is further bolstered by binding access tokens to browser key pairs using Demonstrating Proof of Possession alongside OAuth 2.1 and OpenID Connect protocols.
Skybridge can return a React view alongside structured data from an MCP tool, allowing hosts such as ChatGPT, Claude, and VS Code to render an interface in the conversation. The tutorial scaffolds an MCP app, adds Auth0 through Skybridge’s auth0Provider, and protects the /mcp transport with bearer JWT verification before requests reach tool handlers. Auth0’s default opaque tokens create a compatibility issue because MCP clients send RFC 8707 resource indicators rather than an audience, so Skybridge advertises an authorization endpoint that includes the API audience. The view receives the verified user identity through structuredContent instead of relying on a name supplied by the model. Its additional tool calls use the same authenticated MCP session, and testing proceeds through DevTools, the Playground, real hosts, and deployment.
Resend announces that Laura Beatris is joining its team as a Software Engineer. She previously worked at Clerk and WorkOS, where she shipped authentication products with an emphasis on developer experience, and she has spoken on React, TypeScript, and learning in public. Laura describes a path that began with learning Python from free tutorials, continued through a technical degree and early project-building after repeated internship rejections, and eventually led to Amsterdam in 2021. At Resend, she says she was drawn to products where details matter, a culture of learning in public, and a new problem space for improving her developer-experience judgment; her advice is to learn, create, then teach, because teaching helps knowledge stick.
Model Context Protocol previously required stateful connections between clients and remote servers, creating operational complexity around sticky sessions, message replay, and open streams. The newly released MCP 2026-07-28 specification transitions MCP to a fully stateless protocol alongside updated SDKs across TypeScript, Python, Go, and C#. The protocol eliminates mandatory handshakes and session identifiers from core request paths while enabling servers to run on request-scoped infrastructure like Cloudflare Workers. Interactive elicitation is restructured through Multi Round-Trip Requests, which allow servers to return input requirements without sustaining persistent connections. Standardized headers for method names and improved OAuth authorization mechanisms further enable standard web infrastructure to inspect and manage MCP traffic efficiently.
Yelp migrated a 1.4-million-line JavaScript monorepo from Flow to TypeScript after community support and package ecosystem tooling shifted toward TypeScript. To maintain continuous type safety without code freezes, engineers converted the codebase package by package starting at the deepest internal dependencies. The toolchain used flowts for code conversion and flowgen to turn generated TypeScript declaration files back into Flow-compatible headers for downstream consumers. Webcore dogfooded the tooling across 90 packages, automated tracking through internal metrics, and assisted feature teams with bottleneck conversions. Completed in February 2026, the migration increased overall type coverage from 83.15% to 96.44% and unlocked TypeScript-only tooling.
NorthStar Anesthesia needed a better way for roughly 3,000 physicians and Certified Registered Nurse Anesthetists (CRNAs) to coordinate shifts, because its commercial scheduling platform hid colleagues’ time-off data and its dashboard pilot was not mobile-friendly. Synaptiq built a React TypeScript scheduling app with one software engineer and deployed it through Databricks Apps in a few weeks, using the existing Databricks data foundation, governance, and Microsoft Entra ID single sign-on. The app provides color-coded views by clinician type, facility selection, day/week/month calendars, shift notes, search and filtering, and time-off visibility, with data refreshing every 30 minutes. Daily unique users rose from 75–80 at launch to more than 110 as the first clinician group migrated, while users reported less stress; planned additions include natural-language queries, push notifications, and automated staffing reports.
Logging arbitrary JSON objects often produces unstable messages and deeply nested data that complicate searching, aggregating, and debugging production incidents. Structured logging treats log output as real application data by establishing predictable, consistent schemas across services. Engineers should define stable event names using a domain.action pattern and capture dynamic dimensions with flattened, snake_case attributes formatted in dot notation. Attribute payloads must contain only primitive values or primitive arrays rather than arbitrary objects, utilizing low-cardinality result identifiers and explicit units for numeric measurements. Teams can enforce these structural conventions automatically with linting tools such as ESLint, while routing execution durations and timing measurements to tracing spans.
Checkout Blocks upgraded all five UI extensions from React and Shopify’s legacy Remote UI bridge to remote-dom with Preact and Polaris web components, while moving from JavaScript to TypeScript and API version 2026-01. The migration addressed checkout’s performance sensitivity and Shopify’s requirement that deployments move off versions earlier than 2026-01. A parallel core-next library allowed extensions to transition incrementally, with shared providers, telemetry, hooks, helpers, and rules adapted before legacy core was removed. To meet the remote-dom CLI’s 64KB gzip limit, the team dropped react-reconciler, replaced liquidjs with a smaller parser validated against more than 42,000 lines of merchant configurations, replaced dayjs, and retained markdown-to-jsx through Preact compatibility. Transferred bundles fell 40% to 85%, while weighted ELT improved 8% at P50 and 7% at P90.
Yelp migrated its frontend React monorepo from the deprecated apollo-tooling to GraphQL Codegen to ensure ongoing maintenance and build reliability. Because the monorepo spans over 500 packages with thousands of generated type files and custom nested type imports, the Client Data team prioritized a transparent migration that avoided codebase-wide changes. The team rejected approaches requiring syntax updates or altered import paths, choosing instead to configure GraphQL Codegen and contribute upstream plugin changes so output structures and naming conventions matched the legacy output. Migrating packages incrementally through small pull requests enabled continuous feedback while allowing developers across dozens of teams to maintain their workflows without editing existing code. Completing the migration to GraphQL Codegen v6 simplified Yelp's build tooling, eliminated deprecated dependencies, and left upstream compatibility enhancements available for the wider open-source community.
ClickHouse's @clickhouse/rowbinary is a Node.js reader and writer for the RowBinary, RowBinaryWithNames, and RowBinaryWithNamesAndTypes formats, offering both a generic parser and an accompanying Agent Skill. RowBinary avoids per-row overhead but is difficult to consume in JavaScript because nested types, LEB128 varints, precision-sensitive DateTime64 values, and recursive self-describing types require extensive runtime dispatch; JSON alternatives can also round large UInt64 values. The package provides small, composable, monomorphizable reading primitives, while SKILL.md instructs a coding agent to assemble query-specific parsers with inlined operations and selected policies such as BigInt handling and array materialization. Generated parsers run 1.5–3.4x faster than composing library functions in loops, with a fixed-width benchmark parser reaching 3.41x faster, and produce reviewable source that can be tested and benchmarked like ordinary application code.
CipherStash’s integration for Supabase adds searchable field-level encryption to Postgres applications without requiring a schema change. The encrypted Supabase SDK wrapper encrypts marked fields in the application, stores each value as a JSON payload containing ciphertext and Searchable Encrypted Metadata (SEM), and converts queries to SEM so Postgres can filter, sort, and join without plaintext access. ZeroKMS keeps keys under the customer’s control, while decryption policies determine who can read each value; the source states that neither CipherStash nor Supabase can access plaintext data. The integration supports Supabase.js, Drizzle, and Prisma Next, with a one-command setup, and CipherStash Proxy covers analytics, background workers, and other direct database access through the Postgres wire protocol.
Genkit Agents is an open-source, full-stack foundation for conversational AI and agentic applications, supporting TypeScript, Go, Dart, and Python. The Agents API packages message history, tool loops, streaming, persistence, and frontend communication behind a shared interface: agents can run in process or behind HTTP, and clients use chat() through remoteAgent(). Developers can choose client-managed state or session-store-backed snapshots, resume by session ID, branch from snapshot ID, stream text, custom state, and artifacts, and pause tools for human approval. The framework also supports detached long-running work, specialist delegation, persistence choices including in-memory, file, Firestore, and custom stores, plus an Agent Runner in the Developer UI. The Agents API is in preview for TypeScript and Go, with breaking changes possible in minor releases.
The best engineering reads, once a week.