Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: ~200 byte in-browser, no JS, private notepad (jjjjjjjjjjjjjjjjjjjj.github.io)
133 points by janneklouman on May 5, 2018 | hide | past | favorite | 70 comments

I wanted a place where I could write down my thoughts without them being stored in the cloud or connected to an account (notes, onenote, evernote, docs, paper, gist, etc). I don't really like terminal text editors, notepad, or IDEs for writing, so I made this very simple notepad. It's a <body> html tag with the contenteditable attribute making it editable, and some <style>.

To save a note just store it on disk (cmd/ctrl+s). To add images, drag and drop them onto the text area. Remove the contenteditable attribute from <body>, save, and voila, you now have a static lightweight blog post ready to be published! Formatting can be a bit wonky but should work in some browsers (cmd/ctrl+b/i/u). Copy+pasting formatted text can potentially break things a bit.

The two colors are from Solarized. Feel free to download the file and update style/markup to your preference.

Some ideas/variations:

Dark theme: https://jjjjjjjjjjjjjjjjjjjj.github.io/new-note/dark.html

Serif: https://jjjjjjjjjjjjjjjjjjjj.github.io/new-note/serif.html

HN theme: https://jjjjjjjjjjjjjjjjjjjj.github.io/new-note/hn.html

With heading: https://jjjjjjjjjjjjjjjjjjjj.github.io/new-note/with-heading...

> To save a note just store it on disk (cmd/ctrl+s).

What's this supposed to do? On Firefox/Win it just saves the initial blank page as you'd expect, which is not very useful. Removing the `contenteditable` attribute before saving makes no difference.

I'm not aware that there is a simple portable way to save dynamically-modified webpages; projects like TiddlyWiki have been banging their collective heads against this problem since forever.

> I'm not aware that there is a simple portable way to save dynamically-modified webpages; projects like TiddlyWiki have been banging their collective heads against this problem since forever.

You might be interested in a new way to create websites I'm creating. Websites are stored as JSON, and a small Javascript engine file writes these directly to the DOM.

This makes the site very easy to dynamically modify and save, which is the basis for this as a hosting service - the site itself contains a site editor that outputs the site as JSON, and uploads itself to S3.


