Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"Unlike most browser-based email, which is server-based, Superhuman can store and index gigabytes of email in the web browser itself."

Did I miss something, or what technology can store gigabytes in a web browser?! Unless they are compressing email aggressively (possible) and storing in SessionStorage/LocalStorage, decompressing on the fly... then this sounds like marketing fluff, or just written poorly.



IndexedDB can store a huge amount of data — your browser will allow up to 50% of the free space on your machine to be used. [1] In most cases that would be gigabytes.

IndexedDB doesn't have full browser support yet (Edge is listed as having "partial support" [2]), but Chrome, Firefox, and recent versions of Safari all support it.

[1] https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_A...

[2] http://caniuse.com/indexeddb/embed/


> IndexedDB can store a huge amount of data ... In most cases that would be gigabytes.

You are of course right, but it's always good to surface pathological worst-case scenarios as interesting counterbalances.

IndexedDB has really, really REALLY bad performance. It's like a turtle that's been trapped in molasses. I did some benchmarks on my (old) laptop here: https://stackoverflow.com/questions/42288596/websql-has-incr...

For a particularly rare edge case, I periodically have to SIGKILL Chrome so it doesn't crash (due to failed SQLite assertions) when my disk gets full and I have to shuffle things around to make space. In the last instance of this taking place, / had 820KB free.

(Context would probably be useful here: I have a 15+-year long diskspace issue created by being given many many old computers with tiny hard drives and not having the infrastructure/knowhow (when I was younger) to move/sync active projects between machines. I just need to get a couple large HDDs so I can collect and dedupe everything, but I can't work due to health issues so that's proving... fun. This is also blocking all kinds of things such as getting my first smartphone, so I have nowhere to back it up onto!)


You've got no contact details in your profile but in the very small chance that you're in Australia, I've got a number of spare hard drives I could give you.


There are a surprising amount of Australians here I have noted.


It depends when you frequent HN -- timezones make it fairly easy to spot us.


Uhh, wow. :)

Hmm. If I'm reading right it looks like I'm slightly north of you, in Sydney.

Been meaning to add something to my profile. Done.

I'll endeavor to get in touch soon. This is pretty cool.


I just re-ran your test suite[1], and I got 1.325s insertion time with 10k items on IndexedDB on Chromium on GNU/Linux (with lots of tabs open). I'm on a fairly modest 8-core 16GB box. It's still 1 order of magnitude slower than the others, but not as bad as your old results.

I'll try running it on my X220 later.

[1]: http://scaljeri.github.io/indexeddb-vs-websql/v2.0.0/index.h...


Hmmmmm.

Either that specific test (I didn't make it, to clarify) or Chromium has a bug.

Depending on how I fiddle with the browser, the test either takes 134 seconds or 6 (!!!) seconds.

Of course when I ran the test for the first time I did it a few times. I think the repeated tests may have triggered these bugs.

If I go to the test page, click the (i) to the left of the domain, hit Cookies, select the domain (the root of the tree listview) and Remove (to remove the IDB, WebSQL and localStorage bits the page sets up) and then run the test, I consistently get 6 seconds.

My suspicion is that, the page is creating 1000 items in localStorage, THEN adding my 10000 on top of that. That would explain the crazy delays.

However, this does not explain why, when I visited the page for the first time in several months, it completed in 6 seconds without any tinkering required.

Note that the page re-fills localStorage on each load - clearing it after the page has loaded is key.


They specifically only support Chrome from what I read.

"Works best with IE 6" is so old now you'd think tech folks would think twice.


"Works best in IE 6" wasn't dumb at the time. It was the best browser available. What was bad is those sites continued to work only in IE6 long after it ceased to be the best browser.

The browser ecosystem is much healthier now. If Chrome ceases to innovate there are others ready to take over.


A valid test if Superhuman is for power/business users, is can it handle 5-15 years of email history that's currently in one inbox?


All of this has happened before, and all of this will happen again.

Mutt, Pine, Eudora, and Thunderbird, welcome home.


Yeah, except the way I read OP's comment is he thought the whole implementation (server, storage, etc) was all local in the browser. But this is NOT the case (I thought that was the case too initially).


https://developer.chrome.com/apps/offline_storage#types

Apparently it's possible, assuming the device has a sufficiently large storage and, I'm assuming, the user accepts.


Never mind... seems it is a Chrome-specific web app...

"For this reason, the browser version of the email app only works in Google Chrome"


So it's a local email client. Basically, what we already have but written in a less efficient language...


A less efficient language with a much better UI toolkit, seems a reasonable trade-off to make for a lot of people.


> with a much better UI toolkit

I just made this as a reply in another thread where the user essentially believed you couldn't have a nice GUI (his example was VS Code) with a native toolkit that's also easy to develop in:

https://i.imgur.com/RPr6VMS.png

https://gitlab.com/mixedCase/poc-qml-vscode

We've had the tools for a long time in desktop, let's not pretend we don't.


Nice.. Though one small niggle: I wanted to bookmark this for later reference, but the git page has no screenshots, and the screenshot has no title or link to the gitpage..

In meantime, i will just bookmark your comment :)


