Roundcube Next – If we would start over again

Roundcube indeed became a huge success story with tens of thousands of installations worldwide. Something I never expected back in 2005 when I started the project as a fresh alternative to the well established but already aged free webmail packages like SquirrelMail or Horde IMP. And now, some 9 years later, we find ourselves in a similar position as the ones we previously wanted to replace. Although we managed to adapt the Roundcube codebase to the ongoing technological innovations, the core architecture is still ruled by the concepts which seemed to be right back when we started. And we’re talking about building a web app for IE 5 and Netscape 6 when browsers weren’t as capable and performant as they are today and when the term AJAX has not yet been known nor did we have nifty libraries such a jQuery or Backbone.js at hand.

It more often happens that, when discussing the implementation of new features to Roundcube, we find ourselves saying “Oh man, that’s going to be an expensive endeavor to squeeze this into our current architecture! If we could just…”. This doesn’t mean that the entire codebase is crap, not at all! But sometimes you just silently wish to give the core a fresh touch which respects the increased requirements and expectations. And that’s the challenge of every software product that has been around for a while and is still intensively developed.

When looking around, I see inspiring new webmail projects slowly emerging which don’t carry the legacy of a software product designed almost a decade ago. I’m truly happy about this development and I appreciate the efforts of honest coders to create the next generation of free webmail software. On the other hand it also makes me a bit jealous to see others starting from scratch and building fast and responsive webmail clients like Mailpile or RainLoop which make Roundcube look like the old dinosaur. Although they’re not yet as feature rich as Roundcube, the core concepts are very convincing and perfectly fit the technological environment we find ourselves in today.

So what if we could start over and build Roundcube from scratch?

Here are some ideas how I could imagine to build a brand new webmail app with todays tools and a 9 years experience in developing web(mail) applications:

  • Do more stuff client side: the entire rendering of the UI should be done in Javascript and no more PHP composing HTML pages loaded in iframes.
  • The server should only become a thin wrapper for talking to backend services like IMAP, LDAP, etc.
  • Maybe even use a common API for client-server communication like the one suggested by Inbox.
  • Design a proper data model which is used by both the server and the client.
  • Separate the data model from the view and use Backbone.js for rendering.
  • Widget-based UI composition using simple HTML structures with small template snippets.
  • Keep mobile, touch and hi-res devices in mind when building the UI.
  • Do skinning solely through CSS and maybe allow single template snippets to be overridden.
  • More abstraction for storage and caching layers to allow alternative backends like MongoDB or Redis.
  • Separate user auth from IMAP. This would allow other sources or accounts to be pulled into one session.
  • Use more 3rd party libraries like require.js, moment.js, jQuery or PHPMailer, Monolog or Doctrine ORM.
  • Contribute to the 3rd party modules rather than re-inventing the wheel.

While this may now sound like a buzzword bingo from a web developers conference (and the list is certainly not complete), I indeed believe in these very useful and well developed modules that are out there at our service. This is what free software development is all about: share, use and contribute.

But finally, not every part of your current Roundcube codebase is badly outdated and should be replaced. I’d definitely keep our current IMAP, LDAP and HTML sanitizing libraries as well as the plugin system which turned out to be a stable and important component and a major contributor to the Roundcube’s success.

And what keeps us from re-building Roundcube from the ground up? Primarily time and the fear of jeopardizing the Roundcube microcosmos with a somewhat incompatible new version that would require every single plugin to be re-written.

But give use funding for 6 month of intense work and let’s see what happens…

Advertisements

28 thoughts on “Roundcube Next – If we would start over again

  1. It is really great that you took time to write this post. Hearing from real-life experts with years of experience always helps new developers. Thank you for powering all those webmails around the world.

    • Thomas says:

      Crowd-funding could be an option indeed. But the very first step would be to sit down and define the new architecture, carefully select the existing components and libraries to be used and divide the entire project into smaller chunks which allow better estimations and planning.

      • You guys should consider Assembly (http://assembly.com/) for Roundcube Next. It’s a great platform for crowd-building apps and services, and makes it easier for new guys to contribute. I’ve worked on several projects on Assembly and the experience has been great.

  2. Matthew says:

    I believe the future for roundcube would be to design a better system that tailors for all devices and utilities the newer web APIs available such as offline capabilities. After many months using roundcube on many different devices across various form factors, highlights several main areas to focus on for the next generation of roundcube, such as an interface that’s designed for mobile devices and a support touch inputs and even multi touch gestures.

    What’s the thought about creating the next generation with two systems, a single page javascript front-end using a framework like angular, and a php back-end that communicates to the front-end with a secure RESTful API, passing data back and forth in JSON?

    • Thomas says:

      As you can read in the post, my idea is exactly this. I suggest to adapt the Inbox protocol as far as possible to make the client and backend possibly exchangeable. But these are currently just ideas from the top of my head and no concrete implementation plans. They should serve as a basis for further discussions or as inspiration for somebody to pick it up.

      • Matthew says:

        Yeah I did read your post and was simply trying to reaffirm what I believe should be considered for the re-build of roundcube.

        Regarding the fears of alienating plugin developers with a completely re-built version of roundcube, wouldn’t the best way forward be creating various development tools and support systems that can assist them with updating their plugins, rather than letting fear compromise or hold back the idea of re-building a new version of roundcube.

        Could implementing some sort of compatibility component that makes current plugins work with the new version, also help to encourage the community about moving forward and alleviate any fears?

    • Thomas says:

      Please note that the 6 months was only a very rough estimation without doing any research on the concrete steps to take. But I guess this endeavor will require something like a $50K funding.

      • Henrik says:

        Make a project at Kickstarter.com and I will be glad to support it. If every downloader of RoundCube over the years would support with just 1$ or even a little more, you would have your project financed.

  3. 1- Work towards becoming a credible alternative to Thunderbird

    It’s not good today that users have to get accustomed to three different interfaces for email. 1- ActiveSync/IMAP on their device 2- Webmail 3- Desktop client

    Thunderbird is one of the best options and Mozilla has significant financial resources and yet, they have decided not to continue to invest in R & D.

    “Mozilla is focusing its efforts towards important web and mobile projects, such as Firefox OS, while Thunderbird remains a pure desktop-only email client.” Therefore, we proposed “to adapt the Thunderbird release and governance model in a way that allow both on-going security and stability maintenance, as well as community-driven innovation and development for the product.”.
    https://blog.mozilla.org/thunderbird/2012/11/thunderbird-menu-bar-facelift-esr-new-release-new-governance-implementation/

    Thus, Roundcube or any webmail client should aim to become an Offline First app: http://offlinefirst.org/

    2- Move to Bootstrap

    This provides many benefits, one of which is easy access to theme generators and thousands of free and paid themes. But also “mobile-first” design and intensive testing with all browsers, etc. Many PHP apps have moved to Bootstrap, like Joomla!, Moodle, phpMyFAQ, Tiki Wiki CMS Groupware etc. and ClearOS is moving to Bootstrap in version 7.

    The two main options are:
    http://www.google.com/search?q=Bootstrap+vs+Foundation

    Both are excellent. Bootstrap has more mind share:
    http://trends.builtwith.com/docinfo/Twitter-Bootstrap
    http://trends.builtwith.com/docinfo/Foundation

    3- Introduce a predictable lifecycle with LTS versions
    About “jeopardizing the Roundcube microcosmos with a somewhat incompatible new version that would require every single plugin to be re-written.”

    A) Introduce Long Term Support (LTS) versions so all the plugins will continue to work on this for a very long time.
    http://info.tiki.org/Version+Lifecycle

    B) It opens up trunk for major changes
    B1) Invite the best extensions to be part the core, so they are forever maintained. If you push this idea all the way, you get the Tiki Model: http://tiki.org/Model
    B2) Provide a predictable timeline so plugins can plan accordingly. And if some plugins die off, users can stay on LTS.

    Best regards,

    M 😉

  4. Tom says:

    The main thing to fix is the UI. The backend works, and the users do not really see the needed changes there, but the UI needs to be updated. Users are getting used to webinterfaces like GMail, Outlook etc. and Roundcube needs to keep up appearances.

    I would also argue you could start moving to more 3rd party libraries slowly, switching out the old with the new. Start using composer to build dependencies for the core, move to SwiftMailer, MonoLog etc. It can be done somewhat seamlessly and it will move development and maintenance of these things to other parties, freeing up time for you.

    Everything takes time though, obviously. If money is the issue, then start raising them now.

  5. Alex says:

    I personally wish that it looks much more harmonic, cleaner and warmer. It should be fast like Fastmail.com and and give us more security options.

    And i wish themes for the mail client, because i don’t ilke cold colours like blue and grey and I am a very color-absorbing person, it affects my feelings in a subtle way and iit would be great to regulate the effect of UI.

  6. bw says:

    have a look at protonmail also. theyve achieved a lot in a relatively short time and they started by acquiring crowd funding. They campaigned on the basis of security and privacy

  7. Somecallmemike says:

    Could you also please consider moving away from just SQL as a backend and look at the NoSQL solutions such as Cassandra, MongoDB, or Couchbase? We would very much like to leverage our Cassandra cluster to give multi-site availability to more services, and this would be a great app to start with.

    • Thomas says:

      Yep. This is what I meant with “More abstraction for storage and caching layers to allow alternative backends like …”

  8. Rainloop is not as free as Roundcube, MailPile is not ready for general adoption. You guys are the best. Perhaps a skin refresh would already come a long way 🙂 That and being able to put the reading pane on the right 😉

  9. We are very glad to hear that this is moving forward with Kolab Systems and would be happy to provide financial support for the project. However, we specifically chose Roundcube because it was not trying to provide any groupware functionality and just was a good email client. This is important in a service provider environment where the groupware functionality makes little, if any, sense, outside of providing groupware solutions to businesses customers. At the very least, please make sure that the groupware features can be completely disabled allowing the project to continue on as “just” a good web mail client suitable for use by individual end users.

    • Thomas says:

      Don’t worry, that’s exactly what we have in mind. Email is where Roundcube comes from and we’re gonna make that right. The goal is to establish a proper application framework and add – let’s call them – “apps” on top of that. Email and contacts being the primary apps, it should be possible, but not mandatory, to add more and therefore satisfy the often requested features. The intention is to let you choose the setup they want for their Roundcube installation. More flexibility for everyone.

  10. Mike says:

    Just installed Roundcube so I could have family keep in touch on the family Mac Server. Had some issues working out how to get http to redirect to https, but somehow got it working. A bit of hacking with the OS X Sever Web configuration files, but finally got it working correctly where a simple URL will go directly to the login for Roundcube using an http redirect to connect to https, and only using the hostname. No small task when all the moving parts are hidden under Apple’s “friendly” Server.app GUI.

    How about adding GPG support for Email, something which should be easy to use for everyone and should be used for everyone. Sending clear text email over the Internet is like sending a personal message on the back of a postcard through the postal service. Most people would send mail in a sealed envelope which is what encryption allows one to do. GPG should be easy for even a non technical user to use through a simple Email interface.

    Privacy is a fundamental right and everyone should use encryption for their emails. Hopefully you can include GPG in the next release.

  11. balabushka says:

    What are the plans with Roundcube One? How long will it be supported with security updates?

    • Thomas says:

      Because Roundcube is also part of enterprise software packages, we expect to provide long-term support until at least end of 2017.

  12. Great stuff you are doing, wanted to chip in my widow’s mite but saw that funding had ending, surely there will be a next time in future. Am not a program techy, but would appreciate your response. Is roundcube next going to be an upgrade to roundcube 1 such that if i am using roundcube one now, i would be able to upgrade to the new version when it finally roles out

    • Thomas says:

      As the title of this post suggest, we’ll really “start over again” with Roundcube Next. This means, it’ll not be directly compatible with old Roundcube installations. However, we intend to provide the necessary update scripts or instructions that would make the transition to the entirely new version as smooth as possible.

      • thanks for the response, it will be great to have some kind of smooth integration to the new platform, thanks, awaiting eagerly.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s