frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Minimalist editor that lives in browser, stores everything in the URL

https://github.com/antonmedv/textarea
127•medv•2h ago
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/

Comments

nvahalik•2h ago
Love your other tools, btw!
medv•1h ago
Thanks!
deafpolygon•2h ago
Can you save anything?
thomascgalvin•1h ago
Not OP: sure, just bookmark it
tony_cannistra•1h ago
kinda -- but then you have to re-bookmark it every time you update it...
medv•1h ago
It also saves to localStorage
rorylawless•1h ago
https://textarea.my/#i0wtBgA=
sltkr•6m ago
No that should be: https://textarea.my/#c8yrLMnIzEsHAA==
samcollins•1h 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...

qbane•1h ago
Just started making my own recently with CodeMirror 6 during holidays. No saving function for now: https://qbane.github.io/cgm
wwarren•1h ago
Amazing. The crime and punishment example crashed my iPhone’s Google Chrome when I tap the URL haha
mzelling•1h ago
Love it!
maxloh•1h 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•1h 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...

hallole•1h ago
LOL Tapping the address bar crashed my Chrome on mobile.
maxloh•46m ago
For what it's worth, there might be a 2GB limit on iOS.

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

scotty79•37m ago
Works fine on Win11 Edge
dspillett•1h 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•48m ago
Very good point indeed. In the worst case scenario, you would only have 1/5th of that capacity
berkes•20m 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.

marcuskaz•1h ago
I have a similar one using localStorage https://github.com/mkaz/browser-pad
ctenb•1h 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
planb•24m ago
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•1h ago
Can you make it monospace by default, so that this can be used as a code snippet bin?
adamschwartz•1h ago
Try https://a10z.co/note
medv•1h ago
Sure! textarea.my support custom style attr: https://textarea.my/#Ky4tSlVUyCotLlEoLUhJLElVKC6pzElVSCwpKWJ...
throwaway150•21m ago
How do you share after that? I can open devtools and change the attribute but the URL doesn't update after that.
edgars_xx•1h 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
medv•1h ago
In case you missed it: it is possible to style textarea via CSS and share it.

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

growt•1h 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
ThrowawayTestr•1h ago
https://textarea.my/#Cy4tsAcA
teach•1h ago
https://textarea.my/#Cy4tsOfi8ssvUcgtTc7QU_DIz0stLsmpVPBUSK0...
medv•58m ago
https://textarea.my/#ZY_NTgMhFIVd9ylYNZpMuQwDmZ9m4qM0SG9ncCg...
sublinear•1h 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•58m ago
hash part of url only available in the browser, as far as I know, server doesn’t have access to # value
sublinear•48m 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•16m 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.
billforsternz•1h ago
This is very interesting, very refreshing, very simple and clever, very well done, very everything good. Bravo and thank you.
desireco42•57m ago
The only thing missing is markdown and few themes. I think this is awesome idea for sharing. Love what you did with it.
jaysonelliot•49m ago
546,229 character-length URL for the Crime and Punishment example.

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

ljlolel•48m 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.

nickweb•48m 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).

codazoda•44m 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

pglevy•40m 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!
planb•38m 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

LordDragonfang•31m ago
It would be neat if ctrl+s offered to download the textarea to a .txt file.
roxolotl•31m 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...

huhtenberg•6m 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.
levmiseri•5m 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.

I Left YouTube

https://zhach.news/how-i-left-youtube/
1•dhashe•2m ago•0 comments

FileKit.dev – New Thumbnail Component and Multi Upload Support

https://filekit.dev/documentation
1•georgealbert•2m ago•0 comments

Maybe the Default Settings Are Too High

https://www.raptitude.com/2025/12/maybe-the-default-settings-are-too-high/
1•herbertl•2m ago•0 comments

The Phone-Based Retirement Is Here

https://www.theatlantic.com/technology/2025/12/do-your-parents-have-screen-time-problem/685424/
1•JumpCrisscross•3m ago•0 comments

Hacking a Java Minecraft server with memory overflows using in-game mechanics

https://www.youtube.com/watch?v=Zy6Ci-K-0K8
1•jblazevic•3m ago•0 comments

South Korea Passes Strictest Disinformation Law in Any Democracy

