Hacker News new | past | comments | ask | show | jobs | submit login
IMAP client for coders (hajomail.com)
71 points by fxtentacle on Feb 4, 2013 | hide | past | favorite | 84 comments



> I obviously can't afford to give my work away for free, but for you to get maximum benefit out of it, it needs to be open source.

Who is it obvious to? This is the first time I've heard of you. For all I know you could afford to give it away for free. And often in the case of open source, you reap the benefits later.

Sounds like a great project, and the screenshots are promising.


It's ransomware, yeah. Historically this is never (I mean, literally never AFAIK) been a good way to start a successful open source project. This might fool a few people (who like source in principle, but who don't want to muck with it themselves) into thinking it's "almost as good as open" and contributing. But it's deeply, deeply disrespectful to the community you will actually need to build if you want this to succeeed. Basically the funders end up being dupes; there's no community and probably never will be.

I agree it looks cute, and I'd love to try it if it were available. But I certainly won't be funding it.


That seems to be well-reasoned criticism.

I think i would need to further polish it before people will invest time on their own accord into keeping the open source project alive. To achieve that, i need some money to pay to pay for work and design.

Giving software away for free and asking for donations doesn't seem to work well. At least i got like 500 support requests but no single donation yet for my last email project: http://tentacleworks.net/Site/Nostalgy_4_Mail.app.html

So i thought that the best way to make this work would be to ask interested users to pay for the development costs, like Light Table:

http://www.kickstarter.com/projects/ibdknox/light-table

Do you have any experience / suggestions on how to launch this?


No. You don't need to polish it further. If it were free right now, I'd be using it today and helping you polish it. As it is, yeah, I feel disrespected. You want my free help (or the free help of other somebodies like me) but you want to be paid for your work. Obviously.

Sorry, I really don't mean to be That Guy, but you are not coming across as anything like sympathetic, and I am 100% your target audience.

Light Table is a darling of the community, but I get the same vibe there. Although, to be honest, he's got a huge (yet unspecified) vision and is asking to be "freed up" to work on it, whereas you've scratched your own itch and already have a working project but want to be paid before you'll let people use it.

If you want my advice (which is worth as much as it costs you) put it on Github now and offer a supported, shrinkwrapped version for sale. Then you get paid, at least more than you're paid now, while still having an open source project.

"But nobody will buy it if they can just download it," you say, and you may be right - or maybe not. It's worth a try. Sell a souped-up version, sell corporate bulk contracts with support, I don't know. There are lots of open source business models that have been applied with varying success.

But don't, for the love of God, sell your time to the open source community.


"You want my free help" that makes me wonder. I thought of it more like this: I'm selling the basic software once-off so that afterwards anyone can customize it as he/she pleases. For my taste, it's good enough so that i can use it :) so i'm not really asking for free help. I'm asking for money so that i can share my toys with everyone ;)

But you both make a very valid point for making it open source as soon as possible. And it seems as if you have a good overview of the ways to monetize open source. Do you know how companies any of those Open Source companies ensure that none of their competitors just downloads all the source code and sells their exact same product?


> I'm asking for money so that i can share my toys with everyone ;)

This is the part that I pointed out generally doesn't work. I mean, tough love time: everyone wants to be paid to work on their own open source project. No one wants to pay you to do that. No one. At best, people may want your project (as part of their product, for example) and be willing to pay you (perhaps indirectly) just to know that it's maintained. This is how Linus et. al. make a living. And that's very rare -- you have to have a project that is (1) already there and valuable and (2) meets some need of a party with deep pockets willing to pay for it.

The model in your head, where you get to have total control over your project and a paycheck from it is a utopia that doesn't exist, sorry. I don't begrudge you for wanting it, I want it too. I just don't see a path to get there.


They don't. Once you've released the code under an open-source license, anyone (including a competitor) can use the code in any way you allowed in the license. The strongest protection they use is trademarks, not copyrights. For example CentOS is exactly basically the same as Red Hat Enterprise Linux, but they can't use Red Hat's name or logos. Also Firefox has several forks, but none of them are allowed to use the Firefox name or logos.

Basically, you need to choose your license carefully in order to make sure it reflects what you want to happen with your code. There is a lot of flexibility https://www.gnu.org/licenses/license-list.html#GPLCompatible...


I'm not sure I can add anything that's not been said already in response to this post, but yeah, you don't make sure somebody else doesn't sell your product better than you. But note this: if it's open source, they have to credit you - and you've got more experience with it than they do.

It's thin gruel if you're operating on the "build a product, sell it to people" model. But you're not talking about building a business on this, are you? So sooner or later, you're going to wake up to the fact that nobody's going to pay you to share your toys, any more than a kid on the playground is going to get any love for wanting to play ball but also get paid rent for the glove he's providing.


I like this model. I like open source because if you get hit by a bus as an indie dev, somebody like me can keep going. I do disagree that people wouldn't use it now (if it is in some state of working) and you could raise money if you want to spend more time/add more features/pay a designer and then it would be up to the community if they wanted those things or not.

Or you could keep it closed and ask for money and I would still consider buying it. I in no way feel disrespected by you saying that you'll make it open once you have hit some level of funding that you feel is appropriate, I can contribute or not at that point.

One anecdote deserves another I guess.


I've used a ransomware model a few times in the past. It worked out OK. The source got released, the coder got paid (never me, it was always stuff I was contracting out to well-known hackers within the community where the work was being done and I was contributing about half of the money...the ransom was to sweeten the pot), everybody was happy. And, I've contributed to ransoms as an outsider, as well.

I don't think it's "deeply, deeply disrespectful" to anyone. It's asking for money so someone can work on what they want to (and presumably some others want them to do the same). No one is forced to participate or contribute. The only way it is disrespectful is if the code doesn't get released or proves to be shoddy after the funding is raised.


While I can appreciate your misgivings, I might point out a counter data point: Blender. Now, I'm not saying this software is Blender, but if it can be ransomed into OSS for an equitable price, why not?


The scenario was materially different with Blender.

http://en.wikipedia.org/wiki/Blender_(software)#History


Exactly. I actually did contribute to the Blender fund. It was a real, working product, with verifiable quality, and the offer was concrete: 100k euro for the known-to-be-existing source. I'm willing to pay for that. I'm not willing to pay for someone to "work on" a project I can't touch yet; especially knowing the failure rate single-developer software projects have.

(And yes, there were all sorts of technical squabbles about the Blender release, like license choice and worries about whether the IP would turn out to be "pure". But everyone was pure of intent, and things worked out.)


Maybe I am not representative of the general audience but I'd be happy to pay for a good IMAP client and even happier if I can fix small annoyances myself.



I always had trouble with the lack of a folder list in mutt. My friend is close to convincing me to give the mutt-patched package in debian a chance.[1] All I need to do is find a decent muttrc that is not super tweaked like my friend's config and then stumble along until I figure out what I need to change. For some reason I have always been confused/overwhelmed/putt-off by the coloring schemes when I have used mutt in the past.

[1] Patch: http://www.lunar-linux.org/mutt-sidebar/

[2] Screenshot: http://screenshots.debian.net/screenshots/m/mutt-patched/456...


Walk-through for mutt configuration https://news.ycombinator.com/item?id=4597156


I have always wanted to run the mutt-patched on my osx machine but can never get it configured correctly. Any chance there are binaries or better instructions?


The HN link below contains a great walkthrough for osx and mutt-patched. It even includes a keychain setup process. With homebrew its as easy as:

  brew install mutt --sidebar-patch

The link to the walkthrough is: http://stevelosh.com/blog/2012/10/the-homely-mutt/

There are also some helpful comments in the hn discussion: https://news.ycombinator.com/item?id=4597156


Yes, even on my N900 where I have Emacs+Org-Mode, I still SSH in to my mail server and run mutt. Mostly because I'm lazy, but also because every other mail client I've ever tried has just sucked more :)


well i heard about it at university but i dislike it since it's not appropriate for those graphical emails that i get


It is when you use muttils, that I describe at http://lee-phillips.org/muttheaven/


I prefer Alpine.


Considering Mutt supports PGP, and this doesn't seem to, yes.


You're correct on that one. I built this client to make my work with email better. I'm not sure if i have ever received an email with PGP and i'm pretty sure that it would confuse half to all of my colleagues ...


You need to find better colleagues.

Plus multipart mime makes it a lot less confusing for people who do not understand pgp signatures. Long gone are the days where you have to have a giant block of random characters appended to the body of your message.


Not true. I stopped signing my emails 10-ish years ago because I kept getting people mailing me back that they 'couldn't open my attachments'.


With multipart mime messages you no longer have a large block of random characters at the bottom of the body of your message. This is a fact. Moreover the mail clients now treat pgp and smime signature attachments in more intuitive manner so users are not tempted to try and open them as easily. Most importantly know your audience, grandma does not need to have your vacation recap emails signed.


well since you're working on a mail interface... maybe you could try a frictionless PGP encryption option in the interface? It might be something you at least build a prototype or placeholder for so that it can be implemented fully when going open source.


Looks awesome! Nice work.

I don't know how I feel about the closed source -> kickstarter -> open source model. Why not just put it on github now and get people using it?

Unrelated to the product, but I'd change your highlighting on the site to something other than blue - ux wise it makes me think it's going to be a link.


thanks :) the GUI is mostly Twitter Bootstrap + Font Awesome + GWT

I was also not so sure about using Kickstarter for source code, but then i stumbled upon Light Table, which is a coding tool sold there.

I'd really like to continue working on it to make it more polished and for that i need some way to get money out of it. I could, of course, try to sell it as a SaaS project, but that would block people from hacking it.


I'm all for open source and all for you having a roof over your head. I think its a great model. I wish you the best of luck.


Definitely still do the kickstarter. What I meant was I think you'll have better luck on the kickstarter if it's open source to begin with. I'd feel uneasy giving money to a kickstarter project that could stay closed source.

I think you should also offer it as a SaaS once you get it up and running. Being open source doesn't stop you from doing that. Then you get the best of both worlds.


Thank you for the explanation.

Yes, paying for a project which then fails would suck.

I'll send the binaries around and upload them once i get around to packaging them (probably tomorrow).

For the kickstarter i was planning on making the current state of the project open source as soon as the funding is reached. Do you think that would also work?

I mean if i open source the whole thing beforehand, why should someone participate in the kickstarter when they can get also get it for free (although unfinished) right away?

As for SaaS, i'd say that the client should run on the user's computer in any case, just to make stuff really fast :) Hosting the IMAP-Synchronization-Gateway might work, though.


You're presumably the best person to work on finishing it. Don't underestimate that position and the respect it can earn you.

(edit) I guess, emotionally speaking, I'm in the position that if it were already on Github, I would actually fund your Kickstarter. I mean, right now. As it is, no, I'm not going to, for the reasons I explained in my comment upthread.


If gmail makes you sick, I'm afraid I don't have much faith that you know what I might like in a mail editor.


That might be correct. It's pretty hard to read people's minds before meeting them ;)

I really like the GMail editor and their table view. That's why my inbox view looks so much alike :)

What i, however, honestly dislike is their overall sluggishness. GMail seems pretty slow and last time i tried, their offline mode didn't work well enough so that i could use it to work on a train.

So i try to use the good GMail editor and combine it with the somewhat OK Outlook offline mode. But as a complete package, i hate working with both of those.


Nor good design. With a little tweaking, Gmail is absolute minimalist nirvana.

http://i.minus.com/ib0I7hmj8fzm2b.png

(User stylesheet here: https://gist.github.com/4650448)


How do you apply a custom stylesheet? Do I have to use greasemonkey?



Stylish or Minimalist (which is what I use): https://chrome.google.com/webstore/detail/minimalist-for-eve...


> I've been using it since november, which was three months ago. That's why i consider this mail system > battle-tested

A very small battle. More a skirmish, really.


Correct. I'd wager that "skirmish-tested" doesn't sound as good, though ;)

What i mean to say is that i'm very confident that it works good enough for a more-or-less public beta. Of course, much work still remains to make it compatible with every IMAP server out there, but as a single person i won't have the time nor the resources to get there.


Looks great! But, here is the problem.

Medium to large companies, they need some sort of calendaring and meeting room booking system. This is where outlook (more importantly exchange) comes into the picture. I don't think it's the best solution out there, but it's a solution that works reasonably well.

I also don't really like that email and calendaring are tied together, I'd love to see a robust solution that works across Windows, Mac, Linux, Android and iOS. Yishan Wong wrote about this a few years ago.[1]

So, this would work great for personal email and small companies, but I don't see it replacing the email client of the larger ones. I'd love to see gmail and microsoft give some of these search/indexing features.

[1] http://algeri-wong.com/yishan/great-unsolved-problems-in-com...


Yes, Outlook is great for time planning .. if all of your team uses it. However, most people that send me emails use GMail or other web mailers and thus Exchange is not really a benefit in that regard.

Before i started my work on this client, i used Outlook 2011 and i'm still paying for hosted Exchange so yes, i think they are both reasonably designed products.

It's just that Outlook doesn't suit my workflow of dealing with email. And it can be pretty slow at times. And it sometimes doesn't sync well after offline mode.


We're trying to make that whole experience better. Thanks for the link.

Drop me a line if you want to chat danny (@) outlook.com.


Roundcube and Zimbra are efforts toward this.


If you're also working on IMAP / mail clients and want to discuss the technicalities, feel free to drop me a line at

mail at hajo (dot) me


Hi Hajo, this looks great! I'm an Emacs addict though, and the main reason I'm not using Gnus anymore is that I haven't found a IMAP syncing solution that "just works" (last time I've checked). Since it sounds like you've solved this problem, is there any chance the syncing module can be run standalone? If so I'll most definitely chip in on your Kickstarter.


Emacs user here too. I'm using offlineimap which works great, and then I use mu and mu4e [1] to read my email in Emacs.

[1] http://www.djcbsoftware.nl/code/mu/


Sorry to disappoint you, but i did not find a solution to make IMAP sync correctly. I circumvent the problem by running a gateway that will be continuously connected to the IMAP server. The clients that connect to the gateway, which can do proper syncing :)

So syncing between my mail client and mail clients from other people will be as frickle as ever. What this project aims to do right is offline mode and syncing between multiple instances of my mail client.


I'm currently using offlineimap and notmuch. Have you tried that?


I think that used to be my setup, except with mairix. It's a while ago and I don't recall now why I was unhappy with it. But seeing that offlineimap is still actively maintained and has seen plenty of updates in the meantime, maybe I should try again. Thanks for the heads up!


I've been knee deep in imap for the last month or two. As a curiosity, which imap library are you using? I've had to contribute a few patches to ruby's net/imap already to get it to successfully parse all the mail I've accumulated over the last 10 years :)


I started with patching the IMAP parser from Google Go, then i re-wrote parts of it to make my email collection work.

I still cannot successfully MIME-parse all of my emails, but the ones that fail are spam (and also don't work in Outlook 2011) so i'd say it's the email's fault.

I can recommend Google Go for tasks such as IMAP because of its concurrency model. You can run a go-routine for each IMAP connection and their idea of agents communicating through channels worked really well for my IMAP client.


That's really fascinating! I might have to look more into this. Last time I looked at Go, it was stuck without multi-CPU support, which was a show stopper for the project I was working on. Probably worth revisiting.


I've also been writing an imap client for the past few months with exactly the same goal as this, in go. This looks great.

I'd like to keep my front-end as absolutely light as possible, so I'm foregoing gwt/bootstrap and going with mostly just handwritten jquery.


Interesting coincidence :)

This project is also written in Go. I have IMAP go-routines which will send changes on the IMAP server to a gateway multiplexer which stores those changes in a synchronize-able DB. The Webgui will listen for changes from the DB and present them to the user. I chose to go this route such that i can run the gateway and the webgui on different computers both with a local copy of the DB and have them synchronize when network connectivity is present.

I've opted for GWT because i like static typing. From a performance perspective, i've never really found much difference between GWT and hand-written JS.


That's pretty funny. I essentially rewrote martine's imap client, and then I'm currently working on integrating it into an ajax and SSE-heavy webapp. I personally don't like html emails, so I've gone with a plain text-editor (read textarea), but sanitizing incoming html emails is the hardest thing I've run into.


If you offered a license for web hosts to use this, I think I know a whole bunch of coders and designers who would gladly pay for a hackable IMAP client. Kickstarter isn't a bad idea, but you should also try polling people to find out if you could set up SaaS at the same time or some other scheme. There are many possibilities...


The program is structured in a way that you can use it both as a hosted webmail AND as a locally running client. I needed that so i can use the web version from my iphone and sync my laptops for offline use.

But for web hosts i think they would prefer a solution for multiple users. This is designed for one person with multiple email accounts, so they would need to start the webgui program multiple times to host multiple users.

As for SaaS i'd rather have the users host their own version on Heroku or EC2 than having to manage all those clients.


Sorry, I realized after posting that my phrasing was pretty bad. The current setup looks good for the sort of thing I do– I would pay for it (one time probably)– but if you then made it super easy to set up for multiple users, even if it was a simple shell script or some kind of interface, you could do some sort of tool-subscription (pay once or subscribe for updates). By webhosts I was thinking primarily of people like me who manage a couple servers and do everything server-side for our clients except plug in the fiber...


Check out Roundcube if you are looking for an awesome webmail client.


> I obviously can't afford to give my work away for free

Why is that obvious?


He seems to be confused seeing as he also built it with FOSS like bootstrap and GWT.


The main difference here is that the people who wrote Bootstrap and GWT were employees and they were PAID to work on those open source projects.

I'm not employed for working on OS software. I did less contract work (and thus now have less money) so that i could spend my time on preparing a solution which works well for me.

However, if i need to spend more time to make it work well for other people, that would be a stupid decision for me if it means that i lose more money.

But if you look above, i'm not set in stone about the OS / not-OS debate. I'm just wondering if people would be willing pay me for polishing it if the source is already available.

If not, this could very quickly turn into one of those highly ambitious, yet dead, open source projects as soon as i'm forced to work on other projects.


Bootstrap was done on off-hours (even though they were employed with twitter, if you read their history it was done outside of work and there was zero compensation)


I don’t quite understand your entitlement.

The usual case is that people have to be paid for their work. If that’s sometimes not the case then that’s a bonus, not something you can expect and be angry if it doesn’t happen.

You don’t want to pay for it? Fine, that’s great. You are free not to. It’s also not appealing for me personally. But complaining about someone wanting money for work? Sorry, that’s wretched.


Obviously those tools aren't given away for free! oh.


The Bootstrap framework can't be used for commercial purposes?


"I have chosen to charge a nominal price for this" is different from "I obviously can't afford to give my work away for free."


OK those words were badly chosen.

I'm a freelancer and as such i don't have an employer paying me to contribute to open source projects. This means that i need money to be able to afford to spend more time on this project.


IMAP client for coders? Let me review: not open source, web based, html emails, no PGP support, IMAP client tied to MUA, no mention of keybindings…

Nope. Not for coders. Even less for "hackers" as the webpage say.

And that's just technicalities, but as others already said, "I obviously can't afford to give my work away for free"… well, sigh.

I'm not saying everyone should use Mutt or read their email in Emacs, but I'm a little sad that this link got so much upvotes.


"not open source" This post is here to discuss options for changing that.

"web based" I'd say that is a plus, because you can have the same GUI running locally (and fast) on your computer and running remotely (and slow) on your web server. I know that WebKit has a huge overhead compared to emacs or mutt, but since about every second email that i receive is HTML anyway, i won't be able to avoid WebKit / Gecko.

"html emails" I have to write email to normal people too. I know it's sad, but most of my friends prefer HTML emails with pictures. That said, some of my existing beta testers are using it to send around HTML newsletters.

"no PGP support" correct. I've never used it and (see below) the PGP signatures seem to irritate some people.

"IMAP client tied to MUA" correct. I chose to go this way to finally have fast and working offline mode with synchronization

"no mention of keybindings" I implemented CMD+I for INBOX and CMD+S for search. Since i didn't miss anything else, i didn't implement them.

I consider myself a coder/hacker and i built this to suit my workflow, so i thought that description to be accurate.

"I'm a little sad that this link got so much upvotes" I'd say this is a good thing because it gives us the possibility to discuss what you dislike about my email client or email in general.

BTW, i'd be interested in what solution you currently use. Maybe that'll also help others that drift here to find their new perfect mail client.


Quote from the page:

> I obviously can't afford to give my work away for free, but for you to get maximum benefit out of it, it needs to be open source.

Meet others who can afford to give away their work for free:

http://squirrelmail.org/ http://roundcube.net/ http://www.xuheki.com/ http://www.horde.org/apps/imp

And there is more — google: webmail client open source


I honestly wonder how they do it.

I'm a freelancer and if i work for free, i do not have any money. So for me to be able to develop and share this freely, i would probably need some big corporation that is willing to pay me for working on it.

I'd also be interested in how those projects come up with the money to pay a professional designer. Roundcube looks very sleek, as if it was designed professionally.

BTW, what i'm developing isn't exactly a webmail client. It is an server-side IMAP gateway and a client so that you can use it completely offline.


> I honestly wonder how they do it.

Have you ever heard of open source? :)

I've contributed to this project and various others and I frequently had people either hire me to add features to a certain project I worked on/released or bought me a book or so off my Amazon wishlist.

Though one time a company actually paid me to work on open source, this is nothing that pays my rent (currently) and also not my motivation to work on open source in the first place. My main driver is that I use open source and I decided to give back. It also helps my resume though I never really needed that either.

As for RoundCube's design — thank you. I am not a 100% sure right now if "money" went towards the design, but feel free to drop us a line at hello~at~roundcube~dot~net.


i think this with good indexing/search capabilities, and tagging (like gmail) and PGP support with a clean web-UI that supports multiple screen sizes (devices) is an ABSOLUTE HIT!

run one on my phone! and/or over https on _MY_ server. then build calendar-chat-etc in.

wow..


What HTML editor do you use for email composition? (e.g. TinyMCE, CKEditor)


I wrote my own simple editor which is based around content blocks. So for example every headline is a Text-block with style "Headline".

https://github.com/fxtentacle/hajo-page-editor


Interesting, I'll check this out some more!


Fascinating. What do you use to sync emails to the offline mirror? (-:


This is an imap client + local database + web interface to local database


claws-mail is really nice. Highly recommended if you don't mind fiddling to get things set up the way you want.




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

Search: