Added- New Videos layout – card-style grid showing only posts with videos, with natural portrait/landscape thumbnails and play overlay on hover
- Added show_videos shortcode parameter and block toggle for inline video thumbnails in classic and cards layouts
- Video badge in compact layout; video thumbnails in cards layout image area
- Cards layout swipeable carousel for posts with multiple images or gallery embeds
- Added gallery carousel embed support for the images layout
Fixed- Fixed missing stats icons on cards and videos layouts; play button overlay on video thumbnails (hover)
- Fixed show_handle not rendering on cards and videos layouts
- Validate Bluesky handle on save and in Test Connection
- Clean up transient timeout rows on cache clear and uninstall
- Hardened plugin bootstrap (guarded constants, static activation hooks)
Added- Added language translation support with full text-domain
- Added bluefeed.pot template for translators
- Added Bluesky handle/DID validation before API calls
Added- Added show_avatar shortcode parameter and admin setting to show/hide post author avatars (default: true)
- Added show_name shortcode parameter and admin setting to show/hide post author display names (default: true)
- Added show_handle shortcode parameter and admin setting to show/hide post author @handles (default: true)
- Added show_time shortcode parameter and admin setting to show/hide post timestamps (default: true)
- Added show_stats shortcode parameter and admin setting to show/hide the stats bar (replies, reposts, likes) on all layouts including the images overlay (default: true)
- New “Post Elements” checkboxes in admin under Layout & Spacing to set global defaults for avatar, name, handle, timestamp, and stats visibility
- All new visibility options available as Gutenberg block toggle controls in the Visibility panel
Fixed- Fixed profile header banner image not displaying on WordPress 7.0 beta.
Added- Added Gutenberg block (BlueFeed) with live preview, full settings panel (layout, display, visibility, colors), and server-side rendering
Fixed- Frontend CSS is now only loaded on pages that use the BlueFeed shortcode or block
Added- Added circuit breaker for Bluesky API requests. When the API is unresponsive, the plugin now serves cached content instantly instead of waiting for the request to time out
- Added a long-lived stale backup cache (24 hours) so cached data survives beyond the normal cache TTL during extended outages
Fixed- After a failed API call, subsequent requests skip the API for 5 minutes and serve stale cache immediately, eliminating slow page loads when Bluesky is down
Changed- Redesigned admin settings page with a tabbed navigation (General, Layout & Spacing, Colors, Shortcodes) for easier navigation
Fixed- Fixed profile header breaking when the Bluesky profile has no banner image. The banner area now always renders with a placeholder background color so the avatar is not cut off
- Fixed bare domain URLs without a protocol (e.g. example.com) not being clickable in the profile bio and post text
Added- Added configurable gap/spacing between posts in classic, cards, and images layouts
- New “Card Gap” setting in admin (Settings → BlueFeed → Layout & Spacing)
- New gap shortcode parameter to override spacing per-shortcode (e.g. [bluefeed layout="cards" gap="24"])
- Added configurable border radius for all card/post elements
- New “Border Radius” setting in admin (Settings → BlueFeed → Layout & Spacing)
- New border_radius shortcode parameter (e.g. [bluefeed border_radius="0"] for square corners)
- Added configurable border width for all card/post/divider borders
- New “Border Width” setting in admin (Settings → BlueFeed → Layout & Spacing)
- New border_width shortcode parameter (default: 1px, images layout defaults to 0)
- Added #hashtag linking in post text. Links to Bluesky hashtag search
Fixed- Each layout retains its own default spacing when no gap is set (Classic: 12px, Cards: 16px, Images: 4px)
- URLs, @mentions, and #hashtags are now clickable in the profile bio
- URLs in posts and bio now display without the http/https prefix for cleaner appearance
- Layout & Spacing settings moved to their own admin section with a dedicated reset button
- Fixed compact layout hover background bleeding outside rounded corners on first and last rows
- Fixed card image radius gap when using larger border widths
- Fixed double line-break spacing in profile bio when URLs or domains are present
Added- Added “View Details” link on the Plugins page that opens the WordPress.org plugin information modal
Added- Added External services section to readme for third-party API disclosure compliance
Fixed- Fixed copy-to-clipboard button showing both icons at the same time before being clicked
Fixed- Improved compact layout – tighter spacing, smaller avatars, and single-line flow for name and time on both desktop and mobile
- Fixed copy-to-clipboard icons missing on the admin settings page
Added- Four layout styles: classic, cards, compact, images
- Profile header with stats
- Caching system
- Public API integration