You just shipped a new feature. Now you need to tell your users about it. You have two main channels: an in-app widget that surfaces the update inside your product, or an email that lands in their inbox. Both have real strengths. Both have real limitations. And the right answer is almost never "pick one."
Let us break down the pros, cons, and best practices for each channel, and then look at why the most effective teams use both together.
The case for email
Email is the oldest digital communication channel, and it still works. Every user has an email address, and unlike in-app notifications, email reaches people whether they are actively using your product or not.
Where email shines
- Reaches everyone. Active users, dormant users, trial users who signed up and forgot. Email is the only channel that can touch users who are not currently in your product.
- Re-engagement power. A well-crafted product update email can bring back users who have not logged in for weeks. "We shipped the feature you asked for" is one of the most effective re-engagement messages in SaaS.
- Works offline. Users see it when they check their inbox, on their phone, on their laptop, on any device. No login required.
- Narrative-friendly. Email gives you space for storytelling. You can write a monthly digest that recaps everything you shipped, share the reasoning behind decisions, and paint a bigger picture of where the product is heading.
Where email falls short
- Low open rates. The average SaaS email open rate hovers around 20 to 25 percent. That means three out of four users never see your update.
- Spam filters. Even legitimate product emails end up in promotions tabs or spam folders. Gmail's tab system in particular buries many SaaS emails where users rarely look.
- Unsubscribes and fatigue. Every email you send is a micro-decision for the user: keep or unsubscribe? Send too frequently and you lose subscribers. Send too rarely and they forget you exist.
- No context. The user reads about a new feature in their inbox but has to switch context, open your app, and find the feature themselves. That friction kills adoption.
The case for in-app widgets
In-app widgets are the newer channel. A small badge or bell icon inside your product that opens a panel showing recent updates. The user is already logged in, already engaged, and already in the right context to act on what they see.
Where widgets shine
- Contextual. The user is inside your product when they see the update. They can try the new feature immediately, without switching tabs or remembering to come back later. This dramatically increases feature adoption.
- High visibility. An unread badge on a widget gets noticed. Unlike email, there is no spam filter between you and the user. The update is right there in the interface they are already looking at.
- Instant. As soon as you publish an update, every active user can see it. No send delays, no batch processing, no inbox queues.
- No spam risk. You cannot get flagged or filtered. The widget is part of your product. Users control their experience by choosing when to open it.
- Engagement rates. Beamer, one of the larger changelog widget providers, reports that in-app notifications generate roughly three times more engagement than email notifications. The contextual advantage is significant.
Where widgets fall short
- Only reaches active users. If a user has not logged in for two weeks, they will not see your widget notification. Dormant users are invisible to this channel.
- Can feel intrusive. A poorly designed widget that auto-opens, covers content, or demands attention will annoy users instead of informing them. Restraint is essential.
- Limited space. Widgets work best for short, punchy updates. A detailed monthly recap or a nuanced product narrative does not fit well in a slide-in panel.
The winning strategy: use both
The question is not "widget or email." It is "what content belongs in which channel?" The most effective SaaS teams use both, with clear differentiation in purpose and format.
Widget: short, visual, actionable
Use your in-app widget for individual feature announcements, bug fixes, and improvements. Keep entries short. Lead with what changed and why it matters. Include a screenshot or a short clip if possible. End with a call to action: "Try it now" with a link directly to the feature.
The widget is your real-time channel. Publish each update as you ship it. Users who are active in your product right now will see it immediately and can act on it without leaving their workflow.
Email: narrative, digest, re-engagement
Use email for monthly or bi-weekly digests that recap everything you shipped. This is your chance to tell a story: what themes emerged, what user feedback drove the changes, and what is coming next. Keep it concise but give it structure and personality.
Email is also your re-engagement tool. When you ship a feature that a specific segment of users requested, send a targeted email to that segment. "You asked, we built it" is a powerful subject line that brings people back.
Best practices for in-app widgets
- Unread badge. Show a small dot or counter on the widget icon when there are new updates. This creates curiosity without being disruptive.
- Slide-in panel. Open the widget as a side panel, not a modal. Users should be able to read updates without losing their current context.
- Shadow DOM isolation. If you embed the widget on third-party sites or customer products, use Shadow DOM to prevent CSS conflicts with the host page.
- Small bundle size. The widget script should be lightweight. Nobody wants a 200 KB notification widget slowing down their app. Target under 16 KB gzipped.
- Respect user attention. Never auto-open the widget. Never play sounds. Let the unread badge do its job and trust users to open it when they are ready.
Best practices for email
- Double opt-in. Required by GDPR and good practice everywhere. Only send product update emails to users who explicitly subscribed. This keeps your sender reputation healthy and your audience genuinely interested.
- Frequency control. Let users choose their preferred frequency: every update, weekly digest, or monthly recap. One size does not fit all.
- Clear unsubscribe. Make unsubscribing effortless. A single click, no "are you sure" dark patterns. Users who want to leave will leave regardless. Making it easy preserves goodwill.
- Plain text friendly. Many power users prefer plain text emails. Ensure your emails are readable without images or fancy HTML.
How Vershun handles both channels
Vershun is built around this dual-channel approach. When you publish a changelog entry, it automatically appears on your public changelog page and in your in-app widget. The widget is under 16 KB gzipped, uses Shadow DOM for complete CSS isolation, and shows an unread badge that respects user attention.
For email, Vershun supports subscriber notifications with double opt-in, so users who want inbox updates get them, and those who prefer in-app discovery are never bothered. One publish action, multiple channels, zero extra work.
The bottom line
In-app widgets win on engagement and immediacy. Email wins on reach and re-engagement. Neither is a complete solution alone. The smartest approach is to use widgets as your primary real-time channel for active users and email as your periodic reach-out for the broader audience.
Stop choosing between the two. Use both, give each channel the right content, and let your users decide how they want to hear from you.