[HN Gopher] Show HN: I made a URL expander because short links a...
       ___________________________________________________________________
        
       Show HN: I made a URL expander because short links are too
       mainstream
        
       Author : error404x
       Score  : 205 points
       Date   : 2024-10-08 18:23 UTC (4 days ago)
        
 (HTM) web link (urlshortenersaresoyesterdaytrythisamazingsuperlongurlexpander.site)
 (TXT) w3m dump (urlshortenersaresoyesterdaytrythisamazingsuperlongurlexpander.site)
        
       | piyuv wrote:
       | Love the design!
        
       | manchmalscott wrote:
       | It generated a link too long to send over discord, even with
       | nitro (over 4000 characters). That's hysterical.
        
       | ryukoposting wrote:
       | After "checking my browser" I try to put in the URL I want to
       | shorten, I click the button, and nothing happens. The URL is
       | hardfault.life, for what it's worth.
        
         | sgarland wrote:
         | It seems to need the scheme portion of the URL, not just the
         | authority.
        
         | ks2048 wrote:
         | Yeah, not working for me. The button says "Checking if you're a
         | bot..." and nothing happening. Console shows a warning
         | regarding "The resource at
         | "https://challenges.cloudflare.com/..."
        
         | cubefox wrote:
         | Well you tried to shorten it, of course it doesn't work!
        
         | rendall wrote:
         | Here you go:
         | 
         | https://urlshortenersaresoyesterdaytrythisamazingsuperlongur...
        
       | Syonyk wrote:
       | I am apparently a bot. :(
       | 
       |  _Beep Boop!_
       | 
       | (I've let the page sit for a minute or so, and it hasn't
       | concluded that I am _not_ a bot yet, but also, I 'm aware I look
       | weird - Firefox, with Javascript JIT disabled, with no GPU
       | acceleration)
       | 
       | I don't know what it's using on the backend, but it doesn't seem
       | to pass for me, and doesn't give me the usual option to pick a
       | baby chicken from a baby duck to prove I'm human.
        
         | skibbityboop wrote:
         | Same boat, the attempt at bot detection prevents the page from
         | working at all for me.
        
         | Syonyk wrote:
         | Console logs that look possibly interesting:
         | 
         | > WEBGL_debug_renderer_info is deprecated in Firefox and will
         | be removed. Please use RENDERER. v1:1:102781
         | 
         | > Turnstile Widget seem to have crashed: 9icuj api.js:1:17810
         | 
         | > Uncaught TurnstileError: [Cloudflare Turnstile] Error:
         | 300030. >
         | https://urlshortenersaresoyesterdaytrythisamazingsuperlongur...
         | B2SIiwBB.js:9
         | 
         |  _sigh_
         | 
         | I don't have WebGL support, so I can't use a URL lengthener,
         | because the bot checker appears to crash shortly after. Someone
         | stop this timeline, I want to get off.
        
           | koito17 wrote:
           | I also disable WebGL. This alone breaks Turnstile. Also helps
           | avoid websites that are "user-hostile". If a website
           | considers curl or Firefox suspicious, then it's not worth
           | proving humanity. I will let them continue calling me a robot
           | in machine-translated Japanese...
           | 
           | The worst is probably hCaptcha. It asks up to 10 machine-
           | translated questions involving machine-generated images to
           | prove the user is not a machine. Something about this is
           | funny to me.
        
         | akoboldfrying wrote:
         | Same for me, with the most generic Chrome-on-Android browser
         | config ever.
        
         | AlienRobot wrote:
         | It just turns URLs into this
         | 
         | urlshortenersaresoyesterdaytrythisamazingsuperlongurlexpander.s
         | ite/inccrimsoncrawdadbarbadosmandaringratianaplokoon982helpfulb
         | luegiraffenicaraguabelarusianchickielobotjuniorreddormouseunite
         | dstateschhattisgarhirosalindeyodadistantambertunavaticancitydec
         | canlisettedexterjettsterrunningamaranthbadgeriranturkmenellette
         | ricoli271mixedscarleterminediegogarciadutchmabeldudboltworldwid
         | escarletsquirrelgermanyswedishdarceyanakinskywalkeroriginalcoff
         | eetigermontenegrogermanshirleeslymoorevoluminousgreenharrierniu
         | ekhmernataleewilhufftarkinmagnificentwhiteguineafowlgreenlandcz
         | echfedericafinisvalorum998uniquecoralcranemalaysiafrenchcamilej
         | ektonoporkinsconsistentblackgeckocubaxiangdorolisationmedonchea
         | pblackrattlesnakestkittsnevisawadhilonnieyodapleasedvioletcepha
         | lopodmoldovaenglishdulcidormthaithaithaigeneticchocolatecaniddi
         | egogarciajavaneseursalationmedondirectlavendercockroachbanglade
         | shkurdishlaurenetarffuldevotedorangemosquitogreecesundaneseannm
         | ariebiggsdarklighterpuzzledroseladybugpakistanxhosailysadarthva
         | derlinguisticorangemackerellibyaukrainianaleecejabbadesilijicti
         | uretastyteallungfishsouthafricagreekhermionegasganoenthusiastic
         | redemugibraltarbalochioliycordpogglethelesserpogglethelesserpog
         | glethelessermedievalvioletgalliformlesothokonkanimarshawattambo
         | rviciousbronzemonkeyswedenbelarusianginniferchewbacca712obedien
         | ttealplatypusmaldivesromanianjamieniennunb320visibleemeraldopos
         | sumazerbaijanmalagasysissiesaeseetiinripescarletswifttristandac
         | unhailocanomellaaylasecura423formidablegreenguanacoswazilandkaz
         | akhcorabelleslymooreholyivoryhippopotamuscookislandsmalagasyelo
         | noregregartyphopetiteaquamarinepeacockalgeriasinhalabarbrapadma
         | midalaoutstandingoutstandingoutstandingnativeamaranthaardwolfbr
         | uneivietnamesegillanlandocalrissian619gangangannetgreenlandfowl
         | ecuadormalagasyestrellitabibfortunashakysapphirecanideritreasyl
         | hetielsayaraelpoof923funpeachgayalindiasinhalarhetahansolovisib
         | letealparrotfishlaoskoreandaniellamasameddaintacttealwoodpecker
         | swazilanddeccandaveenroostarpalstopcopperperchphilippinesminans
         | ticeyodaquintessentiallimeheronfrenchguianaakanronnidarthvadern
         | eutraltancaribouunitedstateszulunathaliequarshpanakaserbiaserbi
         | aserbiacruelaquashrewchristmasislandmaithilicherinsanhillsecure
         | coffeehummingbirdguadeloupeakansarajanewattamborracialtancaterp
         | illarcomorosxhosacorinnecord487resultingrednarwhalpitcairnislan
         | dsrussiancatidookugrossindigodovepanamahindifaydrajarjarbinkspl
         | annedvioletrabbitnetherlandsspanishalissadarthmaulfranticscarle
         | ttarsiermontserratsylhetijudithamonmothmapatientplumgorillairel
         | andmarathichristianzamwesellrareturquoisebasiliskarubasaraikisu
         | ehansolo740governingredbatargentinamossialyseniennunbvagueameth
         | ystwaspfinlandpunjabicherrieethkoth601diplomatictansilverfishto
         | kelaugankelliedormmandarinmandarinmandarinrelaxedharlequinfrogg
         | renadaukrainianalviniawattamborattractiveblackprawnisraelquechu
         | asherriemacewinduoldcyansquirrelaustraliajapanesemerridiec3poch
         | eerfulamberparrotslovakiauyghurstefaniadarthvadermixedcopperbas
         | ilisktanzaniateluguzarahlamasuvocationalwhitemammalliberiaurduj
         | emimabiggsdarklighterimportantazurechimpanzeeseychellesharyanvi
         | leeseplokooncausalyellowbarracudamaltahmonggertrudchewbaccaagre
         | eableivoryclamguatemalatamilpapagenaslymooresmoggyvioletarmadil
         | loascensionislandchewaconstancefinisvalorumserioustealthrushfre
         | nchguianaigboclaudinaraymusantilles929sensiblefuchsiacapybarael
         | salvadorbalochimirabellapadmamidalaslimyharlequinbuzzardjapansa
         | raikimildridr4p17107dailydailydailymanypurplechameleonnigeriahi
         | ndihillarychewbaccasingleturquoisebarnaclemartiniqueburmesefara
         | ndbobafettcooltealperchsouthgeorgiasouthsandwichislandsmarwarit
         | iertzadexterjettstercapitalistmagentaunicornunitednationssylhet
         | ilannyroostarpalsamazingazurecrayfishmaldivesmandarinstormynute
         | gunrayretiredbronzehorsecubajapanesecaroyodacolonialgreenboobys
         | tvincentgrenadinessindhisapphirekiadimundiromanticamethystplana
         | riancameroonrussiankaritaluminaraunduli650remarkableapricotpige
         | onrunionchhattisgarhilelawicketsystriwarrickslipperywhitemoleal
         | baniamadureseednawattambor239
        
           | Syonyk wrote:
           | I get that.
           | 
           | And I have friends who would appreciate such things. Just,
           | ideally, with something that absurd going to as short a site
           | as possible. My gripe is that my browser is apparently too-
           | bot-like for something serving a tiny number of requests.
        
             | dullcrisp wrote:
             | https://urlshortenersaresoyesterdaytrythisamazingsuperlongu
             | r...
        
               | Quizzical4230 wrote:
               | Bahahah nice
        
               | Thorrez wrote:
               | Beat this: https://urlshortenersaresoyesterdaytrythisamaz
               | ingsuperlongur...
        
         | neilv wrote:
         | Also wasn't able to use it here, after unblocking the third-
         | party requests to CloudFlare for this site.
         | 
         | This isn't the first time CloudFlare blocks me, but usually
         | it's a CloudFlare page shown before the actual site's page
         | renders.
         | 
         | Internet Service Denier
        
         | amatecha wrote:
         | Yeah, mine just says "Checking if you're a bot..."
         | indefinitely. OpenBSD, Firefox, Chromium. Cloudflare sometimes
         | blocks me from sites because, well, reasons - it doesn't
         | actually say why, but I suspect the whole "weird OS + strict
         | privacy settings in Firefox", because the same sites load just
         | fine on my other machines. /shrug
        
         | AnonC wrote:
         | Same experience here with Firefox Focus on iOS (with enhanced
         | tracking protection on). It's just stuck at the checking if
         | you're a bot stage.
        
           | bartread wrote:
           | Same with boring old Safari on iOS.
           | 
           | Poorly implemented and overly aggressive bot checkers are
           | really ruining the web.
           | 
           | Used to be that I was seldom troubled by captchas and
           | similar. Now it seems to be multiple times per day.
        
       | mewpmewp2 wrote:
       | How are you going to make sure it handles the scale though?
        
         | pbiggar wrote:
         | The challenge with scaling a url _shortener_ is that multiple
         | urls might end up with the same short url. That presents a
         | scaling challenge where you have to deliberately design a
         | coordination framework across your set of machines, which
         | introduces coordination, a DB, prefixes, and all your favorite
         | answers to the interview question de-jour of the late 2010s.
         | 
         | With a URL _lengthener_ though, you don't need it at all. The
         | sheer amount of possible outcomes means that the odds of ever
         | getting two of the same is infinitesimally tiny.
        
           | mewpmewp2 wrote:
           | That's a good point, if I ever get that interview question I
           | will push back and say we should build an URL lengthener
           | instead.
        
           | cortesoft wrote:
           | With a lengthener, you can make it completely deterministic
           | with zero collisions, so you don't even have to store any
           | state
        
             | mewpmewp2 wrote:
             | Yeah because in theory you could just append the same
             | gibberish string to all the URLs and technically the URL
             | will have been lengthened. Technically you are already
             | lengthening the URL by adding it on top of your domain.
             | Maybe you can base64 it to lengthen it even a bit more and
             | hide the obvious fact that you just added it as a path on
             | top of your domain.
        
               | microtherion wrote:
               | Or you could encode each character with a word.
        
             | Syonyk wrote:
             | Yeah, you could just have a lookup table that's ASCII
             | characters to "long phrases," and encode the URL that way.
             | Have a bunch of nonsense phrases per character and select
             | them randomly, but as long as the lengthened URL fully
             | encodes the destination URL, there's really no scaling
             | problems to be had. You could even do the whole thing in
             | client-side Javascript if you went that route, purely
             | static site.
        
               | cortesoft wrote:
               | You still need a service to redirect the urls.
        
               | Syonyk wrote:
               | You'd need "a website" to redirect things, but if you've
               | fully encoded the URL in the lengthened version, that
               | website need not have any server side components. It
               | could serve things that are handled purely client side.
               | 
               | As a trivial example, consider a URL base64-ifier. You
               | enter the URL, it spits out
               | base64urlifier.example/?base64=[encoded URL] - this is
               | trivially done in Javascript based on the inputs. To
               | redirect, all you need to do is go to that URL, and the
               | Javascript reads the query parameter, de-base64s it, and
               | redirects you there. No need for anything server side.
               | 
               | If you designed the service like this (which you have
               | more than enough entropy for in the lengthening side of
               | things - encoding 200 bytes of URL in 5 bytes of
               | shortened link is hard, encoding 200 bytes of URL in 4kb
               | of URL is easy), you wouldn't have any server side
               | components beyond "serving some HTML and Javascript." Put
               | it in a static file host, use the free tier of
               | Cloudflare, and you can scale basically infinitely
               | without any actual server load (if your service is barely
               | used, hits to the static host backend are cheap, and if
               | it's being used heavily, it's always in cache so never
               | hits the backend).
               | 
               | There's no reason every web service needs a webserver,
               | database, and anti-bot services.
        
           | dullcrisp wrote:
           | But how are they going to handle the scale of the URLs, like,
           | emotionally?
        
           | Dylan16807 wrote:
           | There are some challenges in having multiple machines storing
           | the URL lookups. But those all apply to both shorteners _and_
           | lengtheners.
           | 
           | The only issue unique to shorteners is avoiding collisions,
           | but giving each machine a different range can be done super
           | easily by hand. No frameworks.
        
           | Arch-TK wrote:
           | That's only a challenge for a url shortener if it's going to
           | need to scale to an enormous number of users. I think that's
           | a good example of one of those "leave it for when you can't
           | just make your one-machine more powerful or optimise your
           | code more" situations.
        
         | skykooler wrote:
         | Apparently, by making the bot checker reject most users so that
         | the total number stays small.
        
       | usmanity wrote:
       | this is great, my succinct little domain that's 6 characters long
       | including TLD was turned into 4000 characters, awesome!
        
       | lionkor wrote:
       | Two change suggestions:
       | 
       | - add a donation button and buy a dedi from it - turn off the bot
       | detection
       | 
       | thank me later ig
        
       | melvinmelih wrote:
       | Why .site?
       | 
       | urlshortenersaresoyesterdaytrythisamazingsuperlongurlexpander.com
       | is still available
        
         | david_allison wrote:
         | .site is longer
        
           | tredre3 wrote:
           | The more likely reason is that .site was cheaper.
        
             | furyofantares wrote:
             | Many shorteners use a 2-letter TLD, trying to get as short
             | as possible. I think using a 4-letter TLD is indeed part of
             | the joke.
        
               | immibis wrote:
               | they get longer than 4 letters
        
       | AlienRobot wrote:
       | theofficialabsolutelongestdomainnameregisteredontheworldwideweb.i
       | nternational finally has a worthy opponent.
        
       | MarkSweep wrote:
       | I like the concept. A similar idea that is no longer on the web
       | was "shady url". It would make links that looked like http://
       | shadyurl.com/nader-for-president.exe
        
         | thaumasiotes wrote:
         | The partner project to shadyurl.com was hugeurl.com, which is
         | exactly the same concept as here. hugeurl.com seems to have
         | gone down.
        
         | cubefox wrote:
         | That's hilarious.
        
         | kristopolous wrote:
         | I had one that would turn the urls into wild news stories. I
         | had news-sounding domains like nyeveningpost.com and an auto-
         | generation of bogus stubs such as
         | nyeveningpost.com/breaking/mit-demonstrates-time-travel
         | 
         | Then it would either redirect humans like a normal service or
         | serve a page with meta tags to the crawlers so the card info on
         | social media would have a thumbnail saying "breaking news" and
         | a markov generated caption such as "Earlier today researchers
         | successfully demonstrated time travel at MIT" with the stub
         | matching the title just to increase the chaos.
         | 
         | Ran it a couple of years. Not only did nobody use it but the
         | response was universally discouraging and negative.
         | 
         | Lesson: People enjoy facsimiles of things they find repulsive
         | when it becomes too real. All things have an uncanny valley.
         | It's why people, for example, don't go to butcher shops and
         | pick up animal organs for Halloween decorations.
         | 
         | I find the uncanny valley to be a wonderful artistic
         | experience, like a psychological rollercoaster where there's
         | always something new. But that's a very niche response
        
           | justin_oaks wrote:
           | Thanks for sharing! Just the idea of it is entertaining and
           | makes me smile.
           | 
           | > Not only did nobody use it but the response was universally
           | discouraging and negative.
           | 
           | What were the negative things that people said?
        
         | elicash wrote:
         | It's the perfect con.
         | 
         | If it were TRULY shady, no way they'd use such an obvious URL.
         | Must be safe and a joke!
        
       | ilikeitdark wrote:
       | This is pure awesomeness. You gotta be an OG to appreciate maybe.
        
       | joshdavham wrote:
       | Thanks! This helped make my cloud run url even longer.
        
       | frabjoused wrote:
       | Your bot checker needs some UX help.
        
       | farmeroy wrote:
       | This is great but it's stuck checking if I'm a bot... i get this
       | in the console: ``` auto/:1 The resource
       | https://challenges.cloudflare.com/cdn-cgi/challenge-platform...
       | was preloaded using link preload but not used within a few
       | seconds from the window's load event. Please make sure it has an
       | appropriate `as` value and it is preloaded intentionally. ```
        
         | nojs wrote:
         | > it's stuck checking if I'm a bot
         | 
         | Man I am seeing this _everywhere_ now. If you don't have a
         | clean residential US IP half the internet doesn't work.
        
           | amatecha wrote:
           | Make sure you're using Windows or MacOS, too. Anything else
           | is clearly Teh Hax0rz!! :-O
        
             | bbarnett wrote:
             | http://www.l8r.net/geraldholmes.freeyellow.com/
        
           | palmfacehn wrote:
           | The silver lining is that I rarely need to use these sites
           | for productive purposes. It is a gentle reminder to return to
           | the text editor.
        
           | popcalc wrote:
           | If you're an American abroad you can't even use taxact.com or
           | payusatax.com to file your taxes (which you have to because
           | we're the special ones with citizenship-based taxation)
           | because they block every non-American IP, even western
           | Europe. Intuit surprisingly comes out as the less braindead
           | one here.
        
         | jrochkind1 wrote:
         | Same. I have EFF "Privacy Badger" installed on chrome, I guess
         | that's it?
        
       | efokschaner wrote:
       | Fun site, I found an Easter egg:
       | 
       | https://urlshortenersaresoyesterdaytrythisamazingsuperlongur...
       | 
       | This reminded me of a backend-less filesharing site I once made
       | 
       | https://efokschaner.github.io/furl-unfurl/#/
        
         | v3ss0n wrote:
         | Nice One. Never expected such quality Easter egg. Will find
         | more again 10/10.
        
       | antegamisou wrote:
       | The adaptation is too retro I feel.
       | 
       | It should instead append at the end of the URL some
       | 1000-character long token with a ton of other irrelevant
       | arguments.
       | 
       | You know, exactly how Google Search loves to do when you right-
       | click a search result and the address gets brutally scrambled.
        
       | rc_kas wrote:
       | This is so stupid, but I do love it.
        
       | lopkeny12ko wrote:
       | I don't understand how you're supposed to use this. How do you
       | pass the bot check? There's just a button that says "checking if
       | you're a bot..." and clicking it does nothing.
        
         | petee wrote:
         | On my phone it takes about 10-15 seconds before the bottom
         | enabled, and I didnt click it; i assume their bot prevention is
         | literally just timing them out
        
         | is_true wrote:
         | By not being a bot. Unfortunately I just learnt I'm a bot.
        
         | rolph wrote:
         | use cURL, or httrack.
        
       | dmitshur wrote:
       | There also was https://news.ycombinator.com/item?id=40543196 4
       | months ago.
        
       | tkgally wrote:
       | From 1999, according to the page footer:
       | 
       | > (c) 1999 url shorteners are so yesterday try this amazing super
       | long url expander . All rights reserved.
       | 
       | I tried to confirm that, but the Internet Archive and Wayback
       | Machine are still down.
        
         | arendtio wrote:
         | The same here. If you ask me, the first appeared a few years
         | later, but human memories are erroneous.
        
         | oefrha wrote:
         | It's a Show HN. People typically don't post Show HNs for what
         | they made 25 years ago.                 > whois urlshortenersar
         | esoyesterdaytrythisamazingsuperlongurlexpander.site       ...
         | Domain Name: URLSHORTENERSARESOYESTERDAYTRYTHISAMAZINGSUPERLONG
         | URLEXPANDER.SITE       Registry Domain ID: D492058866-CNIC
         | Registrar WHOIS Server: whois.hostinger.com       Registrar
         | URL: https://www.hostinger.com/       Updated Date:
         | 2024-10-08T18:01:33.0Z       Creation Date:
         | 2024-10-08T18:01:29.0Z       Registry Expiry Date:
         | 2025-10-08T23:59:59.0Z       ...
         | 
         | so no, it can't be more than four days old.
        
           | tkgally wrote:
           | Thanks! I didn't think to check the domain registration.
           | 
           | The page design is nevertheless charmingly retro.
        
       | andys627 wrote:
       | lol
       | https://urlshortenersaresoyesterdaytrythisamazingsuperlongur...
        
       | crazygringo wrote:
       | Ha! Hilarious.
       | 
       | Most of all, I love the fact that, unlike URL shorteners, there's
       | no need to maintain a database of redirects.
       | 
       | I do wonder what the actual encoding scheme is, and how robust it
       | is to lopping off chunks of the URL, since there's presumably
       | lots of room for redundancy...
        
         | bobbylarrybobby wrote:
         | I deleted one character from the expanded url and got sent to a
         | very interesting webpage indeed
        
           | move-on-by wrote:
           | I followed your directions and am pleased to inform you that
           | findings are reproducible.
        
           | edm0nd wrote:
           | Damn, its been a minute since I got got.
        
       | v3ss0n wrote:
       | You monster.. whoever hate AI and LLM should start using it
       | daily. It will make a lot of semantic tokenizers gone crazy.
       | 
       | Nice bait mate.
        
       | etewiah wrote:
       | Ha ha, love this.
       | 
       | It just so happens that I am working on a tool that ends up
       | expanding hacker news urls. The problem I was solving was that of
       | managing lots of replies to a successful post.
       | 
       | I allow you to replace the "ycombinator" in a hacker news item
       | url with "gipety" so this current thread would point to:
       | 
       | https://news.gipety.com/item?id=41780255
       | 
       | You will then get a page that remembers the comments currently
       | displayed. On subsequent refreshes you will see any new comments
       | highlighted in green.
       | 
       | As I worked on it I decided to also add a slug as I got tired of
       | not recognising what the urls I was copy pasting were referring
       | to.
       | 
       | The above will for example end up generating this:
       | 
       | https://news.gipety.com/hn/41780255/k/67/s/show-hn-i-made-a-...
        
       | elonmusk89 wrote:
       | Okay, good job creating something useless
        
       | abcd_f wrote:
       | It shows "Checking if you are a bot" and nothing is tappable.
       | 
       | I am on a recent iOS.
        
       | m0d0nne11 wrote:
       | As with so many sites lately, the "checking if you're a bot"
       | stuff is dainbramaged and b0rken...
        
       | drunkonvinyl wrote:
       | A topic near and dear to me:
       | https://othernotherone.github.io/posts/i-bought-the-longest-...
        
         | oniony wrote:
         | 404
        
           | drunkonvinyl wrote:
           | https://othernotherone.github.io/posts/i-bought-the-
           | longest-...
        
       | ricoche wrote:
       | I have a thing for cool but totally pointless stuff like this
        
         | amelius wrote:
         | I don't.
         | 
         | But I do wonder what will happen when you keep feeding it its
         | own output.
        
       | sleepychu wrote:
       | Ah, I thought this might be for turning tiny/tracking URLs into
       | their targets like my Hacktoberfest project from a few years back
       | 
       | https://off-the-rails.netlify.app/
        
       | dredmorbius wrote:
       | Impressive:
       | 
       | <https://urlshortenersaresoyesterdaytrythisamazingsuperlongur...>
        
       | FerretFred wrote:
       | LOL, I'm gonna need a bigger business card
        
       ___________________________________________________________________
       (page generated 2024-10-12 23:01 UTC)