{"id":8298,"date":"2026-06-05T11:41:44","date_gmt":"2026-06-05T11:41:44","guid":{"rendered":"https:\/\/dgen.net\/0\/?page_id=8298"},"modified":"2026-06-19T23:14:15","modified_gmt":"2026-06-19T23:14:15","slug":"broadside","status":"publish","type":"page","link":"https:\/\/dgen.net\/0\/broadside\/","title":{"rendered":"Broadside &#8211; the guide"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/dgen.net\/0\/wp-content\/uploads\/2026\/04\/broadside-diamond.v20260427.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgen.net\/0\/wp-content\/uploads\/2026\/04\/broadside-diamond.v20260427-1024x576.jpg\" alt=\"\" class=\"wp-image-8197\" srcset=\"https:\/\/dgen.net\/0\/wp-content\/uploads\/2026\/04\/broadside-diamond.v20260427-1024x576.jpg 1024w, https:\/\/dgen.net\/0\/wp-content\/uploads\/2026\/04\/broadside-diamond.v20260427-300x169.jpg 300w, https:\/\/dgen.net\/0\/wp-content\/uploads\/2026\/04\/broadside-diamond.v20260427-768x432.jpg 768w, https:\/\/dgen.net\/0\/wp-content\/uploads\/2026\/04\/broadside-diamond.v20260427-1536x864.jpg 1536w, https:\/\/dgen.net\/0\/wp-content\/uploads\/2026\/04\/broadside-diamond.v20260427-830x467.jpg 830w, https:\/\/dgen.net\/0\/wp-content\/uploads\/2026\/04\/broadside-diamond.v20260427-230x129.jpg 230w, https:\/\/dgen.net\/0\/wp-content\/uploads\/2026\/04\/broadside-diamond.v20260427-350x197.jpg 350w, https:\/\/dgen.net\/0\/wp-content\/uploads\/2026\/04\/broadside-diamond.v20260427-480x270.jpg 480w, https:\/\/dgen.net\/0\/wp-content\/uploads\/2026\/04\/broadside-diamond.v20260427.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Broadside<\/strong> is a curated community-based publishing tool for writing once and posting to multiple social networks simultaneously (e.g. Mastodon, Bluesky, Threads, LinkedIn, Instagram).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Your username and Bindery web address (URL) <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Your username is your <strong>public name<\/strong> on Broadside. It also determines your Bindery URL: the public page where all your posts are collected and anyone can read them. Set your username <strong>once<\/strong> and your Bindery becomes accessible at&nbsp;<code>\/bindery\/yourname1234<\/code>. The four-digit suffix is generated automatically from your account and stays fixed to avoid clashes: your Bindery URL is set the first time you save a username and never changes after that. Your username also appears on the Commonplace (the shared archive of all posts on this instance) and on individual post&#8217;s permalink pages.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Posting<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">As a user you can write a post using the <strong>Compose<\/strong> page. A live counter shows you the character limit for each service so you know where you are, you can add an image if you like, and link previews are generated automatically from the first URL in your text. When ready, you can choose your platforms (if they are not connected, you&#8217;ll be taken to <strong>Settings<\/strong>). You can then post, or schedule a time to post &#8211; there&#8217;s a <strong>Queue<\/strong> page where you can see what&#8217;s scheduled and cancel things if you need to.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>Compose<\/strong> page also gives you a log of the things you&#8217;ve posted: it&#8217;s just a log, clearing it doesn&#8217;t affect your posts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Reading and researching<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Everything you publish is saved to your own personal <strong>Bindery<\/strong>. This is a personal archive of all your posts with search function, and an RSS feed. The link is accessible publicly, so you can choose to share it or use other apps to grab your RSS feed for whatever you want to do with your own content. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You&#8217;ll see a <strong>research<\/strong> link: Broadside uses your public post&#8217;s content to feed <a href=\"https:\/\/groq.com\/\">GROQ<\/a> and ask it for relevant links, but only from a curated set of websites (e.g. wikipedia, Guardian, HackerNews). This is an experiment to see if we can use AI to be helpful, and to work out how to link interesting things together against the tsunami of slop heading towards us.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Commonplace &amp; Murmurings<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>Commonplace<\/strong> collects posts from everyone on the instance, also searchable and has its own RSS fee that can be subscribed to.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You also have a <strong>Murmurings<\/strong> page that aggregates all your social feeds into one place: only you can see this. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Deleting posts<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can <strong>delete<\/strong> your own posts on your own <strong>Bindery<\/strong> page &#8211; please note that deleting on your bindery <strong><em>does not delete the posts on your social feeds<\/em><\/strong>. If you do post something you then want to delete, first click all of the linked posts to each of your socials (there are direct links on each of your posts) and delete them from <em>each individual<\/em> site, then delete your bindery one. This is just a safer way to do it all.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How can I join?<\/h3>\n\n\n\n<p class=\"has-text-align-center has-text-color has-background has-link-color wp-elements-0b8d60e44e690467570aa756c8ff9772 wp-block-paragraph\" style=\"color:#70abd4;background-color:#092334\">Login at <a href=\"https:\/\/broadside.dgen.net\/\">https:\/\/broadside.dgen.net\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Broadside is invite-only. Feel free to contact me if you&#8217;d like to try it. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;re reading this you&#8217;ve likely been given access, just connect your accounts in <strong>Settings<\/strong> and you&#8217;re ready to go.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To learn more about why Broadside is, please <a href=\"https:\/\/dgen.net\/0\/2026\/04\/26\/broadside\/\">read my introduction post<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/broadside.dgen.net\/terms#privacy\">Privacy<\/a>, <a href=\"https:\/\/broadside.dgen.net\/terms\">Terms<\/a> and <a href=\"https:\/\/broadside.dgen.net\/terms\">Code of Conduct<\/a> links<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/broadside.dgen.net\/terms\">https:\/\/broadside.dgen.net\/terms<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/broadside.dgen.net\/terms#privacy\">https:\/\/broadside.dgen.net\/terms#privacy<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div style=\"height:164px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-white-color has-cyan-bluish-gray-background-color has-text-color has-background has-link-color wp-elements-4aedb2cbd356713f06bb137e69849a2b\">Addenda, for those doing things more manually or their own developer versions<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">How to connect your social accounts<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">These settings will take a few minutes: think of it like unlocking the safe to the services you use. All your credentials are <strong>stored encrypted<\/strong> on your Broadside server. They are never transmitted to any third party.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Connecting Mastodon<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Mastodon is decentralised: you sign up on a specific server (called an instance), such as&nbsp;<code>mastodon.social<\/code>&nbsp;or&nbsp;<code>fosstodon.org<\/code>. Broadside needs an access token from that server to post on your behalf.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;<a href=\"https:\/\/broadside.dgen.net\/mastodon-setup\" target=\"_blank\" rel=\"noreferrer noopener\">setup wizard<\/a>&nbsp;on the page walks you through creating an app on your instance and verifies your token live: or follow the manual steps below.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Step 1: Create an application on your instance<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to&nbsp;<a href=\"https:\/\/mastodon.social\/settings\/applications\" target=\"_blank\" rel=\"noreferrer noopener\">mastodon.social\/settings\/applications<\/a>: or whichever website you are using (replace&nbsp;<code>mastodon.social<\/code>&nbsp;with the one you use).<\/li>\n\n\n\n<li>Click&nbsp;<strong>New application<\/strong><\/li>\n\n\n\n<li>Name it&nbsp;<strong>Broadside<\/strong><\/li>\n\n\n\n<li>Under&nbsp;<strong>Scopes<\/strong>, ensure&nbsp;<code>write:statuses<\/code>&nbsp;and&nbsp;<code>write:media<\/code>&nbsp;are ticked: these allow Broadside to post text and images on your behalf. You can leave everything else unticked.<\/li>\n\n\n\n<li>Click&nbsp;<strong>Submit<\/strong><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Step 2: Copy your access token<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click on the application you just created<\/li>\n\n\n\n<li>Copy the&nbsp;<strong>Your access token<\/strong>&nbsp;value at the bottom of the page<\/li>\n\n\n\n<li>Paste it into the&nbsp;<strong>Access Token<\/strong>&nbsp;field in Broadside Settings, along with your full instance URL (e.g.&nbsp;<code>https:\/\/mastodon.social<\/code>)<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Handle<\/strong>: enter your full Mastodon handle in the Handle field, e.g.&nbsp;<code>@you@mastodon.social<\/code>. This is shown in Broadside&#8217;s interface only and does not affect posting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Instance URL<\/strong>: include&nbsp;<code>https:\/\/<\/code>&nbsp;at the start. If you leave this blank, Broadside defaults to&nbsp;<code>https:\/\/mastodon.social<\/code>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Connecting Bluesky<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Bluesky uses App Passwords: separate credentials created specifically for third-party apps like Broadside. They can be revoked at any time without changing your main Bluesky password.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to&nbsp;<a href=\"https:\/\/bsky.app\/settings\/app-passwords\" target=\"_blank\" rel=\"noreferrer noopener\">bsky.app\/settings\/app-passwords<\/a><\/li>\n\n\n\n<li>Click&nbsp;<strong>Add App Password<\/strong>&nbsp;and name it&nbsp;<strong>Broadside<\/strong><\/li>\n\n\n\n<li>Copy the generated password immediately: it is shown only once. Paste it into Broadside before closing the window.<\/li>\n\n\n\n<li>Enter your Bluesky handle and the app password in Broadside Settings, then click Save.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Handle format<\/strong>: enter your handle without the&nbsp;<code>@<\/code>&nbsp;prefix, e.g.&nbsp;<code>you.bsky.social<\/code>. If you use a custom domain as your handle, enter that instead.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Connecting Threads<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">There is a simple wizard for this, but there are many ways of entering to Meta vortex (nb: for the brave\/patient). Threads can use a setup via Meta&#8217;s developer portal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Step 1: Create a Meta Developer app<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to&nbsp;<a href=\"https:\/\/developers.facebook.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">developers.facebook.com<\/a>&nbsp;and log in with the Meta account linked to your Threads profile<\/li>\n\n\n\n<li>Click&nbsp;<strong>Create App<\/strong>, select the&nbsp;<strong>Other<\/strong>&nbsp;use case, then the&nbsp;<strong>Consumer<\/strong>&nbsp;type, and give it the name&nbsp;<strong>Broadside<\/strong><\/li>\n\n\n\n<li>From your new app&#8217;s dashboard, find and add the&nbsp;<strong>Threads API<\/strong>&nbsp;product<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Step 2: Configure the app<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the Threads API settings, add your Broadside server URL as a redirect URI:&nbsp;<code>https:\/\/broadside.dgen.net\/threads-auth<\/code><\/li>\n\n\n\n<li>Note your&nbsp;<strong>App ID<\/strong>&nbsp;and&nbsp;<strong>App Secret<\/strong>: you&#8217;ll need both in the next step<\/li>\n\n\n\n<li>Under&nbsp;<strong>App Roles \u2192 Test Users<\/strong>, add your own Threads account as a test user. This is required while the app is in development mode.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Step 3: Connect via OAuth in Broadside<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In Broadside Settings, click&nbsp;<strong>&#x2197; Use OAuth flow to get token automatically<\/strong>&nbsp;under the Threads card<\/li>\n\n\n\n<li>Enter your App ID and App Secret<\/li>\n\n\n\n<li>Click&nbsp;<strong>Generate Auth URL<\/strong>, then&nbsp;<strong>Open in new tab<\/strong><\/li>\n\n\n\n<li>Authorise the app in Threads. Threads will then redirect you back to a Broadside page that displays your auth code: copy it.<\/li>\n\n\n\n<li>Paste the auth code into the Broadside OAuth page and click&nbsp;<strong>Exchange Code for Token<\/strong>. Broadside will confirm the connection and redirect you back to Settings.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Token expiry<\/strong>: Broadside exchanges the short-lived auth code for a long-lived token (valid 60 days). When it expires, you will need to repeat Step 3. Meta is working on non-expiring tokens for approved apps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Development mode<\/strong>: while your app is in Meta&#8217;s development mode, only accounts you&#8217;ve added as test users can connect. If you want other people to use Broadside with Threads, the app needs to go through Meta&#8217;s app review process.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Connecting LinkedIn<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">LinkedIn requires an OAuth access token and your Member URN: a unique identifier for your LinkedIn profile. Getting both requires creating a LinkedIn Developer app.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Step 1: Create a LinkedIn Developer app<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to&nbsp;<a href=\"https:\/\/www.linkedin.com\/developers\/apps\/new\" target=\"_blank\" rel=\"noreferrer noopener\">linkedin.com\/developers\/apps\/new<\/a><\/li>\n\n\n\n<li>Name the app&nbsp;<strong>Broadside<\/strong>&nbsp;and associate it with a LinkedIn Page. If you don&#8217;t have one, you can create a placeholder page: it won&#8217;t be used publicly.<\/li>\n\n\n\n<li>Under the&nbsp;<strong>Auth<\/strong>&nbsp;tab, add this redirect URL:&nbsp;<code>https:\/\/www.linkedin.com\/developers\/tools\/oauth\/redirect<\/code><\/li>\n\n\n\n<li>Under the&nbsp;<strong>Products<\/strong>&nbsp;tab, request access to&nbsp;<strong>Share on LinkedIn<\/strong>. This grants the&nbsp;<code>w_member_social<\/code>&nbsp;scope, which allows Broadside to post on your behalf. Approval is usually instant.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Step 2: Get an access token<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to&nbsp;<a href=\"https:\/\/www.linkedin.com\/developers\/tools\/oauth\" target=\"_blank\" rel=\"noreferrer noopener\">linkedin.com\/developers\/tools\/oauth<\/a>&nbsp;(LinkedIn&#8217;s OAuth token inspector tool)<\/li>\n\n\n\n<li>Select your&nbsp;<strong>Broadside<\/strong>&nbsp;app from the dropdown<\/li>\n\n\n\n<li>Tick the&nbsp;<code>w_member_social<\/code>&nbsp;scope and click&nbsp;<strong>Request access token<\/strong><\/li>\n\n\n\n<li>Authorise via your LinkedIn account. Copy the access token that appears and paste it into Broadside Settings.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Step 3: Find your Member URN<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your Member URN is a unique ID LinkedIn uses to identify your account for API requests. The easiest way to find it:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>While still on the OAuth token inspector page with a valid token, click&nbsp;<strong>Introspect token<\/strong>: or open this URL in your browser, replacing&nbsp;<code>YOUR_TOKEN<\/code>&nbsp;with your access token:&nbsp;<a href=\"https:\/\/api.linkedin.com\/v2\/userinfo\" target=\"_blank\" rel=\"noreferrer noopener\">api.linkedin.com\/v2\/userinfo<\/a><\/li>\n\n\n\n<li>In the response, find the&nbsp;<code>sub<\/code>&nbsp;field: this is your LinkedIn member ID, a string of letters and numbers<\/li>\n\n\n\n<li>Your URN is&nbsp;<code>urn:li:person:<\/code>&nbsp;followed by that value: e.g.&nbsp;<code>urn:li:person:aBcDeFgHiJ<\/code><\/li>\n\n\n\n<li>Paste the full URN into the&nbsp;<strong>Person URN<\/strong>&nbsp;field in Broadside Settings<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Token expiry<\/strong>: LinkedIn access tokens expire after 60 days. When yours expires, return to the&nbsp;<a href=\"https:\/\/www.linkedin.com\/developers\/tools\/oauth\" target=\"_blank\" rel=\"noreferrer noopener\">OAuth token inspector<\/a>, generate a new token, and update it in Broadside Settings. Your URN stays the same: you only need to update the token.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Link previews<\/strong>: when your post contains a URL, Broadside instructs LinkedIn to scrape that page and generate a rich preview card automatically. No additional configuration is needed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Handle<\/strong>: the Handle field is for display in Broadside&#8217;s interface only (e.g. your name as it appears on LinkedIn). It does not affect posting.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Disconnecting a platform<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Each platform card has a&nbsp;<strong>Clear<\/strong>&nbsp;button. Pressing it removes that platform&#8217;s connection from Broadside: after which Broadside will no longer post there until you reconnect it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Clearing a connection does not affect anything on the platform itself. Your account stays open and everything you have already posted remains exactly where it is. It simply means Broadside stops being able to post on your behalf until you add the credentials again.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Broadside is a curated community-based publishing tool for writing once and posting to multiple social networks simultaneously (e.g. Mastodon, Bluesky, Threads, LinkedIn, Instagram). Your username [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":8197,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-8298","page","type-page","status-publish","has-post-thumbnail","hentry"],"jetpack_shortlink":"https:\/\/wp.me\/PfJFK3-29Q","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/dgen.net\/0\/wp-json\/wp\/v2\/pages\/8298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dgen.net\/0\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dgen.net\/0\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dgen.net\/0\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dgen.net\/0\/wp-json\/wp\/v2\/comments?post=8298"}],"version-history":[{"count":15,"href":"https:\/\/dgen.net\/0\/wp-json\/wp\/v2\/pages\/8298\/revisions"}],"predecessor-version":[{"id":8392,"href":"https:\/\/dgen.net\/0\/wp-json\/wp\/v2\/pages\/8298\/revisions\/8392"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dgen.net\/0\/wp-json\/wp\/v2\/media\/8197"}],"wp:attachment":[{"href":"https:\/\/dgen.net\/0\/wp-json\/wp\/v2\/media?parent=8298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}