Redirector Extension

By Archived fry69 (@fry69.altq.net)
Published:

How to automatically redirect Bluesky links to Deer Social with the Redirector Extension for Firefox. This should work for Chrome too.

Documentation/Source

Blog: https://einaregilsson.com/writing-a-browser-extension-for-three-browsers/

Installaion

Chrome: https://chrome.google.com/webstore/detail/redirector/ocgpenflpmgnfapjedencafcfakcekcd

Either type the simple rules in manually:

Description: Bluesky to Deer Social URL rewriting
Example URL: https://bsky.app/profile/fry69.dev/post/3laqnamqfq22v
Include pattern: https://bsky.app/*
Redirect to: https://deer.social/$1
Pattern type: wildcard

Or save this JSON block below in a file and import it in the Redirector:

{
    "createdBy": "Redirector v3.5.3",
    "createdAt": "2025-04-29T13:31:54.607Z",
    "redirects": [
        {
            "description": "Bluesky to Deer Social URL rewriting ",
            "exampleUrl": "https://bsky.app/profile/fry69.dev/post/3laqnamqfq22v",
            "exampleResult": "https://deer.social/profile/fry69.dev/post/3laqnamqfq22v",
            "error": null,
            "includePattern": "https://bsky.app/*",
            "excludePattern": "",
            "patternDesc": "",
            "redirectUrl": "https://deer.social/$1",
            "patternType": "W",
            "processMatches": "noProcessing",
            "disabled": false,
            "grouped": false,
            "appliesTo": [
                "main_frame"
            ]
        }
    ]
}

Bonus

{
    "createdBy": "Redirector v3.5.3",
    "createdAt": "2025-04-29T13:31:54.607Z",
    "redirects": [
        {
            "description": "Always show the desktop version of websites",
            "exampleUrl": "https://en.m.wikipedia.org/",
            "exampleResult": "https://en.wikipedia.org/",
            "error": null,
            "includePattern": "^(https?://)([a-z0-9-]*\\.)m(?:obile)?\\.(.*)",
            "excludePattern": "",
            "patternDesc": "Any word after example.com leads to google search for that word.",
            "redirectUrl": "$1$2$3",
            "patternType": "R",
            "processMatches": "noProcessing",
            "disabled": false,
            "grouped": false,
            "appliesTo": [
                "main_frame"
            ]
        },
        {
            "description": "Bluesky to Deer Social URL rewriting ",
            "exampleUrl": "https://bsky.app/profile/fry69.dev/post/3laqnamqfq22v",
            "exampleResult": "https://deer.social/profile/fry69.dev/post/3laqnamqfq22v",
            "error": null,
            "includePattern": "https://bsky.app/*",
            "excludePattern": "",
            "patternDesc": "",
            "redirectUrl": "https://deer.social/$1",
            "patternType": "W",
            "processMatches": "noProcessing",
            "disabled": false,
            "grouped": false,
            "appliesTo": [
                "main_frame"
            ]
        }
    ]
}

Bonus Bonus

{
    "createdBy": "Redirector v3.5.3",
    "createdAt": "2025-04-29T13:31:54.607Z",
    "redirects": [
        {
            "description": "Always show the desktop version of websites",
            "exampleUrl": "https://en.m.wikipedia.org/",
            "exampleResult": "https://en.wikipedia.org/",
            "error": null,
            "includePattern": "^(https?://)([a-z0-9-]*\\.)m(?:obile)?\\.(.*)",
            "excludePattern": "",
            "patternDesc": "Any word after example.com leads to google search for that word.",
            "redirectUrl": "$1$2$3",
            "patternType": "R",
            "processMatches": "noProcessing",
            "disabled": false,
            "grouped": false,
            "appliesTo": [
                "main_frame"
            ]
        },
        {
            "description": "Remove doubleclick link tracking / fix problems with doubleclick host-based blocking",
            "exampleUrl": "https://www.google.com/amp/www.example.com/amp/document",
            "exampleResult": "https://www.example.com/amp/document",
            "error": null,
            "includePattern": "^(?:https?://)www.(?:google|bing).com/amp/(?:s/)?(.*)",
            "excludePattern": "",
            "patternDesc": "",
            "redirectUrl": "https://$1",
            "patternType": "R",
            "processMatches": "noProcessing",
            "disabled": false,
            "grouped": false,
            "appliesTo": [
                "main_frame"
            ]
        },
        {
            "description": "Redirect YouTube Shorts to regular YouTube",
            "exampleUrl": "https://www.youtube.com/shorts/video-id",
            "exampleResult": "https://www.youtube.com/watch?v=video-id",
            "error": null,
            "includePattern": "^(?:https?://)(?:www.)?youtube.com/shorts/([a-zA-Z0-9_-]+)(.*)",
            "excludePattern": "",
            "patternDesc": "",
            "redirectUrl": "https://www.youtube.com/watch?v=$1$2",
            "patternType": "R",
            "processMatches": "noProcessing",
            "disabled": false,
            "grouped": false,
            "appliesTo": [
                "main_frame"
            ]
        },
        {
            "description": "Bluesky to Deer Social URL rewriting ",
            "exampleUrl": "https://bsky.app/profile/fry69.dev/post/3laqnamqfq22v",
            "exampleResult": "https://deer.social/profile/fry69.dev/post/3laqnamqfq22v",
            "error": null,
            "includePattern": "https://bsky.app/*",
            "excludePattern": "",
            "patternDesc": "",
            "redirectUrl": "https://deer.social/$1",
            "patternType": "W",
            "processMatches": "noProcessing",
            "disabled": false,
            "grouped": false,
            "appliesTo": [
                "main_frame"
            ]
        }
    ]
}