What would be your personal recommendation for learning Qt?


Don't bother with Qt widgets, learn QtQuick and QML.

Install QtCreator, grab the docs and play around in a new project. You can drag and drop components around in design mode and you'll be able to figure out how QML works from there. It's really intuitive.


Calling Qt native is a stretch. It doesn't really look native. Everything is a little off in all platforms.


Native as in "not an embedded website".

Also the point of QtQuick as an alternative to Electron is not to look native beyond the menus and dialogs.

And you probably associate Qt with Qt widgets, not QtQuick. Qt widgets actually tries to resemble and behave like native widgets, and it will let you get to that point if you actually care about that.

Most people making cross plat applications don't, which is why popular Qt widgets applications like VirtualBox and VLC don't look native, and QtQuick applications like Telegram for Desktop just ignore the desktop's HIGs completely.


Microsoft has tremendous resources, it's definitely costlier to build a great desktop UI than a great Web UI (but the great Eat desktop UIs are always better).


Microsoft has tremendous resources, it's definitely costlier to build a great desktop UI than a great Web UI

What? Let's not rewrite history. I has been easy and cheap to create desktop UIs for decades, literally. I was using Borland Delphi 1.0 as a 13 year old and could have a basic Windows UI app up and running in ten minutes.

There have been many great cross-platform and platform-specific toolkits that are easy to use. E.g. you can teach someone with some Python knowledge how to make basic Qt desktop applications in one hour or so. It's literally as simple as dragging some widgets to a window and writing some lines of wrapper code.

I recommend anyone who thinks that developing applications using web UIs is easier/cheaper to look at some Delphi 1.0 videos. E.g.:

https://www.youtube.com/watch?v=m_3K_0vjUhk

This was how we developed desktop applications 22 years ago on machines with 4 or 8 MB RAM. And it is still a whole lot easier and more efficient than a web app.


I agree, but the previous comment did say "a great desktop UI". Simple ones are definitely easier in something like QT of course, great ones are not.


Only if your measure for great is "looks and behaves in a bug-compatible manner exactly like the native toolkit". Otherwise, no, I'd very much disagree.


danieldk's response sums it up quite nicely. I will add that around the same age I found Microsoft's own Visual Basic 6 and was doing stuff with it.

Additionally, Microsoft has their own framework similar to what QML offers: WPF. The problem with it is that it doesn't have cross platform support, something they wanted to have for VSCode.

It's all exhorbitantly easy to use. Cost is not the issue, specially since they already have a lot of really talented people working on VS Code.


I have been doing native GUI development starting with Turbo Vision in Turbo Pascal 6 and started with Web development in about 1997.

