November 2025: Workflows, Test Mode, Async Requests, and Webhooks

November was the month ModelRiver started taking shape as a full AI workflow platform instead of just a provider routing layer. The most important work centered on workflows, structured outputs, async delivery, webhooks, pricing, and public documentation.

Workflows became the core request model

We made workflows mandatory for AI requests and added request types for different AI formats. This moved ModelRiver toward a more explicit operating model: applications call a named workflow, while ModelRiver handles the provider, model, structure, request type, and runtime behavior behind it.

We also added raw response format support for users who need provider responses with minimal transformation.

Workflow Test Mode

We added Workflow Test Mode with sample data support. Users can now configure structured output sample data and run a workflow in testing mode without calling a live AI provider.

Test Mode also gained practical UI improvements:

  • Clear testing mode indicators
  • Optional provider/model fields in testing mode
  • Playground support for test mode workflows
  • Delay response support for testing realistic loading states
  • Documentation for testing workflows without burning tokens

Async requests and WebSocket delivery

We added a background job system for async AI requests with WebSocket delivery and webhook callbacks. This made long-running AI workflows more practical by letting applications start a request, keep the UI responsive, and receive results when the workflow completes.

We also improved WebSocket behavior around page refreshes, reconnect attempts, stale requests, and playground state restoration.

Webhooks and project settings

Webhooks moved into a more dedicated product area. We added project settings with webhook management, improved webhook forms, and separated webhooks into their own page while reusing existing console components.

This gave users a clearer place to manage event delivery for async and event-driven workflows.

Structured outputs and code examples

Structured outputs became more usable with sample data as a primary input, better validation, a build-from-sample flow, improved extraction accuracy, and JSON syntax highlighting.

We also added backend and frontend code modals, framework examples, and tabs for React, Vue, Angular, Svelte, and async usage. The playground became more useful as both a test surface and an integration guide.

Provider and model updates

We added xAI provider support and refreshed provider/model descriptions with newer releases. Provider icons and model metadata also received visual updates so the console better reflected the available model ecosystem.

Pricing, docs, and public pages

We added the pricing page, free tier messaging, legal pages, docs search, mobile navigation, and public landing page improvements. These changes made ModelRiver easier to evaluate publicly and gave early users a clearer path from landing page to docs to product setup.

Production reliability

Several reliability fixes made production deployments safer, including a health endpoint, safer static page handling, cache manifest fallback behavior, release crash fixes, and production asset serving improvements. These details are mostly invisible to users, but they made the public product more dependable.