I use a custom script to open all post and external links on the front page in a new tab. Based on a script I found online but customised to beehaw specifically.
// ==UserScript==
// @name beehaw - Open links in new tab
// @description Open links in new tab. Ctrl-click or Middle-click loads it in background
// @match http*://*beehaw.org/home*
// @match http*://*beehaw.org
// @version 0.0.1
// @grant GM_openInTab
// @run-at document-start
// ==/UserScript==
var suppressing, clickedElement;
window.addEventListener('mousedown', function (e) {
clickedElement = e.target;
}, true);
window.addEventListener('mouseup', function (e) {
if (e.button > 1 || e.altKey || e.target != clickedElement) {
return;
}
var link = e.target.closest('a');
if (!link || !link.href) {
return;
}
if (link.getAttributeNode('aria-label') && link.getAttributeNode('aria-label').value == 'Expand here') {
return;
}
if (link.href.startsWith('https://beehaw.org') && !link.href.startsWith('https://beehaw.org/post/')) {
return;
}
GM_openInTab(link.href, {
active: !e.button && !e.ctrlKey,
setParent: true,
insert: true,
});
suppressing = true;
setTimeout(function () {
window.dispatchEvent(new MouseEvent('mouseup', {bubbles: true}));
});
prevent(e);
}, true);
window.addEventListener('click', prevent, true);
window.addEventListener('auxclick', prevent, true);
function prevent(e) {
if (!suppressing) {
return;
}
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
setTimeout(function () {
suppressing = false;
}, 100);
}
Have a look at https://owntracks.org/ . Has apps for android and ios and you can self-host the server component