# websocket

Published articles for websocket.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Gemini Live audio

DevFeed: [Gemini Live audio](<https://devfeed.tech/articles/gemini-live-audio-31180.md>)

Original publisher: [Read original article](<https://simonwillison.net/2026/Sep/15/gemini-live/>)

Author: Simon Willison

Published: 2026-09-15T22:47:07Z

Content type: tutorial

Language: en

Sources: [Simon Willison's Weblog](<https://devfeed.tech/sources/simon-willison-s-weblog.md>)

Topics: [speech-to-speech](<https://devfeed.tech/topics/speech-to-speech.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Google AI](<https://devfeed.tech/topics/google-ai.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Playback](<https://devfeed.tech/topics/playback.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [audio](<https://devfeed.tech/tags/audio.md>), [browser](<https://devfeed.tech/tags/browser.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [gemini-196](<https://devfeed.tech/tags/gemini-196.md>), [generative-ai](<https://devfeed.tech/tags/generative-ai.md>), [generative-ai-1-982](<https://devfeed.tech/tags/generative-ai-1-982.md>), [google](<https://devfeed.tech/tags/google.md>), [google-416](<https://devfeed.tech/tags/google-416.md>), [llm-release](<https://devfeed.tech/tags/llm-release.md>), [llm-release-231](<https://devfeed.tech/tags/llm-release-231.md>), [llms](<https://devfeed.tech/tags/llms.md>), [llms-1-948](<https://devfeed.tech/tags/llms-1-948.md>), [model](<https://devfeed.tech/tags/model.md>), [models](<https://devfeed.tech/tags/models.md>), [openai](<https://devfeed.tech/tags/openai.md>), [playback](<https://devfeed.tech/tags/playback.md>), [release](<https://devfeed.tech/tags/release.md>), [speech-to-speech](<https://devfeed.tech/tags/speech-to-speech.md>), [speech-to-text](<https://devfeed.tech/tags/speech-to-text.md>), [speech-to-text-21](<https://devfeed.tech/tags/speech-to-text-21.md>), [tools](<https://devfeed.tech/tags/tools.md>), [tools-78](<https://devfeed.tech/tags/tools-78.md>), [ui](<https://devfeed.tech/tags/ui.md>), [voice](<https://devfeed.tech/tags/voice.md>), [websocket](<https://devfeed.tech/tags/websocket.md>), [websockets](<https://devfeed.tech/tags/websockets.md>), [websockets-21](<https://devfeed.tech/tags/websockets-21.md>)

### AI overview

The article describes a browser-based web UI for trying Google's Gemini 3.8 Live and Gemini 3.8 Live Extended Thinking speech-to-speech models. The implementation supports model and voice selection, an optional system prompt, voice conversations, and interruption while the model is speaking. It uses no libraries, connecting to a WebSocket endpoint and using the Web Audio API for capture and playback.

### Source excerpt

Tool: Gemini Live audio Google released Gemini 3.8 Live and 3.8 Live Extended Thinking today - two new speech-to-speech models that are a similar shape to OpenAI's GPT-Live family. I pointed GPT-6 Astra Extra High at the documentation and had it build me this web UI for trying out the new models. You can select a model and voice preset, enter an optional system prompt and then start a voice conversation through your browser, including the ability to interrupt the model while it is talking. The implementation uses no libraries. It connects to the wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1alpha.GenerativeService.BidiGenerateContent?key=... WebSocket endpoint and uses a Web Audio API AudioContext for both capture and playback. Here's the Gemini Live tutorial for getting started with that WebSockets API. Tags: google, tools, websockets, generative-ai, llms, gemini, llm-release, speech-to-text

## Gemini 3.8 Live models now available on AI Gateway

DevFeed: [Gemini 3.8 Live models now available on AI Gateway](<https://devfeed.tech/articles/gemini-3-8-live-models-now-available-on-ai-gateway-26924.md>)

Original publisher: [Read original article](<https://vercel.com/changelog/gemini-3-8-live-models-now-available-on-ai-gateway>)

Author: Jerilyn Zheng

Published: 2026-09-15T00:00:00Z

Content type: release

Language: en

Sources: [Vercel News](<https://devfeed.tech/sources/vercel-news.md>)

Topics: [real-time](<https://devfeed.tech/topics/real-time.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [API](<https://devfeed.tech/topics/api.md>), [Google](<https://devfeed.tech/topics/google.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [api](<https://devfeed.tech/tags/api.md>), [cost](<https://devfeed.tech/tags/cost.md>), [failover](<https://devfeed.tech/tags/failover.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [google](<https://devfeed.tech/tags/google.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [realtime](<https://devfeed.tech/tags/realtime.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

Vercel announces that Google's Gemini 3.8 Live and Gemini 3.8 Live Extended Thinking models are available on AI Gateway. The models support real-time spoken interactions, audio and visual grounding, multilingual switching, background tool calls, and parallel reasoning through the AI SDK's realtime API.

### Source excerpt

Gemini 3.8 Live and Gemini 3.8 Live Extended Thinking from Google are now available on AI Gateway. Both models support real-time spoken interactions for voice assistants, conversational experiences, and applications that respond through audio. google/gemini-3.8-live supports real-time audio, visual grounding, automatic switching across 97 languages, and background tool calls while the conversation continues. google/gemini-3.8-live-extended-thinking adds multi-step reasoning that runs in parallel with speech, allowing it to acknowledge requests and narrate progress without interrupting the conversation. Use either model through the AI SDK's realtime API. Install the Gateway provider and a WebSocket client: Mint a short-lived token, open the WebSocket, and use the model adapter to serialize and parse realtime events: See the realtime quickstart for more details on realtime events and WebSocket connections. Try Gemini 3.8 Live or Gemini 3.8 Live Extended Thinking in the model playground. AI Gateway provides a unified API for calling models, tracking usage and cost, and configuring retries, failover, and performance optimizations for higher-than-provider uptime. Read more

## How to Connect Your Twilio Agent to External APIs in Python

DevFeed: [How to Connect Your Twilio Agent to External APIs in Python](<https://devfeed.tech/articles/how-to-connect-your-twilio-agent-to-external-apis-in-python-16103.md>)

Original publisher: [Read original article](<https://www.twilio.com/en-us/blog/developers/tutorials/product/how-to-connect-twilio-agent-to-external-apis-python>)

Author: Amanda Lange, Dylan Frankcom

Published: 2026-09-12T00:00:00Z

Content type: tutorial

Language: en

Sources: [Twilio Blog](<https://devfeed.tech/sources/twilio-blog.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [API](<https://devfeed.tech/topics/api.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [voice ai](<https://devfeed.tech/topics/voice-ai.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [OpenAI](<https://devfeed.tech/topics/openai.md>)

Tags: [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [apis](<https://devfeed.tech/tags/apis.md>), [developer-insights](<https://devfeed.tech/tags/developer-insights.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [ngrok](<https://devfeed.tech/tags/ngrok.md>), [openai](<https://devfeed.tech/tags/openai.md>), [python](<https://devfeed.tech/tags/python.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [visual-studio-code](<https://devfeed.tech/tags/visual-studio-code.md>), [voice-ai](<https://devfeed.tech/tags/voice-ai.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

This tutorial explains how to connect a Twilio voice agent to an external REST API using Python and FastAPI. It demonstrates using LLM tool calling to fetch live data and take actions on a caller's behalf.

### Source excerpt

Learn how to connect a Twilio voice agent to an external API using Python, so it can fetch real-time data and take action on a caller's behalf.

## Building EasyReply: How We Used Laravel to Unify Customer Support

DevFeed: [Building EasyReply: How We Used Laravel to Unify Customer Support](<https://devfeed.tech/articles/building-easyreply-how-we-used-laravel-to-unify-customer-support-22287.md>)

Original publisher: [Read original article](<https://laravel-news.com/easyreply-laravel-shared-inbox>)

Author: Emma Blake

Published: 2026-09-11T16:06:51Z

Content type: article

Language: en

Sources: [Laravel](<https://devfeed.tech/sources/laravel.md>)

Topics: [Laravel](<https://devfeed.tech/topics/laravel.md>), [Support](<https://devfeed.tech/topics/support.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [React](<https://devfeed.tech/topics/react.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [PHP](<https://devfeed.tech/topics/php.md>), [Single-page application (SPA)](<https://devfeed.tech/topics/spa.md>), [email](<https://devfeed.tech/topics/email.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Instagram](<https://devfeed.tech/topics/instagram.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [api](<https://devfeed.tech/tags/api.md>), [development](<https://devfeed.tech/tags/development.md>), [email](<https://devfeed.tech/tags/email.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [instagram](<https://devfeed.tech/tags/instagram.md>), [laravel](<https://devfeed.tech/tags/laravel.md>), [queue](<https://devfeed.tech/tags/queue.md>), [react](<https://devfeed.tech/tags/react.md>), [sponsor](<https://devfeed.tech/tags/sponsor.md>), [support](<https://devfeed.tech/tags/support.md>), [ui](<https://devfeed.tech/tags/ui.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

This article explains how EasyReply uses Laravel to combine email, Slack, Instagram, and WhatsApp conversations in an AI-powered shared inbox. It describes Laravel Reverb for real-time updates, Inertia and React for the frontend, and queues for background processing.

### Source excerpt

EasyReply pulls email, Slack, Instagram, and WhatsApp into one AI shared inbox, built on Laravel with Reverb, Inertia, React, and queues. The post Building EasyReply: How We Used Laravel to Unify Customer Support appeared first on Laravel News. Join the Laravel Newsletter to get Laravel articles like this directly in your inbox.

## Build Voice AI Experiences with Twilio and GPT-Live-1 in the OpenAI API

DevFeed: [Build Voice AI Experiences with Twilio and GPT-Live-1 in the OpenAI API](<https://devfeed.tech/articles/build-voice-ai-experiences-with-twilio-and-gpt-live-1-in-the-openai-api-16104.md>)

Original publisher: [Read original article](<https://www.twilio.com/en-us/blog/developers/twilio-openai-gpt-live-1-api-resources>)

Author: Lenore Files

Published: 2026-09-10T00:00:00Z

Content type: tutorial

Language: en

Sources: [Twilio Blog](<https://devfeed.tech/sources/twilio-blog.md>)

Topics: [voice ai](<https://devfeed.tech/topics/voice-ai.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [API](<https://devfeed.tech/topics/api.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [OpenAI](<https://devfeed.tech/topics/openai.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [api](<https://devfeed.tech/tags/api.md>), [developer-insights](<https://devfeed.tech/tags/developer-insights.md>), [openai](<https://devfeed.tech/tags/openai.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>), [voice](<https://devfeed.tech/tags/voice.md>), [voice-ai](<https://devfeed.tech/tags/voice-ai.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

This tutorial article explains how to build real-time voice AI applications by connecting Twilio Agent Connect with OpenAI's GPT-Live-1 through the OpenAI API. It provides tutorials, sample applications, SDK support, and documentation for voice assistants and outbound voice agents using Node.js and Python.

### Source excerpt

Build real-time voice AI Agents with Twilio and GPT-Live-1 in the OpenAI API with these tutorials, sample apps, and more.

## 🔌 Stripe's Proxy Was Opening Hundreds Of Thousands Of Connections

DevFeed: [🔌 Stripe's Proxy Was Opening Hundreds Of Thousands Of Connections](<https://devfeed.tech/articles/stripe-s-proxy-was-opening-hundreds-of-thousands-of-connections-17943.md>)

Original publisher: [Read original article](<https://read.bytesizeddesign.com/p/stripe-replaced-envoy-mesh-proxy>)

Author: Byte-Sized Design

Published: 2026-09-08T15:36:04Z

Content type: article

Language: en

Sources: [Byte-Sized Design](<https://devfeed.tech/sources/byte-sized-design.md>)

Topics: [stripe](<https://devfeed.tech/topics/stripe.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [servers](<https://devfeed.tech/topics/servers.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>)

Tags: [go](<https://devfeed.tech/tags/go.md>), [latency](<https://devfeed.tech/tags/latency.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [servers](<https://devfeed.tech/tags/servers.md>), [stripe](<https://devfeed.tech/tags/stripe.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

The article explains why Stripe replaced Envoy with its own Go proxy, mesh-proxy. It attributes the change to connection scaling problems and reports lower CPU usage and latency, fewer connections, and additional burst capacity from Ruby load balancing.

### Source excerpt

A Go proxy, one connection per host, and 3,000 days of latency saved every day

## Integrate Deepgram Flux with Twilio's Conversation Relay

DevFeed: [Integrate Deepgram Flux with Twilio's Conversation Relay](<https://devfeed.tech/articles/integrate-deepgram-flux-with-twilio-s-conversation-relay-16090.md>)

Original publisher: [Read original article](<https://www.twilio.com/en-us/blog/developers/tutorials/integrations/deepgram-flux-twilio-conversation-relay>)

Author: Dhruv Patel

Published: 2026-09-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [Twilio Blog](<https://devfeed.tech/sources/twilio-blog.md>)

Topics: [flux](<https://devfeed.tech/topics/flux.md>), [asr](<https://devfeed.tech/topics/asr.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>)

Tags: [developer-insights](<https://devfeed.tech/tags/developer-insights.md>), [flux](<https://devfeed.tech/tags/flux.md>), [latency](<https://devfeed.tech/tags/latency.md>), [node](<https://devfeed.tech/tags/node.md>), [speech](<https://devfeed.tech/tags/speech.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [transcription](<https://devfeed.tech/tags/transcription.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

This tutorial shows how to integrate Deepgram Flux with Twilio's Conversation Relay in Node.js. Flux combines speech transcription and turn detection, with configurable end-of-turn confidence, and is described as reducing response latency and false interruptions.

### Source excerpt

Integrate Deepgram Flux with Twilio ConversationRelay in Node.js for faster turn detectio, and tunable end-of-turn control.

## Compose & kotlinx.html

DevFeed: [Compose & kotlinx.html](<https://devfeed.tech/articles/compose-kotlinx-html-20925.md>)

Original publisher: [Read original article](<https://jakewharton.com/compose-and-kotlinx-html/>)

Published: 2026-08-26T00:00:00Z

Content type: article

Language: en

Sources: [Jake Wharton](<https://devfeed.tech/sources/jake-wharton.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [HTML](<https://devfeed.tech/topics/html.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>), [ui](<https://devfeed.tech/topics/ui.md>), [client](<https://devfeed.tech/topics/client.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [compose](<https://devfeed.tech/tags/compose.md>), [html](<https://devfeed.tech/tags/html.md>), [sse](<https://devfeed.tech/tags/sse.md>), [ui](<https://devfeed.tech/tags/ui.md>), [web](<https://devfeed.tech/tags/web.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

The article presents an approach for keeping server-rendered HTML admin pages fresh without abandoning static HTML. It uses Molecule on the JVM to observe state, kotlinx.html to render HTML fragments, Ktor to stream updates over WebSockets, and client-side JavaScript with Idiomorph to patch the DOM. It also discusses using server-sent events for unidirectional updates and the scalability tradeoffs of long-lived connections.

### Source excerpt

Let's render a simple page with Ktor server and kotlinx.html: get("/users.html") { call.respondHtml { myLayout(title = "Users") { userList( users = db.users.value, ) } } } A reusable myLayout provides scaffolding, userList encapsulates the specific page content, and db.users is a StateFlow<List<User>> from the persistence layer. I've been doing this over and over to create admin dashboard pages for a project. It works great right up until you leave it open for a minute or two, and its content becomes stale. Client-side frameworks exist within the ecosystem to "solve" this, such as Compose for HTML or Compose UI for Web. If your house has a leaky pipe you can also "solve" that by moving to a new house. I simply will not bring myself to abandoning HTML let alone delivery of static HTML in the response. Efforts are underway to adapt Compose for HTML for so-called isomorphic rendering. This would involve performing the initial composition on the server to produce the static HTML for the HTTP response. Then, client side as JS, mounting the same rendering code to reproduce the DOM tree and incrementally update it for future state changes. Tomorrow's Compose today Instead of waiting, I brought my own Compose on the JVM from home in the form of Molecule. Instead of managing a UI tree over time, Molecule manages a single piece of state over time. We can use that to render an HTML fragment on the server as a string, and then stream that to the client. webSocket("/users.ws") { launchMolecule(Immediate) { val users by db.users.collectAsState() createHTML().userList( users = users, ) }.collect(::send) } That's it. Ktor gives us the webSocket, Molecule runs the StateFlow<String> which is piped into it, and kotlinx.html renders the HTML fragment of our existing content function. In the initial HTML payload you need to wire this up somehow. Something like: script { unsafe { +""" |const content = document.getElementById("content"); |const socket = new WebSocket("ws://" + location.ho

## 🍔🧠 Why Linear Feels So Fast (Technical Breakdown)

DevFeed: [🍔🧠 Why Linear Feels So Fast (Technical Breakdown)](<https://devfeed.tech/articles/why-linear-feels-so-fast-technical-breakdown-18139.md>)

Original publisher: [Read original article](<https://hungrymindsdev.substack.com/p/why-linear-feels-so-fast-technical>)

Author: Alexandre Zajac

Published: 2026-07-20T15:30:40Z

Content type: article

Language: en

Sources: [Hungry Minds](<https://devfeed.tech/sources/hungry-minds.md>)

Topics: [Caching](<https://devfeed.tech/topics/caching.md>), [Local-First](<https://devfeed.tech/topics/local-first.md>), [client](<https://devfeed.tech/topics/client.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Vite](<https://devfeed.tech/topics/vite.md>), [npm](<https://devfeed.tech/topics/npm.md>)

Tags: [cache](<https://devfeed.tech/tags/cache.md>), [caching](<https://devfeed.tech/tags/caching.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [linear](<https://devfeed.tech/tags/linear.md>), [local-first](<https://devfeed.tech/tags/local-first.md>), [npm](<https://devfeed.tech/tags/npm.md>), [technical](<https://devfeed.tech/tags/technical.md>), [vite](<https://devfeed.tech/tags/vite.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

A technical breakdown of how Linear aims to feel fast by minimizing network latency. It describes local-first state updates, asynchronous synchronization over WebSocket, code splitting, parallel module loading, service-worker precaching, and separately cached dependency chunks.

### Source excerpt

PLUS: Virtual memory explained 👨💻, Spark retires vector DBs 💾, Backprop explained simply 🧮

## Starlette vs FastAPI: what FastAPI actually adds

DevFeed: [Starlette vs FastAPI: what FastAPI actually adds](<https://devfeed.tech/articles/starlette-vs-fastapi-what-fastapi-actually-adds-20058.md>)

Original publisher: [Read original article](<https://www.honeybadger.io/blog/starlette-vs-fastapi/>)

Author: Farhan Hasin Chowdhury

Published: 2026-07-20T07:00:00Z

Content type: comparison

Language: en

Sources: [Honeybadger](<https://devfeed.tech/sources/honeybadger.md>)

Topics: [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Pydantic](<https://devfeed.tech/topics/pydantic.md>), [ASGI](<https://devfeed.tech/topics/asgi.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Dependency injection](<https://devfeed.tech/topics/dependency-injection.md>), [Python](<https://devfeed.tech/topics/python.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Cross-origin resource sharing (CORS)](<https://devfeed.tech/topics/cors.md>)

Tags: [cors](<https://devfeed.tech/tags/cors.md>), [data-validation](<https://devfeed.tech/tags/data-validation.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [frameworks](<https://devfeed.tech/tags/frameworks.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [python](<https://devfeed.tech/tags/python.md>), [python-articles](<https://devfeed.tech/tags/python-articles.md>), [starlette](<https://devfeed.tech/tags/starlette.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

This comparison explains how FastAPI builds on Starlette and Pydantic. Starlette provides the ASGI-based HTTP layer, while Pydantic handles typed data validation; FastAPI adds type-driven parameter parsing, dependency injection, and automatic OpenAPI documentation. It also discusses when using raw Starlette may be preferable.

### Source excerpt

FastAPI is built on Starlette, but most developers never look at what's underneath. Learn what FastAPI actually adds on top of Starlette and Pydantic, what comes straight from Starlette, and when dropping down to raw Starlette makes more sense than pulling in the full stack.

## How Discord Fans Out One Message to a Million Users

DevFeed: [How Discord Fans Out One Message to a Million Users](<https://devfeed.tech/articles/how-discord-fans-out-one-message-to-a-million-users-18023.md>)

Original publisher: [Read original article](<https://blog.levelupcoding.com/p/discord-case-study-one-message-million-users>)

Author: Nikki Siapno

Published: 2026-07-07T13:22:26Z

Content type: article

Language: en

Sources: [Level Up Coding System Design Newsletter](<https://devfeed.tech/sources/level-up-coding-system-design-newsletter.md>)

Topics: [Discord](<https://devfeed.tech/topics/discord.md>), [Publish-subscribe pattern](<https://devfeed.tech/topics/pubsub.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [case-study](<https://devfeed.tech/tags/case-study.md>), [channel](<https://devfeed.tech/tags/channel.md>), [discord](<https://devfeed.tech/tags/discord.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [permission](<https://devfeed.tech/tags/permission.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [scale](<https://devfeed.tech/tags/scale.md>), [server](<https://devfeed.tech/tags/server.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

This case study explains how Discord fans out a single message to many online users. It describes a real-time backend built around pub/sub, guild routing processes, permission checks, session processes, and WebSocket delivery.

### Source excerpt

A case study in fanout, bottlenecks, and the engineering decisions behind Discord's scale.

## Choose your fighter: benchmarking 5 WebSocket servers for Node.js

DevFeed: [Choose your fighter: benchmarking 5 WebSocket servers for Node.js](<https://devfeed.tech/articles/choose-your-fighter-benchmarking-5-websocket-servers-for-node-js-19781.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/choose-your-fighter-benchmarking-5-websocket-servers-for-nodejs>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-06-24T00:00:00Z

Content type: comparison

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [Socket.IO](<https://devfeed.tech/topics/socket-io.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [Latency](<https://devfeed.tech/topics/latency.md>)

Tags: [benchmark](<https://devfeed.tech/tags/benchmark.md>), [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [frontend-real-time](<https://devfeed.tech/tags/frontend-real-time.md>), [latency](<https://devfeed.tech/tags/latency.md>), [network](<https://devfeed.tech/tags/network.md>), [node](<https://devfeed.tech/tags/node.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-scale](<https://devfeed.tech/tags/performance-scale.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

Evil Martians compare five WebSocket server options for Node.js: Socket.io, Socket.io with Connection State Recovery, uWebSockets.js, AnyCable OSS, and AnyCable Pro. The benchmark finds similar raw latency at 10,000 subscribers, while resilience under network drops, reconnect storms, and broadcast load separates the systems. AnyCable delivered all messages during simulated drops and led broadcast throughput; the other systems showed different recovery, connection-capacity, or message-loss trade-offs.

### Source excerpt

Evil Martians benchmarked five WebSocket servers for Node.js: Socket.io, uWebSockets.js, and AnyCable (OSS and Pro). How we caught our own load generator lying, and how to make WebSocket benchmark numbers honest.

## WebSockets, gRPC, And GraphQL In The Core

DevFeed: [WebSockets, gRPC, And GraphQL In The Core](<https://devfeed.tech/articles/websockets-grpc-and-graphql-in-the-core-19670.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/websockets-grpc-and-graphql/>)

Author: Shai Almog

Published: 2026-06-07T00:00:00Z

Content type: tutorial

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [WebSocket](<https://devfeed.tech/topics/websocket.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [gRPC](<https://devfeed.tech/topics/grpc.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [API](<https://devfeed.tech/topics/api.md>), [Code generation](<https://devfeed.tech/topics/code-generation.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

A hands-on tutorial covering WebSockets, typed GraphQL clients, and typed gRPC clients in the core framework. It explains how to build a real-time chat, generate typed clients from GraphQL schemas and proto files, and use WebSocket subscriptions.

### Source excerpt

A hands-on walk through the three connectivity features that landed together this week, building a live chat over the new core WebSocket API and typed clients from a GraphQL schema and a proto file.

## Sandboxed AI bots: give capabilities, not credentials

DevFeed: [Sandboxed AI bots: give capabilities, not credentials](<https://devfeed.tech/articles/sandboxed-ai-bots-give-capabilities-not-credentials-30713.md>)

Original publisher: [Read original article](<https://www.windmill.dev/blog/discord-bot-stripe-sandboxed-ai>)

Author: Alex Petric

Published: 2026-04-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Windmill Blog](<https://devfeed.tech/sources/windmill-blog.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [Discord](<https://devfeed.tech/topics/discord.md>), [Discord bot](<https://devfeed.tech/topics/discord-bot.md>), [stripe](<https://devfeed.tech/topics/stripe.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [HashiCorp Vault](<https://devfeed.tech/topics/hashicorp-vault.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-bots](<https://devfeed.tech/tags/ai-bots.md>), [ai-discord-websocket-triggers](<https://devfeed.tech/tags/ai-discord-websocket-triggers.md>), [api-keys](<https://devfeed.tech/tags/api-keys.md>), [credentials](<https://devfeed.tech/tags/credentials.md>), [discord](<https://devfeed.tech/tags/discord.md>), [secret-storage](<https://devfeed.tech/tags/secret-storage.md>), [secrets](<https://devfeed.tech/tags/secrets.md>), [security](<https://devfeed.tech/tags/security.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [stripe](<https://devfeed.tech/tags/stripe.md>), [websocket](<https://devfeed.tech/tags/websocket.md>), [websocket-triggers](<https://devfeed.tech/tags/websocket-triggers.md>)

### AI overview

This tutorial shows how to build a Discord bot that answers billing questions through Stripe while keeping API keys hidden from an AI agent. Windmill tools retrieve credentials at runtime from encrypted resource storage, and the agent receives only tool capabilities. The sandbox also provides process, filesystem, CPU, memory, and optional network isolation.

### Source excerpt

How do I build an AI Discord bot that accesses Stripe without leaking API keys? Use Windmill sandboxed tools to give the AI capabilities, not credentials.

## CLI 2.4.0: iOS 26 and more devices on Maestro Cloud

DevFeed: [CLI 2.4.0: iOS 26 and more devices on Maestro Cloud](<https://devfeed.tech/articles/cli-2-4-0-ios-26-and-more-devices-on-maestro-cloud-22901.md>)

Original publisher: [Read original article](<https://maestro.dev/blog/maestro-cli-2-4-0>)

Author: Proksh Luthra

Published: 2026-04-03T06:43:00Z

Content type: release

Language: en

Sources: [mobile.dev - Medium](<https://devfeed.tech/sources/mobile-dev-medium.md>)

Topics: [Command-line interface](<https://devfeed.tech/topics/cli.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Android](<https://devfeed.tech/topics/android.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [iphone](<https://devfeed.tech/topics/iphone.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [apple](<https://devfeed.tech/tags/apple.md>), [cli](<https://devfeed.tech/tags/cli.md>), [ios-26](<https://devfeed.tech/tags/ios-26.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [tests](<https://devfeed.tech/tags/tests.md>), [update](<https://devfeed.tech/tags/update.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

Maestro CLI 2.4.0 adds iOS 26 support locally and on Maestro Cloud, expands the available Apple device catalog, and introduces commands that return device values for CLI flags. It also updates device OS formatting, adds web test improvements, and includes fixes and performance improvements.

### Source excerpt

You can now test across a much wider range of Apple devices and on iOS 26.

## A look back at 2025 demo development at ClickHouse

DevFeed: [A look back at 2025 demo development at ClickHouse](<https://devfeed.tech/articles/a-look-back-at-2025-demo-development-at-clickhouse-5224.md>)

Original publisher: [Read original article](<https://clickhouse.com/blog/demo-review-2025>)

Author: Lionel Palacin

Published: 2025-12-30T00:00:00Z

Content type: article

Language: en

Sources: [ClickHouse Blog](<https://devfeed.tech/sources/clickhouse-blog.md>)

Topics: [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [Demo](<https://devfeed.tech/topics/demo.md>), [Development](<https://devfeed.tech/topics/development.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [data](<https://devfeed.tech/topics/data.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [analytics](<https://devfeed.tech/tags/analytics.md>), [apis](<https://devfeed.tech/tags/apis.md>), [applications](<https://devfeed.tech/tags/applications.md>), [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [data](<https://devfeed.tech/tags/data.md>), [demo](<https://devfeed.tech/tags/demo.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [examples](<https://devfeed.tech/tags/examples.md>), [go](<https://devfeed.tech/tags/go.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [speed](<https://devfeed.tech/tags/speed.md>), [ui](<https://devfeed.tech/tags/ui.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

The article reviews notable ClickHouse demos developed in 2025, emphasizing how hands-on applications make database performance tangible. It describes StockHouse, a real-time market analytics application that streams stock and crypto data through WebSocket APIs, ingests it into ClickHouse, and updates a dashboard within milliseconds.

### Source excerpt

Have a look at some of the most notable demos we built this year, and how they help people feel the speed of ClickHouse through real, hands-on examples.

## A refreshing take: using serverside rendering to reduce fragile DOM state

DevFeed: [A refreshing take: using serverside rendering to reduce fragile DOM state](<https://devfeed.tech/articles/a-refreshing-take-using-serverside-rendering-to-reduce-fragile-dom-state-29998.md>)

Original publisher: [Read original article](<https://engineering.freeagent.com/2025/10/17/a-refreshing-take-using-serverside-rendering-to-reduce-fragile-dom-state/>)

Author: Simon Fish

Published: 2025-10-17T08:33:59Z

Content type: article

Language: en

Sources: [FreeAgent](<https://devfeed.tech/sources/freeagent.md>)

Topics: [Hotwire](<https://devfeed.tech/topics/hotwire.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [Stimulus](<https://devfeed.tech/topics/stimulus.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>), [tbox](<https://devfeed.tech/topics/tbox.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [development](<https://devfeed.tech/tags/development.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [hotwire](<https://devfeed.tech/tags/hotwire.md>), [html-elements](<https://devfeed.tech/tags/html-elements.md>), [js](<https://devfeed.tech/tags/js.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby-on-rails](<https://devfeed.tech/tags/ruby-on-rails.md>), [stimulus](<https://devfeed.tech/tags/stimulus.md>), [streams](<https://devfeed.tech/tags/streams.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

This article examines FreeAgent's use of server-side rendering with Hotwire, Turbo, Stimulus, and Rails to reduce fragile DOM state. It explains how Turbo Streams and Action Cable can update browser pages asynchronously, contrasting these behaviors with the original DOM-manipulation actions.

### Source excerpt

Hotwire is central to how we drive the frontend at FreeAgent, and Action Cable allows us to send Turbo Streams as users browse the site, adding a layer of richness to the user experience.

## Announcing Apollo iOS 2.0

DevFeed: [Announcing Apollo iOS 2.0](<https://devfeed.tech/articles/announcing-apollo-ios-2-0-23133.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/announcing-apollo-ios-2-0>)

Author: Anthony Miller

Published: 2025-10-07T07:00:46Z

Content type: release

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [apple](<https://devfeed.tech/tags/apple.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [release](<https://devfeed.tech/tags/release.md>), [structured-concurrency](<https://devfeed.tech/tags/structured-concurrency.md>), [swift](<https://devfeed.tech/tags/swift.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

Apollo iOS 2.0 is a release of Apollo's Swift client rebuilt around Swift's modern concurrency model. It introduces concurrency-aware APIs, streamlined layers, and updated platform and distribution requirements, including the retirement of CocoaPods support. GraphQL subscriptions currently support HTTP only; WebSocket support is planned for a future minor release.

### Source excerpt

Apollo iOS 2.0 is here, and it's the biggest reimagining of our Swift client yet. Built from the ground up for Swift's modern concurrency model, this release delivers snappier performance, stronger type guarantees, and a cleaner developer experience for teams shipping GraphQL-powered apps across Apple platforms. Improved APIs Swift's structured concurrency and the / syntax weren't just sugar, they introduced an entirely new mental model for reasoning about work, isolation, and cancellation.

## What's New in Apache Pulsar 4.1

DevFeed: [What's New in Apache Pulsar 4.1](<https://devfeed.tech/articles/what-s-new-in-apache-pulsar-4-1-12765.md>)

Original publisher: [Read original article](<https://pulsar.apache.org/blog/2025/09/09/announcing-apache-pulsar-4-1/>)

Author: David Kjerrumgaard

Published: 2025-09-09T00:00:00Z

Content type: release

Language: en

Sources: [Apache Pulsar Blog](<https://devfeed.tech/sources/apache-pulsar-blog.md>)

Topics: [Apache Pulsar](<https://devfeed.tech/topics/pulsar.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Security](<https://devfeed.tech/topics/security.md>), [Grafana Cloud Metrics](<https://devfeed.tech/topics/grafana-cloud-metrics.md>), [Resilience](<https://devfeed.tech/topics/resilience.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>)

Tags: [announce](<https://devfeed.tech/tags/announce.md>), [apache](<https://devfeed.tech/tags/apache.md>), [api](<https://devfeed.tech/tags/api.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [bug-fixes](<https://devfeed.tech/tags/bug-fixes.md>), [cli](<https://devfeed.tech/tags/cli.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [java](<https://devfeed.tech/tags/java.md>), [launch](<https://devfeed.tech/tags/launch.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [new-features](<https://devfeed.tech/tags/new-features.md>), [observability](<https://devfeed.tech/tags/observability.md>), [performance](<https://devfeed.tech/tags/performance.md>), [release](<https://devfeed.tech/tags/release.md>), [resilience](<https://devfeed.tech/tags/resilience.md>), [schema](<https://devfeed.tech/tags/schema.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [security](<https://devfeed.tech/tags/security.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

Apache Pulsar 4.1 is a feature release with 19 approved Pulsar Improvement Proposals, bug fixes, security updates, and performance improvements. Highlights include stronger WebSocket token security, enhanced encryption handling, client configuration and resilience improvements, third-party schema registry support, Java 17 as the minimum for the Java client SDK, improved storage management, monitoring, and topic policies.

### Source excerpt

The Apache Pulsar community is thrilled to announce the launch of Apache Pulsar 4.1, a significant feature release!

## SignalR Scalability: Scaling Real-Time SignalR Applications on Heroku

DevFeed: [SignalR Scalability: Scaling Real-Time SignalR Applications on Heroku](<https://devfeed.tech/articles/signalr-scalability-scaling-real-time-signalr-applications-on-heroku-26492.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/scaling-real-time-signalr-applications-on-heroku/>)

Author: Andrew Fawcett

Published: 2025-05-21T16:26:16Z

Content type: tutorial

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [SignalR](<https://devfeed.tech/topics/signalr.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Heroku](<https://devfeed.tech/topics/heroku.md>), [Redis](<https://devfeed.tech/topics/redis.md>), [.NET](<https://devfeed.tech/topics/net.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>)

Tags: [developer-tools](<https://devfeed.tech/tags/developer-tools.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [guide](<https://devfeed.tech/tags/guide.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [net](<https://devfeed.tech/tags/net.md>), [performance-optimization](<https://devfeed.tech/tags/performance-optimization.md>), [redis](<https://devfeed.tech/tags/redis.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [signalr](<https://devfeed.tech/tags/signalr.md>), [sticky-sessions](<https://devfeed.tech/tags/sticky-sessions.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

A Heroku tutorial explains how to scale a real-time .NET SignalR application across multiple servers or dynos. It covers using a Redis backplane and sticky sessions to maintain stable WebSocket connections.

### Source excerpt

SignalR makes it easy to add real-time functionality to .NET web applications--things like live chat, instant notifications, or interactive dashboards. But what happens when your app starts to grow? A single server can only take you so far. At some point, you'll need to take advantage of SignalR scaling features to scale out your app. [...] The post SignalR Scalability: Scaling Real-Time SignalR Applications on Heroku appeared first on Heroku.

## FastRTC: The Real-Time Communication Library for Python

DevFeed: [FastRTC: The Real-Time Communication Library for Python](<https://devfeed.tech/articles/fastrtc-the-real-time-communication-library-for-python-7194.md>)

Original publisher: [Read original article](<https://huggingface.co/blog/fastrtc>)

Author: Freddy Boulton; Abubakar Abid

Published: 2025-02-25T00:00:00Z

Content type: tutorial

Language: en

Sources: [Hugging Face - Blog](<https://devfeed.tech/sources/hugging-face-blog.md>)

Topics: [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Python](<https://devfeed.tech/topics/python.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>), [WebRTC](<https://devfeed.tech/topics/webrtc.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [gradio](<https://devfeed.tech/topics/gradio.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [artificial-intelligence](<https://devfeed.tech/tags/artificial-intelligence.md>), [audio](<https://devfeed.tech/tags/audio.md>), [gradio](<https://devfeed.tech/tags/gradio.md>), [llm](<https://devfeed.tech/tags/llm.md>), [python](<https://devfeed.tech/tags/python.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [speech](<https://devfeed.tech/tags/speech.md>), [text-to-speech](<https://devfeed.tech/tags/text-to-speech.md>), [video](<https://devfeed.tech/tags/video.md>), [voice](<https://devfeed.tech/tags/voice.md>), [webrtc](<https://devfeed.tech/tags/webrtc.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

FastRTC is introduced as a Python library for building real-time audio and video AI applications. The article demonstrates core features including voice detection and turn taking, a WebRTC-enabled Gradio interface, phone access, WebRTC and WebSocket support, FastAPI integration, and speech-to-text and text-to-speech utilities.

### Source excerpt

We're on a journey to advance and democratize artificial intelligence through open source and open science.

## psql from the browser

DevFeed: [psql from the browser](<https://devfeed.tech/articles/psql-from-the-browser-5755.md>)

Original publisher: [Read original article](<https://neon.com/blog/psql-from-the-browser>)

Author: Eduard Dyckman

Published: 2024-12-11T18:48:43Z

Content type: tutorial

Language: en

Sources: [Blog -- Neon Docs](<https://devfeed.tech/sources/blog-neon-docs.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [browser](<https://devfeed.tech/topics/browser.md>), [C](<https://devfeed.tech/topics/c.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Serverless](<https://devfeed.tech/topics/serverless.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Template](<https://devfeed.tech/topics/template.md>), [Workers](<https://devfeed.tech/topics/workers.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [c](<https://devfeed.tech/tags/c.md>), [cloudflare](<https://devfeed.tech/tags/cloudflare.md>), [cloudflare-workers](<https://devfeed.tech/tags/cloudflare-workers.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [database](<https://devfeed.tech/tags/database.md>), [databases](<https://devfeed.tech/tags/databases.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [server](<https://devfeed.tech/tags/server.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [sql](<https://devfeed.tech/tags/sql.md>), [websocket](<https://devfeed.tech/tags/websocket.md>), [workers](<https://devfeed.tech/tags/workers.md>)

### AI overview

Neon describes psql.sh, a browser-based implementation of the Postgres command-line client. It uses a WebSocket proxy and serverless driver to connect browser and JavaScript environments to isolated, instantly created database branches based on templates.

### Source excerpt

If you've ever worked with Postgres, you've probably launched psql at least once. It's the default database client packaged with the Postgres server. This is a command-line application, written in C, and it's packed with many features such as autocompletion, command history, and...

## How a Live Multiplayer Snakes Demo Tested Temporal Workflow Resilience

DevFeed: [How a Live Multiplayer Snakes Demo Tested Temporal Workflow Resilience](<https://devfeed.tech/articles/snakes-chaos-and-the-resilience-of-temporal-a-live-demo-breakdown-35982.md>)

Original publisher: [Read original article](<https://temporal.io/blog/snakes-live-demo-on-resilience>)

Author: Rob Holland

Published: 2024-12-05T08:00:00Z

Content type: article

Language: en

Sources: [Temporal Blog](<https://devfeed.tech/sources/temporal-blog.md>)

Topics: [Resilience](<https://devfeed.tech/topics/resilience.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [Svelte](<https://devfeed.tech/topics/svelte.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>)

Tags: [chaos](<https://devfeed.tech/tags/chaos.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [live](<https://devfeed.tech/tags/live.md>), [multiplayer](<https://devfeed.tech/tags/multiplayer.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [resilience](<https://devfeed.tech/tags/resilience.md>), [svelte](<https://devfeed.tech/tags/svelte.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

This blog post explains how Temporal powered a live multiplayer Snakes game with independent workflows for the game, rounds, and snakes. The demo introduced Worker restarts to test recovery from induced outages while the game continued running.

### Source excerpt

We used a live, multiplayer snake game powered by Temporal workflows to showcase the power of Durable Execution. Learn all about it in this blog post.

## Supabase Edge Functions: Introducing Background Tasks, Ephemeral Storage, and WebSockets

DevFeed: [Supabase Edge Functions: Introducing Background Tasks, Ephemeral Storage, and WebSockets](<https://devfeed.tech/articles/supabase-edge-functions-introducing-background-tasks-ephemeral-storage-and-websockets-361.md>)

Original publisher: [Read original article](<https://supabase.com/blog/edge-functions-background-tasks-websockets>)

Author: Lakshan Perera; Nyannyacha

Published: 2024-12-03T07:00:00Z

Content type: release

Language: en

Sources: [Supabase Blog](<https://devfeed.tech/sources/supabase-blog.md>)

Topics: [Supabase](<https://devfeed.tech/topics/supabase.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Filesystems](<https://devfeed.tech/topics/filesystems.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Zip](<https://devfeed.tech/topics/zip.md>), [OpenAI](<https://devfeed.tech/topics/openai.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>)

Tags: [announce](<https://devfeed.tech/tags/announce.md>), [api](<https://devfeed.tech/tags/api.md>), [features](<https://devfeed.tech/tags/features.md>), [openai](<https://devfeed.tech/tags/openai.md>), [storage](<https://devfeed.tech/tags/storage.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [websocket](<https://devfeed.tech/tags/websocket.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

Supabase announces Background Tasks, Ephemeral File Storage, and WebSockets for Edge Functions. The article explains how these features support long-running workloads, temporary-file processing, zip extraction, streaming uploads, and authenticated relays to the OpenAI Realtime API.

### Source excerpt

Edge functions can be used for workloads outside the request-response lifecycle

[Next page](<https://devfeed.tech/tags/websocket.md?cursor=WyIyMDI0LTEyLTAzVDA3OjAwOjAwKzAwOjAwIiwgImY1NjYyNWVkLTM4NDMtNGQyMi04YzhjLTZhZDMwZTA4NWQ0OCJd>)