Back to blog
Release/ Updates

Apr 16, 2026

Weavy v31.0.0 — Feed component, follow users, and .NET 10

v31 lands the new <wy-feed> component, splits wy-posts into a renderer and a dedicated editor, adds follow/unfollow, and moves the backend to .NET 10. Two breaking changes worth the five-minute audit.

v31.0.0 shipped on March 13. The headline is <wy-feed> — a proper feed component with search, consolidated sources, and a dedicated post editor. A handful of smaller things round it out: follow/unfollow, a user details overlay, a whenReady() method on every component, and the backend moved to .NET 10.

The feed, reorganized

Until v31, <wy-posts> was both a renderer and an editor crammed into one component. In v31 those jobs split. <wy-posts> renders. <wy-post-editor> posts. And <wy-feed> is the new consolidated surface that renders posts from one or many sources with built-in search.

<wy-feed uid="announcements releases team"></wy-feed>

Pass a single uid or space-separated uids. Toggle the search input on or off via features. Drop <wy-post-editor> next to it if you want users to publish into a specific app.

Migrating from wy-posts

If you used <wy-posts> as the full widget — render + editor in one — the smoothest path is a rename to <wy-feed>:

<!-- before -->
<wy-posts uid="company-updates"></wy-posts>

<!-- after -->
<wy-feed uid="company-updates"></wy-feed>

For views where users publish into a specific app, add the editor next to it:

<wy-feed uid="team-announcements"></wy-feed>
<wy-post-editor uid="team-announcements"></wy-post-editor>

The features prop is now additive

Another breaking change worth flagging: the features attribute is now relative to each component's defaults instead of replacing them. Opt out of a default with a - prefix.

<wy-chat features="meetings -reactions"></wy-chat>

Turn meetings on, keep everything else that's on by default, disable reactions. No more enumerating the full feature list every time you want to toggle one thing.

Follow users, see their details

Follow/unfollow is in, gated behind the follow feature flag. Click a user's name or avatar anywhere in a Weavy component and a details overlay slides in — useful for directory-style navigation without a separate profile page.

whenReady() on every component

Every Weavy component now exposes a whenReady() method that resolves after the component's first render. Handy when you want to imperatively focus an input, scroll to a message, or defer an effect until the component is actually on screen.

const copilot = document.querySelector('wy-copilot');
await copilot.whenReady();
copilot.focus();

And the plumbing

Backend is now on .NET 10. On-prem installations can — experimentally — run on Linux and macOS in addition to Windows. Avatar loading falls back to name initials when the image isn't available. Error handling when the Weavy server is unreachable is cleaner.

Upgrading

  • Rename <wy-posts> to <wy-feed> where you used it as the full widget.
  • Audit your features props — the semantics are now additive with - to opt out.
  • Re-check any CSS shadow-part overrides you had on the editor — some names changed.

Full list of changes and breaking notes in the v31.0.0 changelog.

Ship the collaboration layer today

Free to start. No credit card. Your first component running in under ten minutes.

Talk to us

Questions, integrations, or just kicking the tires. Real answers from real engineers.