Wednesday, December 12th, 2007

AppJet: Develop, Preview, Deploy all on the Web

Category: Announcements, Utility

Aaron Iba has released AppJet, an online IDE for developing simple web apps. You can
write an entire web app (client-side and server-side) in JavaScript, in 1 file of code. We run JS in a virtualized execution environment
on the server and provide free hosting. We also provide an easy JavaScript object database for persistent storage.

The beta online IDE includes a syntax-highlighting text editor (for JS code, written in client-side JS).

This market is becoming interesting. You have tools such as Bungee Labs, and the Google Mashup Editor, showing that you can do a lot of development directly online, and it does seem that this could be a great future. Let a developer build their application, test it, and just hit “deploy”! Done.

AppJet itself was interesting to play with. Although a little rough around the edges, you can see where it is going.

I asked Aaron a couple of questions, and he kindly went into detailed answers:

What are you trying to accomplish?

The short-term goals are to make it easier to get simple web apps
online and make it easier in general to whip up programs that “run on
the web”. By making it easier we hope to appeal to both beginners and
experienced hackers. After all, experienced hackers don’t like to do
unnecessary work either.

We hope that this will expose the “long-tail” of web apps. There is
no limit to the number of interesting programs that can be written in
100 lines of an expressive language like JavaScript, but often
100-line-program ideas don’t get published as web apps because there
is a lot of activation energy required to get a web app online. We
hope AppJet changes this.

Longer term, we want to be a platform for all sorts of web apps. We
have ideas for how to make AJAX programming easier by doing the whole
app in javascript. (We disagree with the GWT approach, because we
think javascript is a better language than Java for writing apps, all
respects to the GWT team whom I know and regard very highly from my
days at Google).

As a simple first step toward client-server integration, we enable
different “sections” of code to appear in the same source file. You
can specify a section of code to be run on the server, the client, or
shared between both. For instance, the shared code is useful for
running the exact same form validation code on the client and server.

Why did we do this?

Mostly, we were sick of all the hassle of setting up servers,
configuring apache, installing MySQL and php and mod_whatever, just to
get a simple web app online. So we largely did this for ourselves so
we could whip up little apps faster. We also think it would be great
if it were EASIER to write a web app than a desktop app. This would
change things: if you’re going to write a simple computer program,
then instead of writing it on your desktop and not sharing it with
anyone, you could make it a web app and other people can benefit.

What kind of applications are particularly well suited to this
kind of development?

Right now, simple web apps that require server-side processing and/or
persistent storage. Like a custom sign-up form, basic input/output.
We also happen to be a really good place to prototype a facebook app.
“The Compliment Machine”, for example, is a facebook app we wrote and
has been secretly hosted on AppJet for the past month.

Our app server is currently very efficient about serving high QPS, but
our storage system is capped at 10MB, so if a facebook app on appjet
becomes a hit, then it will probably reach the storage limit. We plan
to offer paid accounts with increased storage.

Longer term, I think we’ll also become a good place for AJAX apps and
for mash-ups. Right now our mashup support consists of a server-side
wget() function that downloads a foreign URL, but you could imagine
where we could go with this.

Aren’t you tied to the platform?

Our business model does not depend on locking people in to our
platform. The primary value we provide is easy, efficient hosting,
but we will also at least release software that lets you host an app
yourself. This is relatively low priority for us now because we’re
not sure how much users care about it, especially for the kind of apps
AppJet is ideal for. If it turns out users care a lot about this, we
will quickly release host-your-own-app server software. We will
probably also even release the source.

We are also going to open-source our server-side javascript
micro-framework (which is itself written in javascript). Actually,
you can already view the code to our framework by clicking the source
link at the top of any doc page .

The only software we have that we feel is essential to keep
proprietary is our unique app virtualization engine. Most
virtualization efforts to date have focused on virtualizing machines
(e.g. VMWare), but we are going for the long-tail of simple apps, so
we had drastically different requirements. We designed our
virtualization software such that hosting 1 additional app provides
negligible overhead provided that the app does not receive lots of
traffic or consume lots of storage. This way, we can host over a
million apps on a single server, if each app is low-traffic.

So in short, we have no problem releasing all the software necessary
to host appjet apps yourself, but we won’t release the software to
host AppJet itself :).


Posted by Dion Almaer at 8:11 am

3.1 rating from 46 votes


Comments feed TrackBack URI

It wasn’t just me who released this! The real credit also should go to my amazing cofounder hackers David Greenspan and JD Zamfirescu.

Comment by aaroniba — December 12, 2007

Wow nice.. :) we are working on something similar hopefully we will be launching our first official release soon..

Comment by ob — December 12, 2007

Hi! I’m also working on something similar. My second version, as a matter of fact. I think that you will need a much more polished WYSIWYG approach to be able to get people to try it out. I tried and failed in that respect. It seems that no matter how cool things you have under the cover, you’re judged by it anyway. Best of luck, though.

Comment by peter svensson — December 12, 2007

It’s a great service! Thanks!

Comment by Snowcore — December 12, 2007

such a cool app!

Comment by blankyao — December 12, 2007

Thats definitely a pretty cool app, I write quite a few small apps (usually C#/.NET) that this would be perfect for. I prefer to host my own apps though.

Comment by Andy Kant — December 12, 2007

Nice. Also doing something similar. We also offer the hosting for the app.

Comment by Mikael Bergkvist — December 12, 2007

Leave a comment

You must be logged in to post a comment.