Product updates
A full rundown of our latest releases, improvements and fixes in Shaflex.
May 18, 2026
Unified Replies Inbox
New
- Unified Replies Inbox. All comments from X, Instagram, Threads, and Bluesky in one three-column view (list, conversation thread, composer) with reply-back, proper thread context, per-user stars, and workspace-shared labels
- Real-time comment delivery. Sub-second on Bluesky via Jetstream, sub-minute on Instagram via Meta webhooks, near-real-time on X and Threads via polling
- Real-time comment notifications. Get pinged the moment someone replies, with full attribution and post preview — notification clicks now route straight into the inbox
- Reply-back for X and Instagram with correct threading semantics. Instagram is wired end-to-end with its own GraphQL service, reply, conversation fetch, and post-deletion through PostReplies
- Publication grouping: inbox items roll up under their parent post via a comment-tree builder, group-by-publication, and a new InboxPublicationGroup card
- Per-provider reply caps with an X sub-cap. The cap surfaces in the usage stats card, inbox header, and composer, with a new subscription-upsell flow
- AGENCY subscription tier. New higher tier for teams managing multiple clients
- Header quick-actions row replaces the floating sticky side panel — the replies entry point is always one click away
Improvements
- Mobile-responsive pass across the whole replies surface (CommentBubble, ConversationColumn / Header / Thread, InboxColumn, RepliesShell, ReplyComposer)
- Reply composer persists drafts per conversation and invalidates the right cache slices on send
- Each inbox row carries a permalink and post preview so replies have context at a glance
- Comment polling scoped to a 32-hour window or the top 10 posts per integration to control cost
- Instagram polling added as a fallback for Meta webhook gaps
- X polling cost reduced roughly 10x via since_id, age throttle, and a users/me cache that reads directly from the Integration row
- Dead integrations skipped during scans and user notification opt-outs honored
Fixes
- Fixed integration disconnect-drift state with added observability for stuck states
- Fixed AI chat SSE drops on slow QUIC connections via heartbeat
- Fixed Date field collisions in GraphQL inbox types
May 13, 2026
AI Voice Profile & Voice Generation
New
- AI Voice Profile. Train your own writing voice from your past posts and generate new content that sounds authentically like you
- Transform-to-Voice. Rewrite any existing text in your trained voice. Available as an inline action in the TextEditor AI menu
- Post Ideas in your tone. Generate fresh post ideas that match your voice
- Streaming AI Chat assistant with hints, result preview, action row, and a typed feedback loop. Backed by an eval surface and prompt caching for faster responses
- AI Voice Settings tab in user settings: extraction prompt, samples-extract dialog, profile edit dialog, profile view, voice traits
- Feature-flags provider + useFeatureFlag hook so post generation, Studio, writing assistant, and voice surfaces can be toggled at runtime
- AI kill-switch flags. Post generation, studio access, and writing assistant can be disabled instantly without a redeploy
- Command dock rebuilt around the chat slice; dedicated MobileCommandDock for narrow viewports
- FeatureFlagName GraphQL enum for typed UI gating from the client
Improvements
- Anti-slop filtering applied to all text enhancement, even without a trained voice profile
- Streaming chunks for text enhancement give faster perceived responses
- AI chat history is message-aware: clarify responses are merged into history instead of replacing it
- Voice profile extraction wired into a continuous evaluation loop with production-sample ingestion
- Multi-channel regression alerts (Slack, email, Telegram) notify when AI output quality drifts
- Voice extraction shows progress, retry, and admission feedback in the UI
- PII redaction added before any LLM call
- Anthropic prompt caching reduces cost on repeated context across chat turns
- Provider-specific cache pricing and atomic cost admission for predictable billing
- AI features migrated to the GraphQL-only surface; legacy REST AI controller removed
- Carousel elements gained drag-and-drop reordering in the slide thumbnail strip
Fixes
- Fixed AI provider transient errors mapping to 422 instead of the retryable 503
- Fixed router prompt selection drifting toward generic answers for question-format posts
- Fixed expected GraphQL client errors being logged at ERROR (now debug)
- Fixed feature flag default behavior not being applied during runtime evaluation
- Fixed voice extraction admission and retry usage accounting
- Fixed enhancement transform parity and blank-render filtering
May 5, 2026
Credit Ledger, Studio & Runtime Feature Flags
New
- Studio widget launched as the new home for visual content — image editor, carousel builder, and shared chrome for animation and video tools
- Carousel Builder: slide canvas, thumbnail strip, lazy-loaded font picker, color picker, snap alignment, templates dialog, and save to media library
- Image editor enhancements: background blur, free-transform chrome toggle, mockup support (iPhone 17 Pro variants), gradient picker rewrite, loading skeletons
- Share card export added to analytics summary, performance overview, and posting activity sections
- Admin credit ledger. Browse, view, and adjust account credit balances from the admin panel
- Runtime-overridable feature flags. Toggle features instantly without a redeploy
- Voice augmented streaming behind a feature flag for staged rollout
- First iteration of the Replies widget shell ahead of the May 18 inbox launch
- Instagram connection card in the integrations list; new shaflex-ai SVG and emotion icon set
Improvements
- Subscription source-of-truth consolidation for AI tier mapping
- Cost-budget gate helper standardizes spend controls across AI surfaces
- Tokenized cost reservations with first-touch grant for predictable AI billing
- Surface labels added to AI traces for clearer attribution
- Voice profile service layer with scheduled refresh jobs
- Themed RowSlider with grab/grabbing cursor states
- Background library expanded with noise textures and gradient variants; all assets ship with PNG, WebP, and thumbnail variants
- Notification preferences panel updated with new toggles for AI and replies
Fixes
- Fixed media URL resolution for AI-generated post tooling
- Fixed credit ledger writes, reservation release, and actor attribution
- Fixed voice generation gate ordering so admission checks run before usage
- Fixed cache fan-out and JSONB guard edge cases
- PdfThumbnail and PdfPreview now swallow worker-termination errors via a new pdf-worker-guard
- PostMetricError handles publication retry scenarios cleanly instead of stalling on the failing metric
April 23, 2026
Storage Insights & Virtualised Media Gallery
New
- Storage Insights: workspace storage totals and breakdowns by file type via a new summary query
- Top storage users query for spotting accounts driving usage growth
- Media Gallery rebuilt around virtualised scrolling (@tanstack/react-virtual) for large libraries
- MediaCardSkeleton and MediaGridSkeleton for instant perceived load
- Dedicated MediaGalleryProvider and typed GraphQL service with its own Redux slice and middleware
- Mobile drawer for media browsing — the gallery now works on narrow viewports without losing the grid
- Post Preview Panel with related hooks for previewing a post against its target channels
- S3 object size and byte-range methods for downstream media tooling
Improvements
- MediaStorageService centralizes media storage and usage accounting
- AnalyticsTimeoutBanner and PostMetricDisconnected render clean error states when analytics throttles or an integration is dead
- Disconnected-channel state flagged in both SocialPostsComposer and the light variant before publish
- useTargetProviders hook resolves the upload provider for a given attachment, shared between Studio and the composer
Fixes
- Fixed analytics data structure inconsistencies in summary metrics
- Fixed useRecentStories throwing when workspaceId is null during initial mount
April 15, 2026
LinkedIn Quotas, X Rate Limits & Job Cleanup
New
- LinkedIn daily quota management with an analytics circuit breaker so reporting keeps working when the API is throttled
- Onboarding modal gained an Automation section with an Auto Plug walkthrough video
- Instagram placeholder in PostMediaPlaceholder for unsupported attachments
- Auto-plug lock indicator in the TextEditorToolbar when a post is governed by a rule
- BullMQ jobs gained explicit cleanup options and a direct enqueue method for ad-hoc runs
Improvements
- X provider rate-limit logic refined to prevent excessive error spikes during bursts
- X provider error logging clarified for media upload failures
- Analytics summary metrics expanded with new fields for better reporting
- Analytics integrations list filters out Instagram channels until the analytics surface lands
- Analytics state-management refresh across components — fewer flickers when switching ranges or workspaces
Fixes
- Fixed video analyzer logging expected ffprobe failures at error level — now warn
April 9, 2026
Auto-Plug 2.0
New
- Auto-Plug rebuilt with inline attachments, provider-aware check intervals, and effective config resolution per network
- Auto-Plug Panel: composed action bar, footer, header, and dynamic condition rows with auto-apply and break normalization
- Rule editing form with validation and provider-aware effective config
- Automation settings page to list, edit, and manage all rules from one surface
- Best Time to Post chart and tooltip components, fed by a new BestTimeCacheJob that pre-warms engagement data so suggestions appear instantly
- ScheduleCalendar widget replaces ad-hoc date pickers
- PostAutoPlugAttachment table for inline attachment support with soft-delete semantics
Improvements
- Auto-plug execution attaches inline templates and resolves effective config per provider
- Post types expose auto-plug state and warnings directly in the UI
- CleanupStuckPostsJob now correctly resets schedule and publish dates
- Auto-plug execution carries a sourceTemplateId for inline attachments
- splitIntoParagraphs utility so post previews respect paragraph breaks
- OnboardingTrigger styles and NaturePostingToggle accessibility passes
- Removed the old AnalyticsCharts and AnalyticsDashboard shells in favor of focused section components
- ScheduledPostBoard drag-and-drop reschedules now use the right schedule parameters
April 3, 2026
Email Campaigns & Content Polish
New
- Email campaign audience filters with pagination and exclusion options
- includeEmails filter for precise targeting in email campaigns
Improvements
- Content normalization streamlined for Telegram and Threads
- Telegram threads content normalization cleaned up
- ThreadsPostText no longer renders empty paragraph parts — Threads previews now match Threads' actual rendering
Fixes
- Fixed unused imports in Telegram HTML content utility
March 31, 2026
X Media v2, Alt Text & New Onboarding
New
- Alt text for attachments. Add accessibility descriptions to images on supported networks
- New onboarding modal with a video player and sidebar navigation — the first thing new accounts see after sign-up
Improvements
- X media uploads migrated to the v2 metadata API
- X media upload error logging clarified for faster diagnostics
- End-to-end Playwright coverage for the X (Twitter) publishing flow, locking in v2 media upload behavior
Fixes
- Fixed X provider media upload error handling on retry paths
March 28, 2026
Publishing Reliability & Editor Polish
New
- Retry failed posts without duplicates. Thread-aware chaining keeps replies connected across X, Threads, Bluesky, and Mastodon
- Unsaved changes guard. Browser prompts before leaving with unsaved edits, plus confirmation when switching posts or workspaces
- Delete LinkedIn and X posts directly from the dashboard
- Images and videos in X thread replies now publish correctly
- Composer and calendar loading skeletons replace empty flashes while content loads
Improvements
- X publishing no longer times out when posting alongside other integrations
- X threads return partial results when a reply fails. Successfully posted tweets are kept
- LinkedIn handles duplicate post errors by reusing the existing post instead of failing
- Post details cached for 5 minutes with smart invalidation instead of refetching on every view
- Editor dirty detection ignores internal IDs and normalizes formatting to reduce false "unsaved changes" prompts
- Schedule, save draft, and publish buttons block double-clicks
- Legacy timezone names (Asia/Calcutta, Europe/Kiev) auto-mapped to canonical names
- X threads hidden after publishing, consistent with Threads, Bluesky, and Mastodon
- Nested Threads reply indentation fixed
- Draft updates no longer trigger calendar refetches
- Email campaigns sent with staggered delay to prevent rate limiting
- Timed-out publications now visible in analytics so you can retry them
Fixes
- Fixed X timeouts hanging as PENDING forever when other integrations succeed
- Fixed analytics excluding personal posts from users with workspace-linked integrations
- Fixed LinkedIn personal profiles showing zero comments when API access is limited
- Fixed drafts not refetching after publish failure or stuck-in-pending recovery
- Fixed email campaign failures silently marked as sent
- Fixed false dirty flags during channel switching in the post editor
March 22, 2026
LinkedIn Company Pages & AI Controls
New
- LinkedIn Company Pages: connect and post as your organization
- Comment on LinkedIn posts directly from your dashboard
- Separate OAuth flow for personal profiles and company pages
- AI usage monitoring with automatic budget controls per subscription tier
- X (Twitter) integration updated to new pay-per-usage credit model
- Analytics now available for all X integrations
- Account deletion with 30-day grace period, cancel anytime
Improvements
- Per-user X post limits for better rate management
- AI text enhancement uses actual token usage for more accurate tracking
- Improved background job reliability with overlap protection
Fixes
- Fixed duplicate publishing on Threads replies
- Fixed LinkedIn comment creation endpoint
- Fixed streaming text enhancement accuracy
March 2, 2026
AI Writing Assistant & Analytics
New
- AI writing assistant integrated into the text editor
- AI usage tracking with subscription-based limits
- Bluesky integration with full posting and analytics
- Mastodon integration with instance-based authentication
- Telegram channel support with bot-based posting
- Daily analytics snapshots for all connected platforms
- Self-healing analytics with automatic gap detection and backfill
- Thread and carousel support across platforms
- Auto-repost for engagement amplification
- AI-powered text enhancement: grammar, style, rephrasing
- Platform-specific content adaptation
- Best posting times analysis
- Multi-workspace support with role-based access control
- Workspace invitations with email notifications
- Post approval workflows
Improvements
- Resilient analytics fetching with circuit breaker pattern
- Integration sharing across workspace members
- Tier-based AI model selection for cost efficiency
February 2026
Analytics Sync & Posting Heatmap
New
- Manual analytics sync with cooldown timer and progress tracking
- Posting activity heatmap on desktop and mobile
- Enhanced performance charts with dark mode support
- Last synced indicator with tooltip
February 2026
Replies, Alt Text & Reuse as Draft
Improvements
- Reply to Bluesky and Mastodon posts directly from the dashboard
- Alt text editing for media attachments for better accessibility
- Reuse as Draft: duplicate published posts for editing
- Media type validation per platform
October 25, 2024
Shaflex Launch
New
- Shaflex is live. A unified social media management platform
- Compose, schedule, and publish posts across Threads, Bluesky, and Telegram
- Rich text editor with media attachments
- Drag-and-drop calendar scheduling
- Multi-account support from one dashboard