Dave's WordPress home in the Fediverse :-)
Feed titles for readers

When designing your RSS feeds, the top level title should be the title of the user’s account. So if Bluesky had a feed for each user, the channel-level element of the feed would be</p> <ul> <li><code><title>Bluesky: Mark Cuban</title></code></li> </ul> <p>Why? Well because readers need context. And it’s easy.</p> <p>And feeds are showing up in places where there isn’t much room for the titles, so you have to make your characters count.</p> <p>Bluesky shows the user’s address, imho it should be the string the user chooses, usually simply their name.</p> <p><img decoding="async" src="https://imgs.scripting.com/2026/10/01/blueskyFeedTitlesAre.png" alt="" title="" /></p> <p>The arrow points to Mark Cuban’s feed from Bluesky.</p> <div id='jp-relatedposts' class='jp-relatedposts' > </div> <!-- Comments disabled by default, can be enabled in Customizer --> </div> </div> <div class="divFooter"> <nav class="divFooterSocialMenu"> <ul> <li><a href="https://daveverse.org/feed/" target="_blank" rel="noopener"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> <path d="M2,8.667V12c5.515,0,10,4.485,10,10h3.333C15.333,14.637,9.363,8.667,2,8.667z M2,2v3.333 c9.19,0,16.667,7.477,16.667,16.667H22C22,10.955,13.045,2,2,2z M4.5,17C3.118,17,2,18.12,2,19.5S3.118,22,4.5,22S7,20.88,7,19.5 S5.882,17,4.5,17z"></path> </svg></a></li> </ul> </nav> <p>Last update: 10/1/26; 6:59:17 PM.</p> </div> </div><!-- .divPageBody --> <!-- --> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/wordlandBaseline/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <meta id="bilmur" property="bilmur:data" content="" data-customproperties="{"woo_active":"0","logged_in":"0","wptheme":"wordlandBaseline","wptheme_is_block":"0"}" data-provider="wordpress.com" data-service="atomic" data-site-tz="America/New_York" > <script defer src="https://s0.wp.com/wp-content/js/bilmur.min.js?m=202640"></script> <div class="jetpack-subscription-modal"> <div class="jetpack-subscription-modal__modal-content"> <div class="wp-block-group has-border-color jetpack-subscription-modal__modal-content-form" style="border-color:#dddddd;border-width:1px;margin-top:0;margin-bottom:0;padding:32px"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow"> <h2 class="wp-block-heading has-text-align-center" style="margin-top:4px;margin-bottom:10px;font-size:26px;font-style:normal;font-weight:600">Discover more from daveverse</h2> <p class="has-text-align-center wp-block-paragraph" style='margin-top:4px;margin-bottom:0px;font-size:15px'>Subscribe now to keep reading and get access to the full archive.</p> <div class="wp-block-jetpack-subscriptions__supports-newline is-style-compact wp-block-jetpack-subscriptions"> <div class="wp-block-jetpack-subscriptions__container is-not-subscriber"> <form action="https://wordpress.com/email-subscriptions" method="post" accept-charset="utf-8" data-blog="237777565" data-post_access_level="everybody" data-subscriber_email="" id="subscribe-blog" > <div class="wp-block-jetpack-subscriptions__form-elements"> <p id="subscribe-email"> <label id="subscribe-field-label" for="subscribe-field" class="screen-reader-text" > Type your email… </label> <input required="required" type="email" name="email" autocomplete="email" style="font-size: 16px;padding: 15px 23px 15px 23px;border-radius: 50px;border-width: 1px;" placeholder="Type your email…" value="" id="subscribe-field" title="Please fill in this field." /> </p> <p id="subscribe-submit" > <input type="hidden" name="action" value="subscribe"/> <input type="hidden" name="blog_id" value="237777565"/> <input type="hidden" name="source" value="https://daveverse.org/2026/10/01/feed-titles-for-reading/"/> <input type="hidden" name="sub-type" value="subscribe-block"/> <input type="hidden" name="app_source" value="atomic-subscription-modal-lo"/> <input type="hidden" name="redirect_fragment" value="subscribe-blog"/> <input type="hidden" name="lang" value="en_US"/> <input type="hidden" id="_wpnonce" name="_wpnonce" value="77c58b40d3" /><input type="hidden" name="_wp_http_referer" value="/2026/10/01/feed-titles-for-reading/" /><input type="hidden" name="post_id" value="12789"/> <button type="submit" class="wp-block-button__link" style="font-size: 16px;padding: 15px 23px 15px 23px;margin: 0; margin-left: 10px;border-radius: 50px;border-width: 1px;" name="jetpack_subscriptions_widget" > Subscribe </button> </p> </div> </form> </div> </div> <p class="has-text-align-center jetpack-subscription-modal__close wp-block-paragraph" style="margin-top:20px;font-size:14px"><a href="#">Continue reading</a></p> </div></div> </div> </div> <script id="wp-dom-ready-js" src="https://daveverse.org/wp-content/plugins/gutenberg/build/scripts/dom-ready/index.min.js?ver=3fe927cab37bf38d6a23"></script> <script id="subscription-modal-js-js-extra"> var subscriptionData = {"homeUrl":"daveverse.org"}; //# sourceURL=subscription-modal-js-js-extra </script> <script type='text/javascript' src='https://daveverse.org/wp-content/plugins/jetpack/modules/comments/subscription-modal-on-comment/subscription-modal.js?m=1764003632'></script> <script id="baseline-external-js-js" src="https://s3.amazonaws.com/scripting.com/code/baselineplayground/testing.js?t=1790906309"></script> <script id="jetpack-stats-js-before"> _stq = window._stq || []; _stq.push([ "view", {"v":"ext","blog":"237777565","post":"12789","tz":"-4","srv":"daveverse.org","hp":"atomic","ac":"2","amp":"0","j":"1:16.3-a.7"} ]); _stq.push([ "clickTrackerInit", "237777565", "12789" ]); //# sourceURL=jetpack-stats-js-before </script> <script data-wp-strategy="defer" defer fetchpriority="low" id="jetpack-stats-js" src="https://stats.wp.com/e-202640.js"></script> <script id="jetpack-blocks-assets-base-url-js-before"> var Jetpack_Block_Assets_Base_Url="https://daveverse.org/wp-content/plugins/jetpack/_inc/blocks/"; //# sourceURL=jetpack-blocks-assets-base-url-js-before </script> <script type='text/javascript' src='https://daveverse.org/wp-includes/js/dist/vendor/wp-polyfill.min.js?m=1784059681'></script> <script data-wp-strategy="defer" defer id="jetpack-block-subscriptions-js" src="https://daveverse.org/wp-content/plugins/jetpack/_inc/blocks/subscriptions/view.js?minify=false&ver=16.3-a.7"></script> <script id="wp-emoji-settings" type="application/json"> {"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://daveverse.org/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}} </script> <script type="module"> /*! This file is auto-generated */ var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); //# sourceURL=https://daveverse.org/wp-includes/js/wp-emoji-loader.min.js </script> </body> </html> <!-- generated in 0.579 seconds 50174 bytes batcached for 300 seconds -->