(It's in late alpha, and will hopefully move to beta before the end of the month.)

I'm not sure how that helps with the problem we're talking about. The value proposition of something like TiddlyWiki is that your site is just a file. For local use you don't even need a webserver.

Making Node or similar a prerequisite kills that value proposition stone dead, never mind piling on things like S3 as backends.

> your site is just a file. For local use you don't even need a webserver.

This is true for this new system as well. The browser engine is only needed to write JSON to the DOM, since browsers don't natively read JSON. You could host both on your SSD and point a webpage at them. (XHR caching is a to-do item.)

S3 is used because it's relatively common and trusted. Node (or any server) is just used to facilitate writing to S3. Node specifically is used because it's simpler to develop everything in one language, and that's the only language that runs in browsers.

When you save it as a webarchive in Safari it includes the user-generated content, including embedded images.

In FF, you have to tell it to save as 'Webpage - complete'. Other browsers have similar options.

On Linux Mint, with FF 59.0.2 (64-bit) there are no problems. Simply save the page with "Save page as..." into a folder. The idea is wonderfully simple.

I just saved as txt on Firefox 60 Windows

>I don't really like terminal text editors, notepad, or IDEs for writing

are you talking about the windows notepad? it's as simple as a plain text editor can get, how is the contenteditable notepad better?

I am convinced this is some sort of practical joke to see how stupid an idea you can submit to HN and still get upvotes.

Either that, or I'm in the Twilight Zone.

Yes, I was talking about the windows notepad. I'm not saying the contenteditable notepad is better, just that I don't like notepad for writing - purely an aesthetic preference. Now it's been a while since I usd notepad, but iirc you can't have an inner max-width, or theming that persists restart (?)

Tried it out now and while typography changes do persist, I can't figure out how to change line height or background color.

> it's as simple as a plain text editor can get

Just because it is simple does not mean OP has to like it.

I'm assuming he's going for the minimalist notepad because of how bare bones the contenteditable notepad is.

the content-editable version lacks the most basic of features, such as search and replace. I don't think you can compare them at all.

So... someone doesn't like Notepad because it has search-and-replace, and preferred something kind of like notepad but without all those pesky features?

Really cool idea! In what browsers is dragging images to contenteditable supposed to be supported? I'm on Chrome 66 and it just opens the image in the current tab.

fyi, did some quick testing (I was also curious about image dragging):

Pale Moon 27.9: Image conversion to base64 worked perfectly

Dooble 1.50: creates clickable link (file:///home/user/.../filename.jpg)

Midori 0.5.11: creates NON-clickable link

Otter 0.9.09 beta 9: creates clickable link

Chromium 65.0.3325.181: opens new tab

Opera 45.0: opens new tab

Works for me in Firefox (61.0b2).

In Safari, Drag & Drop of images doesn't work but Copy/Paste does

I just tested this on my iPad 4th-gen, which is stuck at iOS 10.3 these days.

Safari cut-and-paste works for images.

Of course, as the iPad runs out of memory as I use multiple apps, stops Safari then reloads it when I come back. Which loses any edits to the content.

Expected. The unexpected is that this simple thing is as functional as it is...

Try using something like split screen to guarantee that the app will stay in memory.

(Good suggestion, but the iPad4 iOS 10.3 does not support split-screen apps.)

I think this is great. I did something similar, with a very simple IdeaStore webapp, where I can just throw an idea into words, have it get added to my ideabank, and I can reference it later. But the whole point is to not break my workflow from other projects.

Anyway, I know you said you don't like lots of different things, but you might actually find that you like BoostNote. I'd say give it a try, I think it's great.

Pretty cool.

It seems like it would be pretty easy to add a save/load feature with localStorage.

Looks like this mainly works best for FireFox

I'd love this and use it regularly if it supported Chrome and markdown syntax.

I know it wouldn't be 200 bytes, but this is a pretty great idea.

tiddlywiki with a markdown plugin is something to look at if you like this idea

You can always type `data:text/html, <html contenteditable>` on your browser :)

Wow, I did not know that we could create tiny "serverless" pages like that.

I created this self referencing URL:

`data:text/html, <html><head><title>SO META</title></head><body><h1>This link's url is</h1><script>p = document.createElement("p");p.innerText = window.location.href;document.body.appendChild(p)</script></body></html>`

The sad part is that <a href>'s are actually blocked from using data:text/html URLs. So we can still create tiny games and apps that can be copy/pasted in the address bar, but we can't link to them.

Maybe that’s a feature, not a bug.

If we can put the data in an image file a user could drag a cart into their address bar to load up a game. So we can pass around carts like images.

You may not be able to <a> to them, but you can certainly issue redirects to them, and <a> to a URL that issues such a redirect.

You can also <a> to a URL that issues a redirect to a location given by a GET parameter, eliminating the need to stand up a site for every different idea you come up with.

That used to be possible [1], but it looks like redirection to a data url is blocked on current versions of Chrome and Firefox.

[1] http://indirection.modusponens.org/data:text/html,Hello,%20w...!

In chrome, what's blocked is page-initiated top-level navigations to data URLs (because of spoofing concerns). You can load them in iframes, and you can still do a browser-initiated navigation to them (i.e., type them into the omnibox). They can be used freely as subresources.

Http Redirection to data: urls has been blocked in chrome for at least half a decade. There's really no reason to allow that, a server can just as easily return the data as the response body.

how about using document.write to go to the new self contained page

<a onclick="document.write('<html>...</html>'">other game<\a>

I always liked this trick. Someone else made a version of JSFiddle using this and a few other bits as a code golf exercise that could be made into a bookmarklet, but I lost it.

Anyone know what I am talking about?

I use exactly that trick since years as a simple notepad. It's the first book back in my bar om all my browsers.

You should make this an electron app so I have a lightweight text editor at hand even when I'm offline.

Are you serious?


Litewrite[1] is a great notepad that does save notes to browser localstorage, and has a syncing feature (you can sync through Dropbox, Google Drive or any RemoteStorage provider)

[1] https://litewrite.net/

This is nice! And it supports backing up data in self hosted RemoteStorage.

It's a nice idea, but what is the advantage over windows notepad (or equivalent on other OSes)?

It has many disadvantages in terms of functionality. Some advantages could be: theming (line-height, inner margins, inner max-width), runs in the browser, easy to modify and build upon, produces HTML output.

I haven't tried the subject of this thread, but since I upgraded to Windows 10, the notes application has become ridiculously slow. Sometimes I have to wait, and wait, for it to respond to clicking or typing. I assume because it's doing some sort of network/AI enabled nonsense.

>the notes application has become ridiculously slow

the win32 one, or did they replace it with a metro/modern version?

I'm using 64-bit Windows 10. It looks like it has some subtle visual updates, but I'm not sure what might have been changed under the hood. It seems to frequently hang when I try to paste into it, for an interminable amount of time.

They haven't.

While the page doesn't use js, it is there for you to use.

document.body.innerText += 'hello world/n';

    echo hello world >> file_in_notepad.txt
Although I'll admit that notepad's not as graceful about multiple programs editing files.

How can this be so upvoted. This is crazy.

This is literally an empty page with a contenteditable tag snapped on the body. I mean.... yeah, it can be done.

Note to others: click on the screen and you'll see a cursor.

From this idea I decided to type "no javascript" in the HN search bar. There are some interesting things in there.

A Web browser is not more lightweight that notepad.

To be fair, it's more lightweight then loading up Windows OS in an container/VM and start notepad in it.

wine notepad.exe

It certainly feels more lightweight, provided the webbrowser is already running, which for me is always.

For the record, here's the smallest notepad with local persistence we've golfed in JS: http://xem.github.io/postit/ (github: https://github.com/xem/postit/)

Perhaps also interesting for people who like this: Firefox Notes.


Like the look of this but given increasing privacy concerns I absolutely believe that the Moz experiments data policies are plain wrong. At least allow a non-data collecting variant, otherwise you will never find out how many users this could have had :/

old thread about the same with good examples: https://news.ycombinator.com/item?id=6005295

https://codepen.io/anon/pen/OZxqMo?editors=1000 sublime text with vim and drag and drop files and tabs. why? why not? idk.

I've also built something similar in past, which is also a PWA which works offline(and quite minimalistic): https://notepad.js.org

Neat - although scrolling doesn't seem to work for me.

I think this really shows how powerful Web technologies are! Think about it: you get a full-fledged editor, with image embedding, and it only takes 200 bytes. Not kilobytes or megabytes, just bytes. Now check Evernote in the AppStore which weighs in at 111.5 megabytes.

If you’re still writing native apps in 2018, you’re throwing money right out of the window and you deserve bankruptcy.

Evernote chose features over counting kilobytes. Thats a choice they made. Comparing this with evernote on kilobytes is like comparing homemade skateboard to a SUV by their weight. Not cool.

I prefer native apps in most cases over some web counterpart with rare exceptions.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact