9 ms·
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/ https://textarea.my/
- LordDragonfang 10mo agoIt would be neat if ctrl+s offered to download the textarea to a .txt file.
- nvahalik 10mo agoLove your other tools, btw!
- medv 10mo agoThanks!
- deafpolygon 10mo agoCan you save anything?
- thomascgalvin 10mo agoNot OP: sure, just bookmark it
- tony_cannistra 10mo agokinda -- but then you have to re-bookmark it every time you update it...
- medv 10mo agoIt also saves to localStorage
- rorylawless 10mo agohttps://textarea.my/#i0wtBgA= https://textarea.my/#i0wtBgA=
- sltkr 10mo agoNo that should be: https://textarea.my/#c8yrLMnIzEsHAA== https://textarea.my/#c8yrLMnIzEsHAA==
- RonanSoleste 10mo agoMore like: https://textarea.my/#c8yrLMnIzEu3BwA= https://textarea.my/#c8yrLMnIzEu3BwA=
- deleted 10mo ago[deleted]
- samcollins 10mo agoNice! 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/8b727361ce4cf55cbc017faaefbbf951 https://gist.github.com/smcllns/8b727361ce4cf55cbc017faaefbb...
- qbane 10mo agoJust started making my own recently with CodeMirror 6 during holidays. No saving function for now: https://qbane.github.io/cgm https://qbane.github.io/cgm
- wwarren 10mo agoAmazing. The crime and punishment example crashed my iPhone’s Google Chrome when I tap the URL haha
- mzelling 10mo agoLove it!
- maxloh 10mo agoPer 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 https://www.rfc-editor.org/rfc/rfc9110#section-4.1-5 [1]: https://stackoverflow.com/a/417184/ https://stackoverflow.com/a/417184/ [2]: https://chromium.googlesource.com/chromium/src/+/HEAD/docs/security/url_display_guidelines/url_display_guidelines.md#url-length https://chromium.googlesource.com/chromium/src/+/HEAD/docs/s...
- medv 10mo agoChrome 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-dostoevsky.html https://medv.io/goto/crime-and-punishment-by-fyodor-dostoevs...
- hallole 10mo agoLOL Tapping the address bar crashed my Chrome on mobile.
- lurking_swe 10mo agoloaded OK for me on mobile safari.
- marcuskaz 10mo agoI have a similar one using localStorage https://github.com/mkaz/browser-pad https://github.com/mkaz/browser-pad
- ctenb 10mo agoI made something similar once, specifically targetted for guitar tablature https://tabviewer.app/ 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 10mo agoWow 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 https://github.com/planbnet/guitartabs
- xeonmc 10mo agoCan you make it monospace by default, so that this can be used as a code snippet bin?
- adamschwartz 10mo agoTry https://a10z.co/note https://a10z.co/note
- medv 10mo agoSure! textarea.my support custom style attr: https://textarea.my/#Ky4tSlVUyCotLlEoLUhJLElVKC6pzElVSCwpKWJIy88r0U1LzM3MqbRSyM3Pyy8uSExOtQYA https://textarea.my/#Ky4tSlVUyCotLlEoLUhJLElVKC6pzElVSCwpKWJ...
- throwaway150 10mo agoHow do you share after that? I can open devtools and change the attribute but the URL doesn't update after that.
- medv 10mo agoUpdate the text a bit to trigger save event.
- koolala 10mo agoThis is a code editor with the same url idea: https://flems.io/ https://flems.io/
- edgars_xx 10mo agolove 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 10mo agoIn case you missed it: it is possible to style textarea via CSS and share it. - https://textarea.my/#TYuxDcIwEEWpmeKUCiSIJQoKU0KFRBUWOGwnWDi-yHcJhClYhKWYBAua_O49_XfsWYA6F-HghjNRYMBoAa0FljE4QJEEQoBJvMkMn_drNoe8C5pbk6iPVkOfwkKp1tmh9KSQ2QkrFkxcNr5e7n5BTVHWNbY-jBqKPbXeQIWR4VQVq6nIZPrEfnCTkP3Tadhsu8dfGgqUNNyvXvLtCw== https://textarea.my/#TYuxDcIwEEWpmeKUCiSIJQoKU0KFRBUWOGwnWDi...
- growt 10mo agoI 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 https://github.com/grothkopp/lost.js
- ThrowawayTestr 10mo agohttps://textarea.my/#Cy4tsAcA https://textarea.my/#Cy4tsAcA
- teach 10mo agohttps://textarea.my/#Cy4tsOfi8ssvUcgtTc7QU_DIz0stLsmpVPBUSK0oSE0uSU1RSFQoykzOLsrPydHj4gIA https://textarea.my/#Cy4tsOfi8ssvUcgtTc7QU_DIz0stLsmpVPBUSK0...
- medv 10mo agohttps://textarea.my/#ZY_NTgMhFIVd9ylYNZpMuQwDmZ9m4qM0SG9ncCggXNro0xujcaG7c76z-c7DjjHGXozdlhxrOE-sZv-4EqUyASRv6BLzldOKN8wLchuvcE8HGwNhIKjJR3MuUBxhAQl2jbmWX_xdT6YUJLg4jyBl18pej5Cd3XL0_qQ2_pqW57dqvKP3eRT7Qtml2Xi_tzmmWTSt4L0alRqUFr3smlaIph-4Fm0rOjEOWqun458jh-I-cGJfosaFf2vGhIYmFuJPPO4-AQ== https://textarea.my/#ZY_NTgMhFIVd9ylYNZpMuQwDmZ9m4qM0SG9ncCg...
- RonanSoleste 10mo agohttps://textarea.my/#ZY87b8MgFIU7-1fQJWqlBDDG8iOyOnfvHlF8Y6gJELikan9904c6tN90Hss5VfXFk1F-zbfkkXiAGWaCRuFNRa48K70uKRQ_j6Qkd2cQYx4Zi07hMaQTRQMXSAtQHU7sNe508AgeWYkuqDmzbBEyE0ybkEr-jb_tQeUMyI7WAROiqUXXDixZvabg3EGu9CUuD-einMW3aeCbjMnGSTm30SnEiW9rTjs5SNnLlneiuXq-7Xra8rrmDR_6tpX3-z9Hdtm-w0g-hyrr_7UJIigciQ8_cl99AA== https://textarea.my/#ZY87b8MgFIU7-1fQJWqlBDDG8iOyOnfvHlF8Y6g...
- sublinear 10mo agoI 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 10mo agohash part of url only available in the browser, as far as I know, server doesn’t have access to # value
- sublinear 10mo agoTypos 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 10mo agoTypos 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 10mo agoYou 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.
- billforsternz 10mo agoThis is very interesting, very refreshing, very simple and clever, very well done, very everything good. Bravo and thank you.
- desireco42 10mo agoThe only thing missing is markdown and few themes. I think this is awesome idea for sharing. Love what you did with it.
- jaysonelliot 10mo ago546,229 character-length URL for the Crime and Punishment example. Half a megabyte for a URL. That certainly is a thing.
- ljlolel 10mo agoI 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 10mo agoThink 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 10mo agoNice! 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 https://github.com/codazoda/ponder
- pglevy 10mo agoThanks 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 10mo agoI created a similar app just 2 days ago targeting Whatsapp (https://linqshare.com 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-lzLmHrv8Ova3IHlz04BY8FA9jO9hoki7J1GVd9ujNgwoiguDFJ_MJfITNtHXZghBC8vu-mW-SFVSEJTkPaQ7naAhiGJu6sRwOM0ZuPFzF4OqFOHKYOLSF8lFQR0kS9p_Px2DIYdxocgoD2RvwSyzICT4S-vv19tzZtSok6zAZ4FO0QkdxkiRxL72-t9KU9L2y2_7bkjO8I9vndsLLU9_LkG_nbOn3R0uPw5DSZX93yInih5swpi7lYQeDB2TK1Fwto7ZmkHyCVpHuKnb5lBRX__gvlmgFy2pTMfj-7uGTDTFCugJWrAlSyMhzlOG1li8pyRdOzVnVNkgzNHNNEYuDxREtJJNMfas8rNcbV4CUAg https://linqshare.com/#eJxtkM9KxDAQxl-lzLmHrv8Ova3IHlz04BY8F...
- planb 10mo agoA 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 https://github.com/planbnet/guitartabs
- roxolotl 10mo agoWas 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/Reference/Global_Objects/Uint8Array/fromBase64#alphabet https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
- huhtenberg 10mo agoIn Firefox, https://textarea.my 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 10mo agoI 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 https://kraa.io editor.
- WD-42 10mo agoFrom a privacy point of view how is it any better than just using a local, native text editor?
- levmiseri 10mo agoFrom 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 10mo agoFrom 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>
- brightbeige 10mo agoThe 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.com/antonmedv/textarea/refs/heads/master/index.html#88tXcM7JL01Jy0ksSgUA https://htmlpreview.github.io/?https://raw.githubusercontent...
- wingtw 10mo agoStart writing / Leaf list Settings Press on "add tag to filter by" Type any character Aand im dropped back to empty editor with just that one character visible (Firefox 146.0.1 (Build #2016132551), 86bb7f6af6312ba3c0161085f854bcdff68f1a91 GV: 146.0.1-20251217121356 AS: 146.0.2 OS: Android 14)
- gnyman 10mo agoFunny 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=LU8xSyNhFJz57hLD3e13gctmi900d9uYFY5UXtJcdWSb5RqTJmW2sdxtRBsXQRRBCahVQhARQd0iNhb5A64iViKpBHHxB4iFFoJfVGbeq2bmvRHZjtjbPK5Gd6lx93kwkZ9dOzquxgepcUDLw3-0MIsVosvxniu3fc_13ErTbGrh91DrM5NwIiV2BCKBeyIhYiKEC0vDNDwEH_Ztyi5r2_wz15yvBeVgqmU15D84chK_FCZhQoNdK4flmHZCe0lYfSETURwJ2RHFaxZ85FF6k5XUvMOUTq4uG8WgEBQbsiGnc07WVOf7RI_qPcUfoe6bru5qli7fTToq5t9Tts5Y7_J3u-RktBnoX6PnQfX-KDWeqPXGLaw91rYoF9DET-RQ0fRvVy-D6v5uathDgSHxSCwJJALnAg_EiIg4bq6EKuvkJjVWeZHJxpw6pD3kuJlih9YGC2Heh9S_XKrEw9vUqI8-BTGXGXOdPS522I7o-Y6bsV4B https://nyman.re/mapdraw/#l=60.172108%2C24.941458&z=16&d=LU8...
- mathgeek 10mo 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
- NuclearPM 10mo agoWhat is funny about it?
- block_dagger 10mo agoFair. Though it seems that half of engineering is just giving a respectable name to whatever actually works.
- mathgeek 10mo agoFor 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.
- 10mo ago
- surrTurr 10mo agoshameless plug: i built something very similar but nobody cared: https://github.com/AlexW00/Buffertab https://github.com/AlexW00/Buffertab
- WhyIsItAlwaysHN 10mo agoMy own plug, translate between SQL dialects, state stored in URL so you can share it: https://sqlscope.netlify.app/ https://sqlscope.netlify.app/
- mixedmath 10mo agoI wrote a similar app when mathbin was shutting down. It allows about 1500 characters of mathjax-displayed notes. [1] [1]: https://davidlowryduda.com/mathshare/ https://davidlowryduda.com/mathshare/
- reconnecting 10mo agoAre <head>, <body>, and </html> missing intentionally? Safari 15.6.1: Unhandled Promise Rejection: ReferenceError: Can't find variable: CompressionStream
- wdporter 10mo agoI probably shouldn’t presume to speak for the OP, but given that they’re optional, I would think so, yes.
- rane 10mo agoNow what if it didn't pollute browser history
- sltkr 10mo agoSomething similar by Eric Wastl (of Advent of Code fame): https://topaz.github.io/paste/ https://topaz.github.io/paste/
- nemtsv 10mo agoI 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 10mo agoThe http://go/fmt-err? =) Yes, it is mine.
- greggman65 10mo agoI have something tangentially similar here: https://jsgist.org 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 10mo agoThis hack has completely disrupted my afternoon! Perhaps even forever after.
- zX41ZdbW 10mo agoI've implemented the same idea a few years ago: https://pastila.nl/ https://pastila.nl/
- medv 10mo agoIt uses DB at the backend.
- urbandw311er 10mo agoNeat. 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 10mo agoYou can still write markdown. Nobody prevents you.
- spacedoutman 10mo agoSeems like we have all built something similar. hopefully mine can stand out with all the extra features i have managed to cram in
- valgaze 10mo agoBrings this to mind: https://hashify.me/IyBUaXRsZQ== https://hashify.me/IyBUaXRsZQ==
- gabrielsroka 10mo agoI 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.875;a2:=Years=30;a3:=NPer=Years*12;a4:=PV=644000;a5:=Pmt=Math.round(Math.pmt(Rate/12/100,NPer,PV)*100+1)/100;rows:5;cols:1 https://gabrielsroka.github.io/webpages/calc.htm#a1:=Rate=3.... https://gabrielsroka.github.io/webpages/calc.htm#a1:=Rate=3.875;a2:=Years=30;a3:=NPer=Years*12;a4:=PV=644000;a5:=Pmt=Math.round(Math.pmt(Rate/12/100,NPer,PV)*100+1)/100;rows:5;cols:1 More examples https://gabrielsroka.github.io/webpages/ https://gabrielsroka.github.io/webpages/ It's about 130 js loc
- frizlab 10mo ago> 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.
- rfl890 10mo agoYou 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 10mo agoBy 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 10mo agoI 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 10mo agoI 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 10mo agoI 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 10mo agoUse 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/ https://xem.github.io/postit/
- meander_water 10mo agoCool project, but loading "Crime and Punishment" crashed my mobile browser. I don't think urls were built for that kind of punishment.
- ooxoo 10mo agoI think it was the text-wrap-style value. https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/text-wrap-style#pretty https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/P...
- jerrygoyal 10mo agoI too built a one (text is stored in localstorage) https://gourav.io/devtools/notepad https://gourav.io/devtools/notepad
- Yash16 10mo agoI like this because most of the time I need random stuff—numbers, quick searches, or ideas—and this helps instantly.
- srexrg 10mo agothis is indeed minimalistic :)
- zkmon 10mo agoWhy store in the URL and make it bloated? Isn't storing in local storage enough?
- Departed7405 10mo agoThe point is you can share it anywhere very easily.
- Sayyidalijufri 10mo agoFirst 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!
- thomas_tank_321 10mo ago[dead]
- ngc6677 10mo agoalso here https://space-element.pages.dev/#data=eyJ2YWx1ZSI6IvCTgoAg8JOHmiDwk4%2BfIPCTj54ifQ%3D%3D https://space-element.pages.dev/#data=eyJ2YWx1ZSI6IvCTgoAg8J...
- dachris 10mo agoThe compression is nice, you can fit very long (low-entropy ;-) messages in there - this one is 9k characters: https://textarea.my/#7cGBAAAAAMMgzfmTHORVAQAAAAAAAADAuwE= https://textarea.my/#7cGBAAAAAMMgzfmTHORVAQAAAAAAAADAuwE=
- AltruisticGapHN 10mo agoI 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 10mo agoI exploit the similar idea for teaching: https://lnkd.in/gsySKda4 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 10mo agoCrashes my mobile chromium browsers when I try to open crime and punishment. Firefox seems to work.
- coder543 10mo agoI remember another one that was popular years ago: https://news.ycombinator.com/item?id=17459204 https://news.ycombinator.com/item?id=17459204
- 101008 10mo agoI 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 10mo agoI 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 10mo agoFrom 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 10mo agoA book won't fit in the URL anyway even with compression
- badsectoracula 10mo agoSomeone 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 10mo agoIn 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 10mo agoTypeScript playground does effectively the same thing for shared links, though it doesn't live-update as you type.
- mishrapravin441 10mo agoVery 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 10mo agoThe 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/Properties/text-wrap-style#description https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/P...
- ciccionamente 10mo agoI used the same principle to let people write their own emergency notes in a secure way: https://weexpire.org https://weexpire.org
- nake13 10mo agoI built a very similar experiment about 10 days ago and shared it here (the post is in Chinese):https://x.com/nake13/status/2000401664923324439 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 10mo agoHere'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;font: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;font: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='data:text/html,'+P+encodeURIComponent(t.value.replace(/&/g,'&').replace(/<\/textarea/g,'</textarea'))+S,U()</script>
- khalby786 10mo agolet's not forget the og itty.bitty.site [0] [0]: http://about.bitty.site/ http://about.bitty.site/
- blakewatson 10mo agoYes, this was the one I was thinking of!
- danhite 10mo agocaveat 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
- below43 10mo agoLike many others in the replies, I too built something similar. I built a PWA that lets you share files via a URL. https://urlfile.app https://urlfile.app It also has a note/plain text sharing option.
- mesosan 9mo agoReminds me of https://itty.bitty.site https://itty.bitty.site
- okibry 9mo agoDoes anyone make a plugin to make data live in URL? I think it will be very useful in this LLM era.