kdwarn: Introducing pgtui, a Postgres TUI client
pgtui is a Postgres TUI client written in Rust that lets users interact with a PostgreSQL database from the terminal. Built with ratatui, sqlx, and the toml crate, it supports browsing relations, paginated data viewing, sorting, filtering with WHERE clauses, inserting and editing records via a terminal editor, deleting records, multi-column primary key support, and managing multiple database connections. The project originated from the idea of writing content in TOML/markdown and storing it in a database.
β€5π1π¨βπ»1
Simplifying Containers with Cloudflare Sandboxes
Kent C. Dodds shares how he replaced a Cloudflare Container-based FFmpeg audio pipeline with Cloudflare Sandboxes, eliminating heartbeat/shutdown coordination plumbing. The new design uses a one-shot sandbox.exec() call directly from the queue worker, keeping R2 credentials in the worker and passing only presigned URLs to the sandbox. The sandbox image is minimal: base Cloudflare sandbox image plus FFmpeg and a shell script. Two production bugs surfaced post-merge β a sandbox ID length limit (63 chars max) and a broken Dockerfile that replaced the required Cloudflare sandbox runtime with a plain Debian base. Both were diagnosed and fixed with help from a Cursor agent and the Cloudflare MCP server. The entire migration, including two PR iterations, took under an hour of the author's own time.
β€5π3
Astro 6.1
Astro 6.1 ships several improvements: codec-specific Sharp image defaults let you configure JPEG, WebP, AVIF, and PNG encoding once in your Astro config instead of per-image. SmartyPants now supports full configuration for non-English typographic conventions like French guillemets and German quotation marks. The i18n fallback routes are now exposed to integrations via the `astro:routes:resolved` hook, and
Astro 6.1 ships sevautomatically includes these fallback pages. Additional fixes include smoother mobile view transitions (skipping animations during native browser swipe gestures), a Vite 8 compatibility warning, React hydration bug fixes, and correct CSRF origin checking behind TLS-terminating reverse proxies.
β€7π1π₯1
Whatβs new in Svelte: April 2026
April 2026 brings several improvements to Svelte and SvelteKit. Highlights include Svelte MCP integration with OpenCode via the sv CLI, support for functions in svelte.config.js for css/runes/customElement options, new exported types from svelte/motion (TweenOptions, SpringOptions, etc.), server-side error boundary support in SvelteKit, and improved type narrowing for page/layout params with matchers. The community showcase features a range of apps, learning resources, and new libraries built with Svelte
β€5π3
Visual Studio Code 1.114
VS Code 1.114 release notes covering two updates: pinned chat sessions now display a pin icon indicator in the sessions list, and a new `${taskVar:name}` variable allows capturing dynamic values from a task's problem matcher output for use in launch configurations.
β€6π5
404 Deno CEO not found
A developer who invested heavily in Deno reflects on the company's recent mass layoffs and broader decline. The post traces Deno's trajectory from its $4.9M seed round and $21M Series A through failed products like Deno Deploy and JSR, arguing that the ecosystem never captured enough developer interest. Key criticisms include inconsistent Deploy performance, confused packaging strategy (HTTP imports vs package.json), and JSR's failure to gain traction compared to alternatives like NPMX. The author speculates about a possible AI pivot or OpenAI acquisition and calls on CEO Ryan Dahl to communicate what comes next for the runtime.
β€3π2
Test IDs are an a11y smell
Using data-testid attributes in tests is an accessibility smell because users can't see or interact with test IDs. Role-based selectors (via Testing Library or Playwright) are superior because they mirror how real users interact with apps, catch inaccessible markup like clickable divs lacking semantic roles, and provide implicit a11y testing. If a role-based selector can't find an element, that's a signal the UI itself is inaccessible. Practical tips include using semantic HTML for implicit ARIA roles, associating form labels, using headings and landmarks, leveraging Testing Playground, and navigating with the keyboard to catch issues.
π¨βπ»4β€3π1πΏ1
Coding Club
Brad Frost visits his daughter's after-school coding club to share his passion for web development. He demos browser DevTools tricks on Minecraft's website, shows his daughter's vibe-coded game, and builds a live interactive webpage using JSON data collected from the kids in real time. The post reflects on the joy of sharing the magic of coding with children, free from professional jargon and business concerns.
β€5π2
Migrate from Cursor to IntelliJ IDEA
JetBrains outlines the benefits of migrating from Cursor to IntelliJ IDEA, highlighting IntelliJ's native AI capabilities, out-of-the-box configuration, and enterprise-ready features. The guide covers how to import settings and recreate familiar workflows, positioning IntelliJ IDEA as a more scalable solution for both beginners and professional developers working on complex projects.
β€10π3
The Claude Code Leak
The accidental leak of Claude Code's source code reveals that the code itself is reportedly low quality, yet the product is beloved. This prompts reflection on five key observations: code quality doesn't determine product success; what matters is what code does, not how it's written; product-market fit trumps implementation details; the copyright situation is ironic given Anthropic's own AI training arguments; and ultimately the leak won't matter because Claude Code's value lies in the seamless integration of model and harness, not the underlying source code. Open-source alternatives like Codex and Gemini CLI haven't captured Claude Code's mindshare, reinforcing that a complete, well-integrated service is what users pay for.
π10β€6π2
GitHub - dexter-xD/Kivo: A minimal, fast, and modern desktop HTTP client built with Rust and Tauri
Kivo is an open source, cross-platform desktop HTTP client built with Rust and Tauri, offering a lightweight alternative to tools like Postman. It features collection and workspace management, tabbed request editing, GraphQL support, history tracking, and dark/light mode. The frontend uses React 19, Vite, and Tailwind CSS. Installation requires Node.js, pnpm, and the Rust toolchain.
β€9π5
Explore union types in C# 15
C# 15 introduces the `union` keyword in .NET 11 Preview 2, allowing developers to declare a closed set of case types with compiler-enforced exhaustive pattern matching. Unlike object, marker interfaces, or abstract base classes, union types don't require related types and prevent external extension. The compiler generates a struct with implicit conversions from each case type and astruct wiproperty. Switch expressions over union types are exhaustive without needing a discard arm, and adding a new case type triggers compiler warnings on incomplete switches. Custom union types are also supported via amarker inteattribute for existing libraries, including a non-boxing access pattern for performance-sensitive scenarios. Related proposals for closed hierarchies and closed enums round out a comprehensive exhaustiveness story for C#.
β€4π4πΏ1
Agent responsibly
Coding agents generate convincing code fast, but passing CI doesn't mean code is safe for production. There's a critical difference between leveraging AI (maintaining full ownership and understanding of output) versus relying on it (shipping whatever the agent produces). The scarce resource is no longer writing code β it's judgment about what's safe to ship. A responsible framework includes self-driving deployments with automatic rollback, continuous validation through load tests and chaos experiments, and executable guardrails that encode operational knowledge as runnable tools rather than documentation. Engineers who thrive will be those who maintain rigorous judgment over what they ship, not those who generate the most code.
β€13π5π¨βπ»1
Moving Railway's Frontend Off Next.js
Railway migrated its entire production frontend from Next.js to Vite + TanStack Router, completing the switch in just two PRs with zero downtime. The motivation was slow builds (10+ minutes, 6 of which were Next.js), heavy reliance on client-side patterns that didn't fit Next.js's server-first model, and hacky layout workarounds on the Pages Router. The migration was split into two phases: first removing all Next.js-specific APIs, then swapping the framework and generating 200+ routes from the original page tree. Nitro was added as the server layer, consolidating redirects, headers, and caching. Results include builds under 2 minutes, instant dev server startup, type-safe routing, and first-class layouts. Trade-offs include losing built-in image optimization (replaced with Fastly) and ecosystem tools like next-seo (replaced with in-house equivalents). TanStack Start's relative immaturity is acknowledged but accepted.
β€5π2
Sorting algorithms
Simon Willison used Claude Artifacts on his phone to build interactive animated demonstrations of common sorting algorithms (bubble sort, selection sort, insertion sort, merge sort, quick sort, heap sort). He then prompted Claude to add Python's Timsort by cloning the CPython repo from GitHub and consulting the source files. A 'run all' button was added to display all algorithms simultaneously in a grid. Notably, when GPT-5.4 Thinking reviewed Claude's Timsort implementation, it found it to be a simplified, Timsort-inspired adaptive mergesort rather than a true Timsort.
β€10π3
I used AI. It worked. I hated it.
A developer with strong anti-genAI views shares their experience using Claude Code to build a certificate generation tool for a learning platform migration. The project succeeded β the Rust/Svelte app is in production β but the process felt miserable. Key observations: TDD with plan-mode kept the model on track, Rust's compile-time safety helped catch hallucinations, a security audit pass found real vulnerabilities (path traversal, timing side-channel in Argon2), and the tool delivered features the author wouldn't have built alone. Despite the functional success, the author warns about the 'human in the loop' problem β the process actively encourages disengagement β and reflects on cognitive dependency, skill atrophy for junior developers, IP theft concerns, and the broader societal harms. The conclusion is nuanced: it works in this narrow domain, the harms still outweigh benefits at scale, but condemning individuals for using it is counterproductive.
β€13π5π¨βπ»1
Baton: Orchestrate your AI coding agents
Baton is a desktop app for orchestrating multiple AI coding agents in parallel. Each agent runs in its own git-isolated workspace, with smart notification badges to flag which agents need attention. It supports Claude Code, Codex, OpenCode, and any terminal-based agent. Features include diff review, file browsing, codebase search, and a built-in MCP server that lets agents spawn new agents. Built by a developer who needed a single unified interface to manage multiple agents without constant window-switching.
β€13π7
Chrome for Developers
Chrome 147 introduces three notable features for web developers. Element-scoped view transitions expose startViewTransition() on arbitrary HTML elements, enabling concurrent and nested transitions while keeping the rest of the page interactive. The new CSS contrast-color() function automatically returns black or white based on which provides higher contrast against a given color, aiding accessibility compliance. The CSS border-shape property allows creating non-rectangular borders using arbitrary shapes like polygons, circles, or shape() values, differing from clip-path by decorating the border rather than clipping the entire element.
π11π3π₯2π¨βπ»2
How We Developed Zeta2 β Zed's Blog
Zed's team details how they built Zeta2, their improved edit prediction model. Key improvements include richer input context (finer-grained edit history, LSP-resolved type/symbol definitions), a switch from Qwen 2.5 Coder (7B) to Seed Coder (8B) as the base model, and a knowledge distillation pipeline using Claude Sonnet as the teacher model. They addressed the 'reversal problem' where the model incorrectly deleted intentional user edits by improving teacher prompting and edit granularity. Training data shifted from synthetic GitHub commit examples to opt-in real user traces from open source repos, yielding ~250-300k training requests per week. The result is a 30% better acceptance rate and faster responses, validated through dogfooding, shadow releases, and gradual rollout.
β€13πΏ6π2
Open source security at Astral
Astral shares the security practices they use to protect their open source tools (Ruff, uv, ty) from supply chain attacks. Key areas covered include: hardening GitHub Actions CI/CD by banning dangerous triggers like pull_request_target, pinning all actions to commit SHAs, limiting permissions, and isolating secrets in deployment environments. For releases, they use Trusted Publishing to eliminate long-lived credentials, Sigstore-based attestations, immutable releases, and two-person approval gates. They also use GitHub Apps to safely handle tasks that GitHub Actions can't do securely, maintain dependency hygiene with Dependabot/Renovate plus cooldowns, and contribute financially and technically to upstream projects. The post includes shareable GitHub rulesets and practical recommendations for other maintainers.
β€9π8π¨βπ»1