36 comments

  • gnyman 1 hour ago
    Funny how I made almost exactly the same but for maps.

    I needed a way to share a link to a map, with drawings and the ability for the receiver to see their own location on the map.

    Annotated screenshots solves the first but not the second.

    Vibe engineered this, with many of the same ideas as OP.

    Took an evening. Just in time apps for one specific use case is a thing.

    And because it's so cheap to make and can be hosted cheaply with no backend, it can be given away for free.

    https://nyman.re/mapdraw/#l=60.172108%2C24.941458&z=16&d=LU8...

    • Gehinnn 2 minutes ago
      This is very cool!
    • mathgeek 43 minutes ago
      > Vibe engineered

      While I'm all for vibe coding as appropriate, there's a lot of humor to be found it calling it engineering. :D

      • block_dagger 40 minutes ago
        Fair. Though it seems that half of engineering is just giving a respectable name to whatever actually works.
        • mathgeek 33 minutes ago
          For software, but that's a well trodden path at this point. I've seen a few projects that are actually "vibe engineering" outside of software on the 3d modeling side so the terms are confusing.
    • RandomDistort 42 minutes ago
      Is this open source?
  • roxolotl 2 hours ago
    Was just working on something similar this morning. As an fyi you can avoid the string replacing in the base64 string by using `.toBase64({ alphabet: "base64url" })` and `fromBase64({ alphabet: "base64url"})`.

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...

  • maxloh 3 hours ago
    Per the spec [0], a URL can hold at least 8,000 characters.

    > It is RECOMMENDED that all senders and recipients support, at a minimum, URIs with lengths of 8000 octets in protocol elements. Note that this implies some structures and on-wire representations (for example, the request line in HTTP/1.1) will necessarily be larger in some cases.

    Mainstream browsers support at least 64,000 characters [1], and Chrome supports up to 2MB [2].

    [0]: https://www.rfc-editor.org/rfc/rfc9110#section-4.1-5

    [1]: https://stackoverflow.com/a/417184/

    [2]: https://chromium.googlesource.com/chromium/src/+/HEAD/docs/s...

    • medv 3 hours ago
      Chrome limit is 2MB, Firefox is 1MB, WebKit is no limit.

      Here is the Crime and Punishment by Fyodor Dostoevsky:

      - https://medv.io/goto/crime-and-punishment-by-fyodor-dostoevs...

      • gchamonlive 33 minutes ago
        Interesting, in Firefox mobile (actually fennec) if I tap the address bar, I get an empty text box.

        EDIT: actually I can edit the URL, but it takes a while to load.

      • maxloh 2 hours ago
        For what it's worth, there might be a 2GB limit on the iOS side.

        https://github.com/swiftlang/swift-corelibs-foundation/blob/...

      • hallole 2 hours ago
        LOL Tapping the address bar crashed my Chrome on mobile.
        • lurking_swe 1 hour ago
          loaded OK for me on mobile safari.
          • kylecazar 1 hour ago
            Loaded fine for me too -- but like parent, tapping the address bar to share afterwards crashed it on Android here :)
            • nosrepa 5 minutes ago
              My Firefox on mobile seemingly handled it fine.
      • scotty79 2 hours ago
        Works fine on Win11 Edge
    • berkes 1 hour ago
      I guess the surveillance industry has enough incentives to make this ever larger, so they can fit more utm-trackers, campaign-ids, referal trackers and whatnot in URLs.

      It's truly insane how large typical share-URLS for content on instagram, youtube or any other large platforms are. URLs that could've been example.com/t/some-large-enough-id?time=13337 are stuffed with hundreds of characters, just to gather more data on people using these links.

    • dspillett 2 hours ago
      > Per the spec [0], a URL can hold at least 8,000 characters.

      > It is RECOMMENDED that all senders and recipients support, at a minimum, URIs with lengths of 8000 octets in protocol elements.

      It is always worth remembering that, unless you have already ensured that the content has been rendered into a URI-safe subset of ASCII, a character and an octet are not the same thing.

      • ghurtado 2 hours ago
        Very good point indeed. In the worst case scenario, you would only have 1/5th of that capacity
  • greggman65 14 minutes ago
    I have something tangentially similar here: https://jsgist.org

    If you click save you get the option to use a URL.

    The problem with a URL every edit is a new URL. So you send the URL to a friend, then fix a typo, they need a new URL.

    The other problem is of course the space limit.

  • growt 2 hours ago
    I recently build a small framework to create JavaScript apps that use this kind of URL sharing and therefore don’t require a backend: https://github.com/grothkopp/lost.js
  • levmiseri 1 hour ago
    I really like this from a privacy point of view. So much so that I'm thinking about adding a purely URL-storage solution as an option in my https://kraa.io editor.
    • omoikane 34 minutes ago
      From a privacy point of view, you might not want to use textarea.my since it includes some tracking bits at the end:

          <script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"6a22b097a2b44fa4af0a95817ce96ab5","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
    • WD-42 1 hour ago
      From a privacy point of view how is it any better than just using a local, native text editor?
      • levmiseri 22 minutes ago
        From purely privacy point of view it’s not. But if you also want markdown features, custom typography and easy sharing, this starts to make more sense.
  • ctenb 3 hours ago
    I made something similar once, specifically targetted for guitar tablature https://tabviewer.app/ To make links shorter for sharing with others, I use a shortlink service. Pasting URLs of thousands of characters long can be problematic
  • nickweb 2 hours ago
    Think you've inadvertently found a way to provide extra tests for mobile devices.

    The Crime and Punishment one consistently crashes Brave mobile for me. I assume it's the length of the URL - and seen another commentator say the same for chrome mobile (sure they both use the same codebase so likely an upstream issue).

  • surrTurr 1 hour ago
    shameless plug: i built something very similar but nobody cared: https://github.com/AlexW00/Buffertab
  • nemtsv 27 minutes ago
    I think a couple of days ago I stumbled upon your editor in corp Google intranets when I was looking for internal tool to pretty print some json, small world :)
  • sltkr 40 minutes ago
    Something similar by Eric Wastl (of Advent of Code fame): https://topaz.github.io/paste/
  • billforsternz 2 hours ago
    This is very interesting, very refreshing, very simple and clever, very well done, very everything good. Bravo and thank you.
  • codazoda 2 hours ago
    Nice! I love this.

    I built Ponder in the same vein. It, however, has 10 files. I did not use the URL, did not have double the fun, and now I’m sad.

    https://github.com/codazoda/ponder

  • medv 3 hours ago
    In case you missed it: it is possible to style textarea via CSS and share it.

    - https://textarea.my/#TYuxDcIwEEWpmeKUCiSIJQoKU0KFRBUWOGwnWDi...

  • mixedmath 1 hour ago
    I wrote a similar app when mathbin was shutting down. It allows about 1500 characters of mathjax-displayed notes. [1]

    [1]: https://davidlowryduda.com/mathshare/

  • planb 2 hours ago
    A few weeks ago I vibe coded a guitar tab editor just because I wanted to share a quick tab in a chat group with my band. When the first prototype already worked great, I just couldn’t stop to add features so that it now even has mouseover chord diagrams and copy and paste.

    The sharing works just like here, by encoding the tab itself in the url.

    https://github.com/planbnet/guitartabs

  • samcollins 3 hours ago
    Nice! I made a similar thing but the html for the text editor fits in a data uri, so it can be a bookmark or new tab page for taking quick notes

    https://gist.github.com/smcllns/8b727361ce4cf55cbc017faaefbb...

  • wwarren 3 hours ago
    Amazing. The crime and punishment example crashed my iPhone’s Google Chrome when I tap the URL haha
  • huhtenberg 1 hour ago
    In Firefox, https://textarea.my shows up as as a completely static non-actionable white page. Just white, with default cursor. No errors on the console.
  • WhyIsItAlwaysHN 1 hour ago
    My own plug, translate between SQL dialects, state stored in URL so you can share it:

    https://sqlscope.netlify.app/

  • ljlolel 2 hours ago
    I love this.

    Now if you bootstrap the app code into the url too then you can have a minimal kernel to run any machine in url.

    Then you can also make a Quine somehow.

  • reconnecting 1 hour ago
    Are <head>, <body>, and </html> missing intentionally?

    Safari 15.6.1: Unhandled Promise Rejection: ReferenceError: Can't find variable: CompressionStream

    • wdporter 1 hour ago
      I probably shouldn’t presume to speak for the OP, but given that they’re optional, I would think so, yes.
  • marcuskaz 3 hours ago
    I have a similar one using localStorage https://github.com/mkaz/browser-pad
  • pglevy 2 hours ago
    Thanks for sharing! I tried a similar content-in-url approach for a family grocery list app but I couldn't get the url that short. (It worked but it was a bit cumbersome sharing over Whatsapp.) Will see what I can learn from this!
    • gisho 1 hour ago
      I created a similar app just 2 days ago targeting Whatsapp (https://linqshare.com) . Context: In my locality, EA, we normally have Whatsapp groups raising funds for whatever reason; for every content edit, the admin has to copy-edit-paste updated content(which contains name and amount) to the group. This small app intends to provide a table that's easy to convey this info. App stores content in the url but a preview image (needed for Whatsapp share) is stored at R2. Let me know if you want the source code running at Cloudflare.

      --edit-- test link: https://linqshare.com/#eJxtkM9KxDAQxl-lzLmHrv8Ova3IHlz04BY8F...

  • qbane 3 hours ago
    Just started making my own recently with CodeMirror 6 during holidays. No saving function for now: https://qbane.github.io/cgm
  • nvahalik 3 hours ago
    Love your other tools, btw!
    • medv 3 hours ago
      Thanks!
  • jaysonelliot 2 hours ago
    546,229 character-length URL for the Crime and Punishment example.

    Half a megabyte for a URL. That certainly is a thing.

  • xeonmc 3 hours ago
    Can you make it monospace by default, so that this can be used as a code snippet bin?
  • edgars_xx 3 hours ago
    love it, funny enough, I had similar idea pop into my head some weeks ago, just to be able to store quick notes and favorite them in my browser for later
  • LordDragonfang 2 hours ago
    It would be neat if ctrl+s offered to download the textarea to a .txt file.
  • ThrowawayTestr 2 hours ago
  • desireco42 2 hours ago
    The only thing missing is markdown and few themes. I think this is awesome idea for sharing. Love what you did with it.
  • rane 1 hour ago
    Now what if it didn't pollute browser history
  • mzelling 3 hours ago
    Love it!
  • deafpolygon 3 hours ago
    Can you save anything?
  • sublinear 2 hours ago
    I like these kinds of projects, but adding a file export/import is inevitable. It's less about the limits of a URL and more about practicality.

    I also have no way to confirm that URLs aren't logged server side, so I'd never trust the claim about "no tracking". That's why these projects also end up self-hosted.

    • denisinvader 2 hours ago
      hash part of url only available in the browser, as far as I know, server doesn’t have access to # value
      • jamesdwilson 1 hour ago
        very easy for the server to intentionally (or by compromise) add a one liner to send the hash text up.
      • sublinear 2 hours ago
        Typos and URL mangles are common though, and I'd still have no way to confirm if it got logged in that case. It's out of scope for anything in the github source, and instead depends on the server hosting the page. I know this isn't meant to be super secure, but it's still worth a mention.
        • throwaway150 1 hour ago
          Typos aren't making the hash part turn into something else. Like your parent comment explained to you, the hash part is not sent to the server. If you go out of your way to mangle the URL then of course a mangled URL without hash will likely get logged to the server. But I'm not sure how one would manage to go so much out of the way that they mangle the URL in a way that removes the hash.
          • sublinear 19 minutes ago
            You don't have a choice pasting links into some apps. They may strip out query and hash components, percent encode, force URL shortener services, etc.

            Percent encoding is particularly bad since it may also bloat the length causing truncation and the decompress to fail. There's endless footguns with URLs.