I have used quite a few UI toolkits since those days and am yet to agree with the opinion that the Frankenstein mixture of HTML, CSS and JavaScript is a better UI toolkit.


A lot of people think the earth is flat and landing on the moon is fake. Call me a misanthropist, but I generally have little faith in 'a lot of people' ;-)

The thing about efficient language wasn't 100% targeted at web technologies alone, but at the general waste of computing resources for something as trivial as a mail client. Just because we have SSDs, gigabytes of RAM and CPUs that do a whole lot of cycles doesn't mean wasting a good portion of it is a good idea.


I wasn't saying it was good because it was popular, not making an argument from popularity, since I also think most people are stupid.

I was saying that's the right trade-off to choose in a lot of common use cases. Because most UI toolkits are pretty limiting, and the web toolkit can be amazingly powerful and productive. Of course, if you follow the latest fads in the awful js community they are a nightmare, but lets not pretend that's the only way to use the platform when it makes sense to pay the efficiency cost.


Better how?


Yea, but this enables things like e2e encryption without losing a search index.


if it's a chrome extension there's nothing stopping a court forcing Google to add a modification for a certain user

no different to having your javascript decryption routines done by a website


I have found Chromium to be a nice alternative to keep local browser apps working as it freezes the browser version instead of automatic upgrades, which have regularly broken web based line of business applications I have been around the past few years.


Sure, but presumably if you're worried about it you can sideload your own version.

Nonetheless you're absolutely correct; i would prefer firefox to chrome.


So it's a local email client. Basically, what we already have but written in a less efficient language...

Right. This is as if Outlook was written in VBA and ran inside Word.


Weird that the screenshots in the article are clearly in Safari: https://tctechcrunch2011.files.wordpress.com/2017/08/superhu...


Most PSD templates for screenshots are Macbook screens + Safari. Having designed a number of landing pages for startups I'm really not surprised that the designer they hired for their website chose to use that (without considering the current browser support).

As the other commenter pointed out it's a safe bet for marketing purposes and looks best aesthetically. But the confusion here could be a real problem for early adopters.


Designer here. This is accurate. The long story is, this site was mocked a bit before all the final technical details were scoped out for the project. It's in need of a visual refresh to more accurately represent the platforms we use.



its an off-line email client that is accessed via chrome.

think electron app, but without electron, and instead running directly in chrome.


An electron app, without electron, accessed via chrome in chrome? ... So, a ... Webapp? You mean like, gmail.com or outlook.com?


Apperently more like a plugin. Pure web technologies don't give you more than a couple 100mb of local storage (at best).


I don't know whether Superhuman will be a plugin or not, but there's no reason it would have to be; IndexedDB can provide gigabytes of space, and it's standardized, and current versions of Chrome, FF, and Safari all support it.


Depends if you consider IE and Mobile Safari as a required target. They have 250MB and 50MB limits, respectively. But yes, if these can be omitted then IndexedDB API seems fine nowadays.

Edit: MS Edge also has 250MB-500MB; they're just always playing catch up, even when their market share has dwindled...


Does the spec define the minimum amount of space the browser must allocate?


Can normal webpages access IMAP and SMTP servers?


Like gmail.com or outlook.com, if they were limited enough to support just one browser..

No, that is not a website or webapp, it's a Chrome app.


No.


Seem to remember doing this in Opera over a decade ago


Apparently with Chrome extensions if you put

     "permissions": [ "unlimitedStorage" ] 
in the manifest.json then "The size of unlimited storage is limited only by the availability of space in the user's hard drive." Not quite sure if that's how they do it.


I'm dealing with this same issue now actually. The browser can also just wipe the data anytime if it feels it is running out of space.


With unhinged marketing, anything is possible*

*in the near future


no dice on an iPhone, 5MB/10MB storage limit for LocalStorage.

https://stackoverflow.com/questions/1921048/limit-of-localst...


You could turn it into an app to get over that.




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

Search: