Free software web apps

Short URL:


After the comments on my last post, I decided that perhaps I should investigate the world of free web apps a bit further, and give some real thought to the licensing implications of software that is, in many peoples’ view, not actually distributed.


I’ll start with RoundCube Webmail. This is how their website describes the project:

RoundCube Webmail is a browser-based multilingual IMAP client with an application-like user interface... The user interface is fully skinnable using XHTML and CSS 2.

To really appreciate it, however, I recommend you visit their website and try the public demo.

You can drag and drop messages to different folders making it incredibly easy, and surprisingly pleasant due to the silky smooth AJAX implementation, to manage your messages. And, while there are still going to be those occasions when you lose track of a few e-mails or let your organisational methods falter a bit, there’s no need to panic as I’ve found the built-in search functionality very effective.

Composing a message is perhaps one of the simplest—but also one of the most important things—you’ll do in an e-mail client. Again RoundCube seems to have done an excellent job: a built in spell checker, auto-address completion, the ability to save drafts and to add attachments all add up to as good an end-user experience as possible.

Some final points about RoundCube are that it allows you to manage multiple identities, and, as stated in the opening quote, fully skinnable via XHMTL and CSS 2. What more could you want? GPL license? Well, it has that too!

One concern I have about RoundCube is that, as I understand, it is missing spam and general filters at the moment; however, these features are planned for a future release.

Tiny Tiny RSS

The other application that I found, which I was really impressed with, and that is also GPLed was Tiny Tiny RSS. Tiny Tiny RSS is based on the Magpie library to parse the feeds and, like RoundCube, uses AJAX to mirror the experience of a desktop application.

It handles feeds very well and, again from my experiences of their demo, always formats them in a usable and attractive manner. It features support for starring and tagging items; it is theme-able using stylesheets; searchable, along with different filtering criteria, and features a massive range of preferences including e-mail digests and the ability to display articles from oldest to newest.


Before moving on, I’d like to mention Horde. I’ve just found it halfway through writing this article and it looks like it could be interesting but I don’t want to write about it before having had a proper chance to explore it! So go check it out if you’re interested in seeing about another cool-looking project.

Rounding off

The other point I wanted to cover in reply to the comments on my previous post was the issue of whether or not web services are really being distributed, and if not, do they really need to be free software? My personal opinion is that if you’re using the app for your own personal use then there is no need to release the source code: if you’re allowing public access to your software, even if only a small amount of the code is technically being distributed, then you should share the source code for it.

What happens if you want to change e-mail services from Google to Yahoo, but they decide they don’t want to let you do that? Without the source code these restrictions can exist. How do we know what our current service providers are doing with our e-mails? Who they’re sharing that information with? We put a lot of trust in companies who’s primary responsibility is to their shareholders, not to their customers; companies who are increasingly trying to gather more and more information on us to better target their adverts.

I’m going to look for some affordable hosting to set these apps up for myself, and all being well, use them in place of my current Google accounts. If other people are interested perhaps they might drop me a message to at googlemail dot com and if we get enough interest maybe we’ll even be able to start some sort of a co-operative: a web app service that is owned and managed by it’s users. Sounds like a dream but if there’s enough interest, or a few rather wealthy readers, maybe we’ll get something off the ground!

Such a service might encourage development to help us fill in the gaps that currently exist in the free web apps market—calenders, online office suites etc—and possibly even provide the resources to help fund development on some of these projects! OK, I think I am now officially a dreamer.



Mauro Bieg's picture

From the user perspective, I see software more as a service rather than some lines of code. If I'm for example using a filter in GIMP, the programmer offers me a service in sharing his knowledge of how to change an image. If you are using a webapp like GMail or Google Maps or whatever, then you are using clearly a service too.
It's all about the knowledge which is in the code and that gives me power to do the things I want (whether this is to transform a picture or send an E-Mail via a protocol I don't bother to learn). And I think it's very important that this knowledge and the skills burried in the code are open for everybody to see and improve upon. Thus, it doesn't matter where the code is executed. If I'm using a service I want to be able to find out how exactly that service works.

So, I think in the next revision of the GPL it ought better be talked about "distributing services which are provided through means of computer code", rather than "distributing code and binaries". That way the GPL would be better appliable for webapps to protect the freedoms for all users. Some company couldn't then take any of those nice apps described in your article, modify them and run them on their server, without sharing the changes they made to the core code, with the excuse that they aren't really distributing software. It's a pitty that we're probably too late to include this in GPLv3 ;-)

Geoffrey Lehr's picture

I disagree. They aren't making excuses if they decline to distribute the changes, they're following the license. I agree that they _ought_ to distribute the changes, but they shouldn't be _forced_ to if the developers say that it's ok for them not to (through their choice of license). You should check out the Affero GPL if you're writing a webapp and you think it's better for the purpose.

Mauro Bieg's picture

Yeah, they keep to the license. But with free software licenses it's always the same: they aren't the optimal solution because default law is copyright,not copyleft. That's why they always need revisions as new dangers or possibilities arise. That's why I think their spirit and intention is just as important as their law-binding content.

And as the GPL is THE standard license for free software it would be nice if you could still use that one. Can you incorporate GPLed code into your project and release the whole thing under the Affero GPL? Then It'd be okay.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Suppose I send you a photo and ask you to do some minor adjustments (such as colour correction, red eye, white balance, clone patching and so on). You do the work then send me the resulting work. Assuming that you are doing this yourself, why should I demand that you send me a copy of the program source that you use? I may wish to obtain a copy of the program so I can adjust my pictures myself; but until I run that program on my computer, whatever you choose to use to run on your computer will not deprive me of my right to control my own computer or share information coming from me.

If I ssh into your machine and execute a few programs, then I don't need source access to the code as it is not running on my computer. However, my ssh client should be Free because I am running that on my computer.

Michael Fötsch's picture

I agree that web applications pose interesting licensing questions. But I don't get why having the source code facilitates moving from Google to Yahoo.

Wouldn't I have to run the software on their servers to be able to get at my stored e-mails, or to enter my e-mails into my new Yahoo inbox? If the client code can do that, fine--I can see the code. If I have to send an SQL query to Yahoo's database, I can't do that from outside their network, regardless of whether I have their code.

What am I missing?

(BTW, the link to the RoundCube homepage is broken.)

undefined's picture
Submitted by undefined on

i use both tiny tiny rss and roundcube.

matter of fact, i got to this article by way of tt-rss.

both projects use trac, so i'm subscribed to their "timelines" (rss feed of changes and bugs) with tt-rss, and the feeds prove that the projects are quite active.

actually, i primarily use squirrelmail because it's what i've used most and am most familiar with. it also supports threading, though what simple email tasks i perform while away from home (necessitating webmail) could be performed with roundcube. squirrelmail is a pain to organize large collections of mail at once (having to move messages to a folder, one folder at a time, with a page refresh in between), but roundcube is a pain to read mailing lists (no threading), so it just depends on what i want to do with my email at the time.

i use and recommend both tt-rss and roundcube.

undefined's picture
Submitted by undefined on

is the output of a gpl application covered under the same license as the application itself? (the better question: "is the output of a gpl application considered a derivative work of the application?", as that's how copyright works.)

the short answer: no.

the long answer:

undefined's picture
Submitted by undefined on

as a follow-up to my previous reply...

the more difficult question is "what source code was used to create my executable?" (because the executable is a derivative work of all that source code and you, or a linux distribution, might not have the right to distribute that executable depending on the licenses of all the code.)

so to build a "hello world" example, i only use my source code, right?

$ cat hello.c
int main()
return 0;
$ gcc -v -o hello hello.c
/usr/lib/gcc/i486-linux-gnu/4.1.2/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ -o hello /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crt1.o /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crti.o /usr/lib/gcc/i486-linux-gnu/4.1.2/crtbegin.o -L/usr/lib/gcc/i486-linux-gnu/4.1.2 -L/usr/lib/gcc/i486-linux-gnu/4.1.2 -L/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib -L/lib/../lib -L/usr/lib/../lib /tmp/ccoUXWZ6.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/i486-linux-gnu/4.1.2/crtend.o /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crtn.o
$ dpkg -S /usr/lib/crt[1in].o /usr/lib/gcc/i486-linux-gnu/4.1.2/crt{begin,end}.o
libc6-dev: /usr/lib/crt1.o
libc6-dev: /usr/lib/crti.o
libc6-dev: /usr/lib/crtn.o
gcc-4.1: /usr/lib/gcc/i486-linux-gnu/4.1.2/crtbegin.o
gcc-4.1: /usr/lib/gcc/i486-linux-gnu/4.1.2/crtend.o
$ cat /usr/share/doc/libc6-dev/copyright
<LGPL and BSD-like license text>
$ cat /usr/share/doc/gcc-4.1/copyright
<GPL with linking exception license text>

so what's the license of those specific files? (hint: debian's copyright file doesn't provide enough information for a one-to-one file-license correspondence, especially when multiple licenses apply to different parts of a single package.)

the joy of license auditing. (and this example is innocuous but requires a bit of work to prove.)

Author information

Jonathan Roberts's picture


Currently a gap year student! I have a huge interest in Free Software which seems to keep growing. I run the Questions Please... podcast which can be found at On an unrelated note I'm reading theology at Exeter next year.