Matt RaibleMatt Raible is a Java Champion and Developer Advocate at Okta.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

What's a good RIA to develop in 20 hours?

OSCON 2008 In less than two months, I'm making my annual trek to Portland, Oregon to speak at OSCON. To prepare for my talk, I'd like to develop the same application with two different combinations: Flex + Rails and GWT + Grails.

As luck would have it, I'm having a hard time coming up with a good application to write. I'd like to time-box it so I only spend 10 hours on the backend (for each) and 10 hours on the front-end, for a total of 40 hours for both applications.

Can you think of any good applications that would warrant a rich front-end and wouldn't take too long to create? I'd like to put both applications in production and generate enough traffic to be faced with scalability issues.

Over the next several weeks, I hope to start creating the applications and blog about what I've learned along the way. At some point, I hope to post an outline and a rough draft. With your help, I believe this can be an excellent presentation. If the presentation and applications are as good as I hope they'll be, it's likely I'll open source them for everyone to use.

Thanks in advance for any advice.

Update: Thanks for all the great feedback. I've posted a survey to narrow the choices.

Posted in Java at Jun 09 2008, 09:56:30 PM MDT 21 Comments

Matt, a couple of Ajax-driven dashboard pages with to-do list, summary reports, ... are suffice to demonstrate the richness and usability: UI components, CRUD code-gen template, .... The purpose is to show RIA capability of the selected toolkit not the functional aspect of the application, correct?

Posted by Lo on June 09, 2008 at 10:55 PM MDT #

Lightweight CMS. Assume a database of stores, and build a tool that allows people to edit the location of the store on a map, upload photos, choose icons, edit the copy, etc. Integrating with a google maps (or yahoo or live) is pretty ubiquitous these days, and it would provide some good "real world" constraints. -Steve

Posted by Steve on June 09, 2008 at 11:36 PM MDT #

Sorry to rain on your parade (but I *live* in Portland, and its still raining :-). But nothing you can build in 20 hours has the slightest bit of relevance to application developers who are faced with choosing a technology where it's going to take 20 *months* to build the thing (no matter what technology they choose, given that real world requirements will definitely change during that time).

Judging a RIA platform based on a 20 hour development experience sounds a lot like judging a language platform based on a 20msec microbenchmark :-).

Posted by Craig McClanahan on June 09, 2008 at 11:57 PM MDT #

Matt, keep an eye on user input validations. The typical blog app may not have enough data restrictions to make it a valid use case.

Posted by Ignacio Coloma on June 10, 2008 at 01:10 AM MDT #

Hi Matt,

I think better comparison results for GWT and Flex can be achieved by using the same server-side technology. Otherwise you can get some kind of mixed feeling:)

For example Grails excellently integrates with Flex (I tried both combinations Grails/GWT and Grails/Flex and it is not easy to say which integration is better).

I suppose Rails also can be easily integrated with GWT as well and not only Flex.

Although I understand that from marketing perspective your decision is probably the right one;)

Regards, Leo

Posted by Leonid on June 10, 2008 at 03:18 AM MDT #

Hi Matt,

I'd have to agree with Leonid re ease of use with Grails/Flex. I've been building mini apps using the two and the apps keep getting more feature rich with little impact on productivity. Grails just makes it too easy and Flex is also simple. I'm having too much fun with the two.


Posted by Stephen on June 10, 2008 at 03:26 AM MDT #

I also would say Grails/Flex. Marcel Overdijk has a nice write up on it on his blog (

Posted by Jeremy Anderson on June 10, 2008 at 05:08 AM MDT #

Hi Matt,

I recently had about the same amount of time to develop a nice demo for Wicket. I decided to make a web-mp3-player.

It consisted of the following parts:
1. Song listing
Using a mp3 framework I scanned a (server-)directory for the song-information tags (ID3). Created a listing of the songs which was sortable by artist/songname etc.

2. Modal window with playback
Using a small Flash-component I custom-merged into Wicket for playback, and using the modal window support in Wicket I created a nice on-screen popup with more song-information and a small player.

The demo was a huge succes, its very visual (and has good audio!) and shows what you're able to do in a small amount of time with the current web (2.0) frameworks.

Posted by Roy van Rijn on June 10, 2008 at 05:22 AM MDT #

Hi Matt;

I personally would like to see a RIA application where you could manage ones resume on-line. I remember reading one of your blogs from way back and you were trying to attempt this. I am not sure if this would truly be a great RIA application. I know this would be useful application to build off of. LinkedIn may find this useful!!


Posted by Peter Delaney on June 10, 2008 at 06:00 AM MDT #

I like Roy van Rijn's idea. I would add that you could point to someone else's FTP directory somewhere on the Internets and have the songs show up in the playlist. At play time, the file should be streamed or downloaded then played.

I could find a gazillion ftps with music in em.

Good luck. Im subscribing to your blog to find out what you end up developing and to follow along.


Posted by Mike on June 10, 2008 at 06:38 AM MDT #

An agenda that allow you to track what you eat and tell you if you do good or not each week.

Posted by Sylvain on June 10, 2008 at 06:52 AM MDT #

How about an online directory of people, for organizations like churches, etc. I wanted to bring my church directory online about 3 months ago and was amazed that there aren't really any good (free) apps for this. We're just talking name, address, phone numbers, email, and pic. Additionally, it would be nice if you could group people into families. Anyway, just an idea.

Posted by Chris M on June 10, 2008 at 07:18 AM MDT #

Hi Matt,

I'm looking forward to seeing you in Portland!

I found it interesting that you are planning to split programming 50/50 between back-end and front-end. Using Flex I find that I actually end up spending about 80 of my time on the front-end. Not because it takes longer but because building back-ends is so easy these days. For many applications it's the pixel-perfect UI that takes the most time. Anyhow, as for ideas for applications I don't have any great ideas other than that you should try to include Ribbit calling and Doug McCune's CoverFlow component in the Flex version - because both those make for great demos! :)


Posted by James Ward on June 10, 2008 at 08:19 AM MDT #

I did something similar a while back only I used plain Grails and plain RoR (no Flex or GWT). The application I wrote took about the time you are looking for and was pretty simple. It was a calorie tracker application that allowed the following: - Ability to enter an itemized list for each day with the quantity and number of calories associated with each. This allowed for both expenditures and intake. - Ability to set a "profile" for each food or workout item to make entry faster. For example, a turkey sandwich, the way I eat it, might be 400 calories. Situps may be 10 calories each. This would let you choose the item from a dropdown and have it automatically populate the calories based upon the chosen item and the quantity. - Ability to show a report view. Pretty simple but gave me a good idea what some of the main differences were between Grails and Rails.

Posted by Jason McDonald on June 10, 2008 at 11:17 AM MDT #


You could help the boy scouts:
Boy Scouts Ask Open Source Community For Help


Posted by James Ward on June 10, 2008 at 12:28 PM MDT #

<quote> ...nothing you can build in 20 hours has the slightest bit of relevance to application developers who are faced with choosing a technology where it's going to take 20 *months* to build the thing... </quote>

Bah. You sound like Debbie Downer... and I happen to notice are the only one commenting who thinks it to be irrelevant. By the way, who the hell takes 20 months to build anything any more? The waterfall crowd still developing with EJB 2.x?

Posted by Country on June 10, 2008 at 03:42 PM MDT #

@James Ward I like the 90s-style 'under construction' graphics on the BSA site. Good for them though.

@Country +10 points for calling out Craig


Posted by Mike on June 10, 2008 at 04:23 PM MDT #

You could write a simple agenda application, with two views (month / day), to do some planning or you could write a kind of timesheet application.

These two would be nice examples.

Posted by -FoX- on June 11, 2008 at 02:57 AM MDT #

But nothing you can build in 20 hours has the slightest bit of relevance to application developers who are faced with choosing a technology where it's going to take 20 *months* to build the thing (no matter what technology they choose, given that real world requirements will definitely change during that time)

Wow. Is this really the Craig 'Struts' McClanahan?

If you get a vertical slice of an application up in 20 hours would the implementation be so different for a bigger app?

And if the requirements keep changing, you mean that technologies that help you build something in 20 hours will not help?

Ah, maybe you are referring to the "faces-config.xml" kind of approach that forces you to keep multiple files in sync using type-unsafe string expressions whenever navigation anywhere across your app has to be changed. Good luck with that.

Posted by Super Dude on June 11, 2008 at 03:34 AM MDT #

A simple web DB browser / editer like TOAD / SQLYog. It will showcase the most important features required by most enterprise intranet apps - grids (with sorting / paging / filtering) as well as editable forms for the UI which in turn will exercise server support for these features.

Posted by Sanjiv Jivan on June 11, 2008 at 06:04 AM MDT #

[Trackback] Thanks to everyone who commented on my previous post and offered recommendations for RIAs to develop in 20 hours or less. In order to narrow down my choices, I've created a survey on . Here's a list of the application ideas I recei...

Posted by Raible Designs on June 11, 2008 at 11:21 AM MDT #

Post a Comment:
  • HTML Syntax: Allowed