dcsimg

Prism: The Future of Web Apps?

Mozilla Labs continues to turn out interesting projects. Prism, a single-serving browser for web apps, extends and protects your online applications.

Mozilla Labs recently released the 1.0 beta of Prism. Let’s take a look at Prism and see where it might fit in with your Web strategy or personal desktop.

What is Prism?

In simplest terms, Prism is a XULRunner-based browser designed to run a specific Web application. It gets rid of all the “clutter” around the application (all the menus, extra toolbars, etc.) and provides what the Moz folks call a “distraction free browser.” (Unfortunately, Prism does nothing to block annoying phone calls and other distractions. There’s only so much the Mozilla developers can do, apparently.)

Prism isn’t for standard Web browsing. If you want to bop around the Web checking Facebook, posting to Twitter, and browsing random Google search results, then Firefox is still the browser to use.

But if you’re using a Web-based application as part of your daily workflow, like Gmail, Google Docs, Salesforce.com, or one of the 37 Signals family of applications, then Prism is exactly what you want.

Why do I want a Site Specific Browser?

The most obvious benefit with Prism is that it separates the Web application from the rest of your browsing experience. A typical browsing session may involve opening dozens of tabs and multiple windows while browsing — finding your Web application amidst all the clutter can be annoying at best. By segregating out the Web application(s), you can work (or play) more efficiently.

Of course, this also means it separates your Web application from crashes — at least when something else brings down Firefox. Web application developers have gotten pretty skilled at writing applications that automatically back up your data, so you don’t lose that email, blog post, or document when the browser crashes. But, even when the Web app does save your data, it’s still disruptive to lose your place and have to start over again.

Other browsers, like Chrome, have introduced a similar feature to separate processes between tabs. That’s great for standard Web browsing, but still means that the application feels like part of your Web browsing session instead of working as a standalone application.

As a user, SSBs simply make life more convenient.

For Web application developers, Prism is a blessing because it means the ability to write an application that works with a standard Web browser but to also be able to ship a “standalone” application like the folks over at Zimbra. Because Prism is based on Firefox, it should be trivial to target Firefox and Prism, and even ship your own bundled application based on Prism.

It’s also a nice alternative for IT shops that want to give users access to Web based ticketing systems and so on, without giving users full access to the Web. You can opt to display (or not) the location bar within Prism, but if the location bar is visible, it’s read-only. So you can copy and paste the URL in the location bar, but it’s not possible to modify it.

Finally, Prism includes a JavaScript API that can be used to customize the Web application and provide desktop integration. This means that application developers can add additional functionality that makes their Web-based application more like a native desktop application.

Limitations

Prism does have a few limitations that make it not entirely suitable for all use cases. One downside to Prism is that it doesn’t offer the full range of Firefox’s features. You can’t easily install extensions within Prism, which means no Greasemonkey scripts for Web apps run within Prism or other extensions (like Google Gears) to enhance your favorite apps.

Prism also does away with bookmarks, history, and the ability to tweak preferences the way you can in Firefox. Why do you need this additional functionality when you’re running a specific Web application? Maybe you don’t, but many useful Web applications benefit from bookmarks and the ability to browse through the session history. For example, help desk personnel might be able to work a bit more effectively by bookmarking tickets that are accessed frequently.

On Linux, Prism doesn’t have quite all the functionality available to Windows and Mac OS X users, though the missing features are minimal. This seems to be more of a platform limitation than intentional feature disparity.

The ability to minimize to the system tray is limited to Windows, even though GNOME and KDE both support similar functionality. On Windows and Mac OS X, the icon in the Dock or System Tray (for Mac and Windows, respectively) can be updated to provide notifications — like the number of unread items in Google Reader.

Getting Started with Prism

Prism is available in two “flavors,” an extension for Firefox or a standalone application that can be deployed whether or not Firefox is installed on the system.

To get Prism, either install the extension or grab the archive that includes Prism. For Linux users, all that’s required is to uncompress the tarball in a directory under $home, or other desired directory, and run the prism executable in the main directory.

This will pop up the Prism dialog, which will allow you to configure your Web application. Provide a URL and name for the application, and check the “Desktop” box if you’d like an icon for the application on your desktop. Prism will grab an icon for the application from the site’s favicon if it has one, but you can also set a custom icon.

Once all that’s done, Prism will fire up the site and you can go to town.

Alternately, if you’re using the Extension, it’s even easier to create a Prism-ized version. Once you’re on the site that you want to use, just go to Tools -> Convert Website to Application. You’ll see a dialog remarkably similar to the standalone version of Prism. Once you’re done with that, again, you’ll have a desktop shortcut for the application that you can use to run the app as if it were a regular desktop application.

Note that if you choose to run the extension, you must be running a supported version of Firefox. If you like to run the latest Firefox testing builds, this might be a problem for you. And, of course, the extension requires a copy of Firefox. That might not be desirable if you’re trying to restrict users to a specific Web site.