https://www.koreaherald.com/article/10642910
3•agentifysh•5m ago•0 comments

89 years ago, an SF-to-Hawaii flight changed the world forever

https://www.sfgate.com/hawaii/article/hawaii-air-travel-history-21246817.php
1•Stratoscope•10m ago•1 comments

Deep metatranscriptomic sequencing data of wastewater from Los Angeles 2023–2024

https://www.nature.com/articles/s41597-025-06475-7
1•ano-ther•11m ago•0 comments

Groq and Nvidia Licensing Agreement

https://groq.com/newsroom/groq-and-nvidia-enter-non-exclusive-inference-technology-licensing-agre...
3•hasheddan•12m ago•1 comments

Golfing Is Not Rowing

https://taylor.town/golf-vs-rowing
1•surprisetalk•13m ago•0 comments

Back to the future: the story of Squeak, a practical Smalltalk written in itself [pdf]

http://www.vpri.org/pdf/tr1997001_backto.pdf
2•fanf2•15m ago•0 comments

Building Embeddable Widgets with Phoenix Channels

https://zarar.dev/building-embeddable-widgets-with-phoenix-channels/
1•recroad•16m ago•0 comments

Early retirement calculator that models a full 50-years(for retiring young)

https://earlyretirementrunway.com/
1•minviex•17m ago•1 comments

Spec Kit: Spec-driven development with AI, a new open-source toolkit

https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-ne...
1•pretext•18m ago•0 comments

Bignum Bakeoff: The Coding Competition You've Probably Never Heard Of

https://www.youtube.com/playlist?list=PL-R4p-BRL8NR8THgjx_DW9c92VHTtjZEY
1•112233•19m ago•0 comments

Enable Compression for SSH (2013)

https://www.gidblog.com/enable-compression-for-ssh/
1•exvi•20m ago•0 comments

The Pentagon and AI Giants Have a Weakness. Both Need China's Batteries, Badly

https://www.nytimes.com/2025/12/23/climate/pentagon-weapons-ai-artificial-intelligence-china-batt...
2•bookofjoe•21m ago•1 comments

Five pre-training tricks from Character AI

https://twitter.com/simon_mo_/status/2003608325624406482
1•tzury•22m ago•0 comments

Show HN: AI that chose its name and designed its own website (Next.js 14)

https://www.guerrillasocialclub.com/
1•cipherexp•22m ago•0 comments

Collect memories, not things. Until memories start fading

https://www.marekdlugos.com/blog/collect-memories-not-things-until-memories-start-fading/
1•MarekDlugos•24m ago•0 comments

Beware Isolated Demands for Rigor

https://slatestarcodex.com/2014/08/14/beware-isolated-demands-for-rigor/
2•JumpCrisscross•26m ago•0 comments

A man hunting the spies in your smartphone

https://www.technologyreview.com/2025/12/24/1129294/ronald-deibert-citizen-lab-digital-threats-sp...
2•gnabgib•26m ago•0 comments

Could the optimal vibe coder be fundamentally different from the optimal SWE?

2•inshard•27m ago•1 comments

Gravity coupling matches the 128-bit integer limit to 6 ppm

1•albert_roca•31m ago•0 comments

Ask HN: Is formal verification of practical use in real world projects?

1•akkad33•33m ago•0 comments

Show HN: Equira – Track Stocks, Crypto, Gold and Real Estate in One Dashboard

https://apps.apple.com/us/app/equira-portfolio-manager/id6751342549
2•Equira•35m ago•0 comments

LLM-API-Key-Proxy: Universal LLM Gateway: One API, Every LLM

https://github.com/Mirrowel/LLM-API-Key-Proxy
1•simonpure•35m ago•0 comments

How Money Is Born Out of Public Spending and Dies by Taxes (2023)

https://www.scottsantens.com/how-money-is-born-out-of-public-spending-and-dies-by-taxes-mmt/
1•qnleigh•37m ago•1 comments

2025: The Year of Front-Loaded Vesting Schedules

https://www.levels.fyi/blog/front-loaded-vesting.html
1•zuhayeer•39m ago•1 comments

The Case Against LLMs as Rerankers

https://blog.voyageai.com/2025/10/22/the-case-against-llms-as-rerankers/
1•fzliu•39m ago•0 comments