[HN Gopher] Show HN: Minimalist editor that lives in browser, st...
___________________________________________________________________
Show HN: Minimalist editor that lives in browser, stores everything
in the URL
I wanted to see how far I could go building a notes app using only
what modern browsers already provide - no frameworks, no storage
APIs, no build step. What it does: Single HTML file, no deps, 111
loc Notes live in the URL hash (shareable links!) Auto-compressed
with CompressionStream Plain-text editor (contenteditable)
History support Page title from first # heading Respects
light/dark mode No storage, cookies, or tracking The entire app
is the page source. https://textarea.my/
Author : medv
Score : 425 points
Date : 2025-12-24 19:42 UTC (1 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| nvahalik wrote:
| Love your other tools, btw!
| medv wrote:
| Thanks!
| deafpolygon wrote:
| Can you save anything?
| thomascgalvin wrote:
| Not OP: sure, just bookmark it
| tony_cannistra wrote:
| kinda -- but then you have to re-bookmark it every time you
| update it...
| medv wrote:
| It also saves to localStorage
| rorylawless wrote:
| https://textarea.my/#i0wtBgA=
| sltkr wrote:
| No that should be: https://textarea.my/#c8yrLMnIzEsHAA==
| RonanSoleste wrote:
| More like: https://textarea.my/#c8yrLMnIzEu3BwA=
| samcollins wrote:
| 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...
| qbane wrote:
| Just started making my own recently with CodeMirror 6 during
| holidays. No saving function for now: https://qbane.github.io/cgm
| wwarren wrote:
| Amazing. The crime and punishment example crashed my iPhone's
| Google Chrome when I tap the URL haha
| mzelling wrote:
| Love it!
| maxloh wrote:
| 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 wrote:
| 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...
| hallole wrote:
| LOL Tapping the address bar crashed my Chrome on mobile.
| lurking_swe wrote:
| loaded OK for me on mobile safari.
| kylecazar wrote:
| Loaded fine for me too -- but like parent, tapping the
| address bar to share afterwards crashed it on Android
| here :)
| nosrepa wrote:
| My Firefox on mobile seemingly handled it fine.
| maxloh wrote:
| For what it's worth, there might be a 2GB limit on the iOS
| side.
|
| https://github.com/swiftlang/swift-corelibs-
| foundation/blob/...
| scotty79 wrote:
| Works fine on Win11 Edge
| gchamonlive wrote:
| 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.
| oneseven wrote:
| hmmm makes me wonder if you could train llms on gzipped text.
| would save a lot of tokens that way.
| spicyusername wrote:
| Incredible.
|
| My absolute favorite thing about modernity is how enabled we
| are to riff on a riff of a riff.
|
| In 1346, if a blacksmith came up with something cool, its
| quite possible that it died with them.
| Kye wrote:
| One thing I've learned from checking up on assumptions I've
| had about history is that it's easy to underestimate people
| in past times. They were probably better at communicating
| this stuff than you think.
| caminanteblanco wrote:
| This unfortunately immediately crashed my android firefox
| nightly browser. Amusingly it loaded the page, but one click
| on the address bar sent me straight to the home screen
| Departed7405 wrote:
| For me on IronFox it showed an empty URL bar but loaded
| after what felt like 5 seconds.
| buddhistdude wrote:
| I find it interesting that when you read this comment, the
| whole book is already on your computer. And it gets rendered
| when your press the link.
|
| Edit: actually not true since you use a url shortener
| idle_zealot wrote:
| I can open the page with the book text on mobile Safari, but
| iOS seems to cut off content when trying to copy/share the
| page URL. I can't get it to survive a round-trip to Notes.
| Might be a good thing to note for mobile users that if they
| write too much attempting to save their link will corrupt it.
| dspillett wrote:
| _> 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 wrote:
| Very good point indeed. In the worst case scenario, you would
| only have 1/5th of that capacity
| berkes wrote:
| 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.
| mrweasel wrote:
| What could the reasoning behind allowing anything beyond 64.000
| characters possibly been? Even 64k seems unnecessarily large.
| marcuskaz wrote:
| I have a similar one using localStorage
| https://github.com/mkaz/browser-pad
| ctenb wrote:
| 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
| planb wrote:
| Wow funny I'm just seeing this after posting my tab editor in
| another comment. I have the same use case as you :)
|
| https://github.com/planbnet/guitartabs
| xeonmc wrote:
| Can you make it monospace by default, so that this can be used as
| a code snippet bin?
| adamschwartz wrote:
| Try https://a10z.co/note
| medv wrote:
| Sure! textarea.my support custom style attr:
| https://textarea.my/#Ky4tSlVUyCotLlEoLUhJLElVKC6pzElVSCwpKWJ...
| throwaway150 wrote:
| How do you share after that? I can open devtools and change
| the attribute but the URL doesn't update after that.
| medv wrote:
| Update the text a bit to trigger save event.
| koolala wrote:
| This is a code editor with the same url idea:
|
| https://flems.io/
| edgars_xx wrote:
| 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
| medv wrote:
| In case you missed it: it is possible to style textarea via CSS
| and share it.
|
| - https://textarea.my/#TYuxDcIwEEWpmeKUCiSIJQoKU0KFRBUWOGwnWDi...
| growt wrote:
| 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
| ThrowawayTestr wrote:
| https://textarea.my/#Cy4tsAcA
| teach wrote:
| https://textarea.my/#Cy4tsOfi8ssvUcgtTc7QU_DIz0stLsmpVPBUSK0...
| medv wrote:
| https://textarea.my/#ZY_NTgMhFIVd9ylYNZpMuQwDmZ9m4qM0SG9ncCg.
| ..
| RonanSoleste wrote:
| https://textarea.my/#ZY87b8MgFIU7-1fQJWqlBDDG8iOyOnfvHlF8Y6
| g...
| sublinear wrote:
| 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 wrote:
| hash part of url only available in the browser, as far as I
| know, server doesn't have access to # value
| sublinear wrote:
| 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 wrote:
| 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 wrote:
| 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.
| jamesdwilson wrote:
| very easy for the server to intentionally (or by compromise)
| add a one liner to send the hash text up.
| billforsternz wrote:
| This is very interesting, very refreshing, very simple and
| clever, very well done, very everything good. Bravo and thank
| you.
| desireco42 wrote:
| The only thing missing is markdown and few themes. I think this
| is awesome idea for sharing. Love what you did with it.
| jaysonelliot wrote:
| 546,229 character-length URL for the Crime and Punishment
| example.
|
| Half a megabyte for a URL. That certainly is a thing.
| ljlolel wrote:
| 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.
| nickweb wrote:
| 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).
| codazoda wrote:
| 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
| pglevy wrote:
| 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 wrote:
| 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...
| planb wrote:
| 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
| LordDragonfang wrote:
| It would be neat if ctrl+s offered to download the textarea to a
| .txt file.
| roxolotl wrote:
| 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...
| huhtenberg wrote:
| 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.
| levmiseri wrote:
| 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.
| WD-42 wrote:
| From a privacy point of view how is it any better than just
| using a local, native text editor?
| levmiseri wrote:
| 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.
| omoikane wrote:
| 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" integri
| ty="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPU
| qr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version
| ":"2024.11.0","token":"6a22b097a2b44fa4af0a95817ce96ab5","r":1,
| "server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cf
| ExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"
| location_startswith":null}}' crossorigin="anonymous"></script>
| brightbeige wrote:
| The tracking isn't in the html, and as it's static, you can
| host it any other way you like
|
| https://htmlpreview.github.io/?https://raw.githubusercontent.
| ..
| gnyman wrote:
| 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...
| mathgeek wrote:
| > 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 wrote:
| Fair. Though it seems that half of engineering is just giving
| a respectable name to whatever actually works.
| mathgeek wrote:
| 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.
| InsideOutSanta wrote:
| I just hope actual engineers don't start vibe engineering
| bridges and buildings.
| gnyman wrote:
| this is not something I came up with, Simon wrote it and I
| liked the differentiation between "vibe coding" where there
| is less effort
|
| for this case project I think I would actually go back and
| say it's vibe coded, but I didn't want to just call it vibe
| coding because I did spend time going back and forth and
| directing the agent
|
| https://simonwillison.net/2025/Oct/7/vibe-engineering/
| mathgeek wrote:
| Interesting distinction. I've previously heard vibe coding
| described as "vibe prompting, but you actually do some
| work." That aside though, I just call what you're
| describing as coding with AI.
| bdangubic wrote:
| coding with AI is coding just as much as coding with
| VSCode is coding. you decide which parts you get help
| from a given tool and which you don't. end of the day, it
| is all coding and "coding with AI" sounds as silly as
| "coding with keyboard / microphone"
| stogot wrote:
| I suspected it needed to be directed with a specification
| to call it vibe engineered
| NuclearPM wrote:
| What is funny about it?
| RandomDistort wrote:
| Is this open source?
| gnyman wrote:
| it's a static webpage, the source is available with right-
| click view source, I added a BSD2 licence header to it to
| make clear it's fine to take and do mostly whatever with
| Gehinnn wrote:
| This is very cool!
| nextaccountic wrote:
| This is pretty cool!
|
| And if you are open to bug reports.. if I move around the
| drawings move smoothly with the map, but if I zoom in/out the
| drawings move only after the map zooming animation ends, rather
| than smoothly
| blntechie wrote:
| This is so cool!! The responsiveness of the page is so much
| better than any maps app I have used.
| gnyman wrote:
| yeah, isn't it impressive how fast modern computers can be if
| you make a bit of effort, in this case I think I told it to
| just use plain javascript and make sure it's fast :-)
| antman wrote:
| That is absolutely great! Using it now to plan a trip.
|
| Could we also add text annotations? Also the delete button
| could delete just the last shape or a selected shape so as not
| to start over?
| zenmac wrote:
| Great tool! There is a little issue with the +/- zoom buttons
| not working something cause it is over layed by other div
| blocks. On mac firefox.
|
| Is the code open source online somewhere?
| gnyman wrote:
| thanks for the info, I'll see if I can get a agent to fix it
|
| it's a static webpage, the source is available with right-
| click view source, I added a BSD2 licence header to it to
| make clear it's fine to take and do mostly whatever with
| zenmac wrote:
| Yeah just would be good on a codeberg or gitlab or maybe
| even github repo. So we can do PR.
|
| Here is the fix:
|
| .leaflet-top, .leaflet-left{ z-index: 100000; /* some high
| number */ }
| gnyman wrote:
| hmm, I tried it on firefox and it works for me, and for
| me .leaflet-top already has a high z-index: 1000;
|
| although I run 140.6.0esr so maybe newer ones need a even
| higher one?
|
| the code is on GH now https://github.com/gnyman/mapdraw ,
| codeberg is on my todo
| Kailhus wrote:
| Could try the hacky 2147483647 max z-index. No issue on
| android firefox
| gnyman wrote:
| I put a copy of the source on GH in case in case someone wants
| to improve things https://github.com/gnyman/mapdraw
| getupyang wrote:
| Really cool--this is the fastest-loading map I've ever used.
| piffey wrote:
| Love this. Can't tell you how many times I've screenshotted
| maps then drawn on directions for family/friends. Great idea.
| nolito wrote:
| But not well tested. Try to create a map and copy the url to
| another map. Now change the first map with more anotations or
| move the map center and copy the generated url and paste it
| into the other map on the other browser. That does not work (at
| least for me on different browsers).
| gnyman wrote:
| I think I know what you mean, thanks for the report, if you
| modify the # part on a webpage it's not the same as reloading
| it, and I doubt I watch for that part changing
| ninalanyon wrote:
| Looks useful but doesn't work quite as expected for me.
|
| In Vivaldi location tracking doesn't work. Version 7.7.3851.66
| (Official Build) (64-bit) Chromium Version 142.0.7444.245
| Extended Stable channel (may also include additional security
| patches) Channel Official Build Platform / OS Linux - linuxmint
| 21.3
|
| And in Firefox 146.0.1 on the same machine the URL doesn't get
| updated.
| surrTurr wrote:
| shameless plug: i built something very similar but nobody cared:
| https://github.com/AlexW00/Buffertab
| antman wrote:
| Voice typing is a cool feature, have you considered whisper
| wasm instead of OpenAI api?
| zahlman wrote:
| I've seen a few others on HN this year, I'm pretty sure.
| WhyIsItAlwaysHN wrote:
| My own plug, translate between SQL dialects, state stored in URL
| so you can share it:
|
| https://sqlscope.netlify.app/
| reconnecting wrote:
| Are _< head>, <body>, and </html>_ missing intentionally?
|
| Safari 15.6.1: _Unhandled Promise Rejection: ReferenceError: Can
| 't find variable: CompressionStream_
| wdporter wrote:
| I probably shouldn't presume to speak for the OP, but given
| that they're optional, I would think so, yes.
| rane wrote:
| Now what if it didn't pollute browser history
| mixedmath wrote:
| 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/
| sltkr wrote:
| Something similar by Eric Wastl (of Advent of Code fame):
| https://topaz.github.io/paste/
| nemtsv wrote:
| 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 :)
| medv wrote:
| The http://go/fmt-err? =) Yes, it is mine.
| greggman65 wrote:
| 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.
| theoa wrote:
| This hack has completely disrupted my afternoon! Perhaps even
| forever after.
| zX41ZdbW wrote:
| I've implemented the same idea a few years ago:
| https://pastila.nl/
| medv wrote:
| It uses DB at the backend.
| urbandw311er wrote:
| Neat. But why would you auto-set the title from markdown heading
| syntax when it doesn't support markdown? (Or any rich text in
| fact)
| medv wrote:
| You can still write markdown. Nobody prevents you.
| spacedoutman wrote:
| Seems like we have all built something similar.
|
| hopefully mine can stand out with all the extra features i have
| managed to cram in
| valgaze wrote:
| Brings this to mind: https://hashify.me/IyBUaXRsZQ==
| gabrielsroka wrote:
| I did something similar with a spreadsheet years ago. It's
| lkudgy, but it works. You have to tab away from the input box and
| refresh the page, iirc.
|
| https://gabrielsroka.github.io/webpages/calc.htm#a1:=Rate=3....
| https://gabrielsroka.github.io/webpages/calc.htm#a1:=Rate=3.875;a
| 2:=Years=30;a3:=NPer=Years*12;a4:=PV=644000;a5:=Pmt=Math.round(Ma
| th.pmt(Rate/12/100,NPer,PV)*100+1)/100;rows:5;cols:1
|
| More examples https://gabrielsroka.github.io/webpages/
|
| It's about 130 js loc
| frizlab wrote:
| > Respects light/dark mode
|
| Not really... using js to change the CSS on the go is not a good
| practice. Why does it matter? Because of the "dark mode" browser
| extensions. They often use the presence of @media query (or other
| standard CSS means of setting dark mode colors), and if it's the
| JS that changes the colors we often get partial Dark Mode, which
| does not work at all.
| medv wrote:
| No js is used for colors.
| frizlab wrote:
| Oh. I retract my comment, I just read the code. My Dark Mode
| extension just sucks.
| rfl890 wrote:
| You claim no tracking, and yet there's a Cloudflare Web Analytics
| beacon placed at the bottom of the page (thankfully filtered out
| by uBlock Origin)
| gettingoverit wrote:
| By the look on the issues there, it seems the rest of the post
| is not that true either
|
| Edit. Call me a hater, but... I know the guy! That's the guy
| from Google whose code never works in the most hilarious ways!
| See issues on the rest of his pinned repos.
| cantalopes wrote:
| I feel this is more of a fun toy project because if i used it
| every day my browser history cache and browser performance would
| get annihilated
| thelastgallon wrote:
| I wonder if this can be paired with a local URL shortener?
| Chaining this with a local URL shortener can mean access to any
| doc with a single letter (or very letters).
| bdcravens wrote:
| I keep this in the bookmark bar for the times I need a place to
| paste a quick bit of text (but it doesn't persist):
|
| data:text/html, <html contenteditable>
| lifthrasiir wrote:
| Use xem's version [1] if you need persistence:
| <body id=b contentEditable
| onload=b[i="innerHTML"]=[(l=localStorage).c] oninput=l.c=b[i]>
|
| [1] https://xem.github.io/postit/
| meander_water wrote:
| Cool project, but loading "Crime and Punishment" crashed my
| mobile browser.
|
| I don't think urls were built for that kind of punishment.
| ooxoo wrote:
| I think it was the text-wrap-style value.
| https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/P...
| jerrygoyal wrote:
| I too built a one (text is stored in localstorage)
|
| https://gourav.io/devtools/notepad
| Yash16 wrote:
| I like this because most of the time I need random stuff--
| numbers, quick searches, or ideas--and this helps instantly.
| srexrg wrote:
| this is indeed minimalistic :)
| zkmon wrote:
| Why store in the URL and make it bloated? Isn't storing in local
| storage enough?
| Departed7405 wrote:
| The point is you can share it anywhere very easily.
| ngc6677 wrote:
| also here https://space-
| element.pages.dev/#data=eyJ2YWx1ZSI6IvCTgoAg8J...
| Sayyidalijufri wrote:
| First I think it's still loading because it's only white
|
| but when I hit the keyboard I can see my it's is already loaded
|
| Good job!
| dachris wrote:
| The compression is nice, you can fit very long (low-entropy ;-)
| messages in there - this one is 9k characters:
|
| https://textarea.my/#7cGBAAAAAMMgzfmTHORVAQAAAAAAAADAuwE=
| AltruisticGapHN wrote:
| I love this. Great little html page to refresh on Javascript.
|
| For fun I put it in chatgpt and asked if there are bugs.
|
| It warned about fromBase64() and toBase64() not existing in main
| browsers. It is supported but is indeed a new "baseline
| 2025"feature. It suggested more compatible code using two small
| functions to convert characters manually.
|
| "deflate-raw is not consistently supported." It suggested using
| 'deflate' instead.
| okaleniuk wrote:
| I exploit the similar idea for teaching: https://lnkd.in/gsySKda4
|
| Students are lazy, in a good way, so they are more likely to run
| things on their own and play with interactive bits if the whole
| lecture is just one link.
| nchmy wrote:
| Crashes my mobile chromium browsers when I try to open crime and
| punishment.
|
| Firefox seems to work.
| coder543 wrote:
| I remember another one that was popular years ago:
| https://news.ycombinator.com/item?id=17459204
| 101008 wrote:
| I am thinking from a piracy perspective. If I share a link that
| contains a book, what can be done from DCMA or legal regulators?
| They can't ask the server (textarea.my) to remove the link
| because it doesn't exist.
|
| They can't track every website with the link and ask to be
| removed, either.
|
| Could they ask textarea.my to not parse the link and thus, not
| display the content? Could textarea.my refuse?
| singiamtel wrote:
| I would hope not. The copyrighted content seems to be the link
| rather than anything in the app.
|
| Your example sounds like stopping notepad from rendering
| copyrighted content
| wavemode wrote:
| From a technical perspective, you're absolutely correct.
|
| From a regulatory perspective, it seems unlikely that most
| courts would appreciate the difference. In their mind - you
| run a website, and that website contains copyrighted content.
| Take it down.
|
| You'd probably have to just blacklist the link in question to
| avoid a legal headache.
| fsmv wrote:
| A book won't fit in the URL anyway even with compression
| badsectoracula wrote:
| Someone in another comment posted Crime and Punishment by
| Fyodor Dostoevsky, so a book fits in the URL. It is just that
| the URL is ~500000 characters :-P (the book itself is ~1.2M
| characters)
| tnecio wrote:
| In this case I'd say the link _is_ the content. So it would be
| the place where you share the link, rather than the "rendering
| page", which should be more worried
| chuckadams wrote:
| TypeScript playground does effectively the same thing for shared
| links, though it doesn't live-update as you type.
| mishrapravin441 wrote:
| Very nice exploration of URL-as-state. The approach is elegant,
| but the mobile crashes highlight how hostile real-world URL
| handling still is once links leave the browser.
| ooxoo wrote:
| The performance issues may be due to using `text-wrap-style:
| pretty`. Try switching the value to `stable`.
| https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/P...
| ciccionamente wrote:
| I used the same principle to let people write their own emergency
| notes in a secure way: https://weexpire.org
| nake13 wrote:
| I built a very similar experiment about 10 days ago and shared it
| here (the post is in
| Chinese):https://x.com/nake13/status/2000401664923324439
|
| My focus was on finding a good text-URL-slug compression
| strategy. I used ChatGPT-5.2-Pro mainly to explore and compare
| different compression approaches and trade-offs.
| qingcharles wrote:
| Here's one I took from somewhere and optimized that is just a
| bookmarklet, so there's nothing remote:
|
| data:text/html,<title>Notepad</title><textarea autofocus
| spellcheck=0 style="position:fixed;inset:0;padding:1em;border:0;f
| ont:monospace">
|
| Your text actually survives a reboot in Chrome.
|
| Can anyone think of a way to store the textarea value in the URL?
| I tried using JS to set a # but it's nonsensical in this context.
|
| Edit: here's the best I could do:
|
| data:text/html,<title>Notepad</title><textarea id=t autofocus
| spellcheck=0 style=position:fixed;inset:0;padding:2em;border:0;fo
| nt:monospace></textarea><a id=s
| style=position:fixed;top:10px;right:10px>Right-click Open to
| save...</a><script>[,P,S]=location.href.slice(15).match(/(. _<
| textarea[^>]_>)[^] _?( <\/textarea>._)/),t.oninput=U=_=>s.href='d
| ata:text/html,'+P+encodeURIComponent(t.value.replace(/&/g,'&'
| ).replace(/<\/textarea/g,'</textarea'))+S,U()</script>
| khalby786 wrote:
| let's not forget the og itty.bitty.site [0]
|
| [0]: http://about.bitty.site/
| danhite wrote:
| caveat emptor re long hashtag techniques on (ipad) safari ...
|
| you may think safari has no effective url limit (i.e. very high)
| but if you ever treat a url within the url bar as editable you
| are at risk to be silently truncated to 4096 bytes (eg select a
| character in the url bar and replace it)
|
| also re-testing potential ~buffer limits in various ways on
| ipadOS 26.2 safari just now slowed my safari ui down to a crawl
|
| eg after saving example.com with ~20k #hashtag to reading list --
| each keystroke in this reply was taking several seconds, so I had
| to force quit safari and retype to post this warning
___________________________________________________________________
(page generated 2025-12-25 23:00 UTC)