If you’re feeling fancy, you can provide users with a Webapp Bundle to use Prism. This is a zip file that holds a configuration file, icons, and (optionally) a JavaScript file to modify Prism’s default behavior or add functionality.

There’s information on creating these on the Mozilla Prism wiki. Basically, you just need to create a file called “webapp.ini” with information about the Web site/application you want the user to run and then compress it with Zip. You can also include (if you’d like to get really fancy) JavaScript and CSS files to modify Prism.

Though you can’t easily install extensions with Prism, you can add the same kind of functionality with a script included with the Webapp Bundle.

Learning More

For more on Prism, see the Prism section on the Mozilla Developer Center. You can also poke around the Mozilla Labs Prism group and search the Web a bit, you can find tutorials on hacking Prism and extending Extensions to work with Prism.

For a while, development on Prism had appeared to have stalled, but it looks like Prism is on its way to maturity — which is a good thing for those of us who spend far too much time using Web applications.

Comments on "Prism: The Future of Web Apps?"

ttfnjohn

I’m a little concerned, reading any and all links I can find on Prism that while it’s uses for Windows are well documented, OSX mentioned there is little nor no mention of Linux.

Zonker mentions limitations in Linux, excuses them, and goes on without mentioning what they are. Nothing I can find goes into them either. I rather suspect it is actually intentional and not platform limitation to be honest.

From what little I can find, installation on a user desktop involves Win style ini file litter, about:config messing around to get things to actually run which can leave support types ripping their hair out to support it.

Mimimizing to a task bar is a fatal flaw, IMHO, but then again the Prism developers seem to focus on Windows leaving Mac and Linux to look after themselves which reflects an increasing tendency in FF itself.

I’m not looking to dismiss the product or to diss it completely just to say there’s a sad lack of coherent and available documentation on it outlining things like platform limitations and so on not to mention a single reason (other than security which does make sense) to actually use it.

As someone who has worked in corporate desktop support I would never support a product this poorly documented or, apparently, implemented. Beta grade end user apps need full end user documentation, and explanation of platform limitations, if any. Similar docs ought to exist for corporate support types.

So far all I see is hype for SSBs and little else. What I do see is compelling but it’s also looking like a nightmare to support or fix should something go wrong. I do hope I’m wrong.

ttfn

John

Reply
ttfnjohn

Replying to myself is not good form, I know.

I will now disagree with Zonker that the Linux limitations are a platform limitation and are deliberate and I can’t say I’m suprised, though saddened.

The standalone is MAC and Windows only with no explanation as to why that I can find, nor can I think of a single defendabale one. So Linux users get stuck with a plug in and not the full meal deal.

I think I’ll give it a pass.

ttfn

John

Reply
mdozone01

I\’m not sure about the Prism program but I understod its pretty neat if you have the hardware. anyway all that linux has is good and keep on getting it..:>

Reply

Currently it looks like Drupal is the top blogging platform out there right now. (from what I’ve read) Is that what you are using on your blog?

Reply

I truly appreciate this post. I have been looking all over for this! Thank goodness I found it on Bing. You have made my day! Thank you again

Reply

What¦s Taking place i’m new to this, I stumbled upon this I have found It absolutely helpful and it has helped me out loads. I am hoping to contribute & aid other users like its aided me. Great job.

Reply

As I website possessor I believe the content material here is rattling great , appreciate it for your efforts. You should keep it up forever! Good Luck.

Reply

I’ve been exploring for a little bit for any high-quality articles or blog posts on this sort of area . Exploring in Yahoo I at last stumbled upon this site. Reading this information So i am happy to convey that I’ve a very good uncanny feeling I discovered just what I needed. I most certainly will make certain to don’t forget this web site and give it a look on a constant basis.

Reply

It’s actually very complex in this busy life to listen news on TV, thus I just use the web for that reason, and obtain the latest news.|

Reply

Im not positive the place you are getting your information, however good topic. I must spend some time learning more or working out more. Thank you for magnificent information I was looking for this info for my mission.

Reply

Always a major fan of linking to bloggers that I really like but really don’t get a good deal of link adore from.

Reply

We came across a cool web-site that you just could get pleasure from. Take a look should you want.

Reply

I was recommended this website by my cousin. I am not sure whether this post is written by him as nobody else know such detailed about my trouble. You are incredible! Thanks!

Reply

Always a massive fan of linking to bloggers that I really like but really don’t get lots of link really like from.

Reply

Hi , I do believe this is an excellent blog. I stumbled upon it on Yahoo , i will come back once again. Money and freedom is the best way to change, may you be rich and help other people.

Reply

Check beneath, are some totally unrelated internet sites to ours, nonetheless, they may be most trustworthy sources that we use.

Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>