I'm Aza Raskin @azaaza. I make shiny things. I simplify.

I'm the Creative Lead for Firefox.

 

Ubiquity In Depth

Sponsored by

An experiment into connecting the Web with language.

Ubiquity is an experiment two parts. It’s both an interface and a development platform. Ubiquity 0.1 focuses on the platform aspects, while beginning to explore language-driven methods of controlling the browser.

Read about the release here, or download it.

In this post, we’ll talk first about the interface, and then the platform. For those who are really impatient, and just want to see how the prototype version works, check out all of the pretty screenshots and use-cases in the Ubiquity Tutorial.

The Problem: The Web is Disconnected

You’re writing an email to invite a friend to meet at a local San Francisco restaurant that neither of you has been to.  You’d like to include a map. Today, this involves the disjointed tasks of message composition on a web-mail service, mapping the address on a map site, searching for reviews on the restaurant on a search engine, and finally copying all links into the message being composed.  This familiar sequence is an awful lot of clicking, typing, searching, copying, and pasting in order to do a very simple task.  And you haven’t even really sent a map or useful reviews—only links to them.

This kind of clunky, time-consuming interaction is common on the Web. Mashups help in some cases but they are static, require Web development skills, and are largely site-centric rather than user-centric.

It’s even worse on mobile devices, where limited capability and fidelity makes this onerous or nearly impossible.

Most people do not have an easy way to manage the vast resources of the Web to simplify their task at hand. For the most part they are left trundling between web sites, performing common tasks resulting in frustration and wasted time.

A Solution: Universal Access

Ubiquity’s interface goal is to enable the user to instruct the browser (by typing, speaking, using language) what they want to do. The end goal is something like this:

A concept sketch for the future of Ubiquity.

We aren’t there yet. Instead, we have the rudimentary systems of structured natural language commands. You can select something and Ubiq “translate this to French”, or “email it to Jono”. In both cases, Ubiquity is smart enough to realize what “this” and “it” refers to, as well as knowing who Jono is (by talking with my web-mail’s contact list). It’s also smart enough to be able to understand commands like “map Chicago Comics” and “yelp Tapas near SF” and give you rich previews and search results to get you where you want to be quickly. Even better, both of those commands let you insert results directly into, say, an email you’re writing so that you never have to interrupt your chain of thought.

There’s a long way to go with this interface, though. We aren’t even prioritizing the command suggestions we give. The interface looks messy and is visually cluttered. We have made the ultimate faux pas of putting hyphens into what should be natural language commands. It’s hard to know what you can and can’t type. It’s certainly something I don’t think everyday users would be comfortable with. Yet kernel of the idea is right. It needs thought and a lot of refinement. We’ll need your help to shape the future in the web.

A big direction that we know we are going to move is suggestions based on data-type recognition. We should be able to select an address and Ubiquity should then suggest commands that make sense to apply to an address (like map it, get directions there, find restaurants near there, etc.). Similarly, we should be able to select a phone number and prompt actions like “call”, a time and date should prompt actions like “add to calendar”.

Although this starts to move into the into the direction of talking about the platform, the language-based method isn’t the only way of connecting the web. For example, Ubiquity also provides a context menu to access functionality. You can easily select some text, right click, and translate. Or put it on a map. Or look it up on Ebay.

The point is not that the context-menu is a great way of exposing functionality. It isn’t. The point is that with the Ubiquity platform, it is easy to expose functionality in a variety of ways. Given modular functionality, we are given a great expressiveness in how let users harness its power. Again, thinking of new types of interaction — universally available functionality — is where we need help.

The Problem: Extending the Browser is Too Hard

Being relatively new to the Mozilla world, we found it difficult and time-consuming to write extensions to Firefox. There is something largely last-decade about requiring restarts to add a new feature to your browsing experience. It’s ironic that the entire Web is on a push model, yet the browser—the most fundamental tool of interacting with the Web—is on a pull model.

The fundamental problem is that extending the browser, and hence the web, is too difficult. The closer new browser functionality can be packaged to look like standard HTML and JS, the larger and more diverse a community will create it. The desktop paradigm for extension development, while powerful, has a high cost of adoption. Right now we have a short tail of browser functionality with thousands of add-ons. There should be millions. We can get to that long tail using a more web-like model for functionality development — tools that are accessible to hobbyists and tinkerers, but that scales to professionals.

A Solution: The Ubiquity Platform

Ubiquity treats extending the browser like writing websites. It’s an experiment in lowering the barrier to fundendemental enhancing the browsing experiment.

We’ve tried to factor out all the boilerplate code into the Ubiquity core, so that writing a useful Ubiquity command is as simple as this:

CmdUtils.CreateCommand({
name: "tinyurl",
takes: {"url to shorten": noun_arb_text},
preview: "Replaces the selected URL with a TinyUrl.",
execute: function( urlToShorten ) {
var baseUrl = "http://tinyurl.com/api-create.php";
var params = {url: urlToShorten.text};
jQuery.get( baseUrl, params, function( tinyUrl ) {
CmdUtils.setTextSelection( tinyUrl );
})
}
})

or this

CmdUtils.CreateCommand({
name: "insert-email",
takes: {"person": noun_type_contact},
preview: "Inserts an email address, by name, form your contact list.",
execute: function( email ) {
CmdUtils.setSelection( email.text );
}
})

You can learn how to write commands in the Ubiquity Author Tutorial. The command development API is not carved in stone; we’re hoping to get your feedback on how to make it even more convenient. Once you’ve written a command, sharing it is as easy as putting up a web page. For the end user, getting that command is as easy as bookmarking. No downloads and no clunky updates mechanism. The hope is to empower content providers with ways of bettering the web as a whole. To empower innovation at the edges.

If you have a web-application or website that provides a service, you can easily write a small amount of JavaScript glue to expose your functionality thorugh a Ubiquity command.  Ubiquity can help you extend the reach of your service beyond the bounds of your domain to find more users in the wider Web world. Ubiquity increases the surface area of innovation for the browser many-fold, by making anyone who can write simple Javascript into an agent for bettering the browser and the open Web. You are one of those agents.

If you do write any commands, please add them to the wiki-based command repository. You can also look for them on the opt-in statistics dashboard.

Get Involved

We are a virtual lab, so there are many ways to join the team to get involved:

RT @azaaza Ubiquity In Depth | Follow @azaaza on Twitter | All blog posts

View all 103 comments



Ivan Denker

Yes! Very exciting.


I think you are definitely on to something with this tool. I’ve been pining away for a such a system – what a fabulous idea.

On another note, the link on the Mozilla wiki page that goes to the Google Group/Email list contains some porn. Just an FYI…



Aza Raskin

@ Jon: Thanks. We’re one it.



suzanne

This is amazing Aza! congrats on the launch!

I’m having a blast using it and cannot wait to see how it evolves :)


This is exciting stuff (wrote a little bit about it, too). If there are any guidelines for people who may want to get involved (particularly on the UI/UX side of things, because the documentation is awesome for everything else), do let me know.


If natural language translation isn’t feasible, something like the TextWidget may make a good alternative.



Dan

I just downloaded this and ran through the tutorial. Congratulations, in the past 15 minutes, you’ve managed to revolutionize the way I see the internet. At several points in the tutorial I paused to utter: “this is so ****ing cool…” Please keep up the amazing work.

Only problem I’ve had since installing is that when I try to test the email command, I get a message saying “gmonkey is not defined,” but this is obviously a conflict between this and the greasemonkey extension, and I’m sure it’ll be ironed out as more people get on board.

I’ve seen a surprising lack of bugs for such an early release, and while I’ve yet to try my hand at it, it looks like commands should be pretty easy to write. I’ll definitely be keeping track of this.


Awesome looking. I am definitely excited about this experiment. Like @suzanne, I can’t wait to see how this evolves.


ahmaga! Ahmaga! AHMAGA! Can’t wait!



RichB

The plugin system reminds me a lot of “Dave’s Quick Search Taskbar” – the full plugin list for that is here:
http://www.dqsd.net/tools/dqsdtoc/searchtoc.pl



Exec

Very nice. Now, add access to the users locale and system preferences such as country, date format and the ability to use the metric system. You could add it as an option, for those who see problems with privacy in this.

Why you ask? Well, I was quite shocked for a moment when I used “weather linköping” and it told me it was 57°… FYI, going to http://www.google.com/search?hl=en&num=100&q=weather%20link%C3%B6ping shows the temperature correctly as 14°C.
Oh, and if you would allow it to know your city or to whatever degree you wish to specify your location it could default to showing the forecast for that specific location.


yeah !
Fantastic, easy & so quick ! :)
Want to see what’s following…. :) :) :) :)



Trey

This is absolutely incredible. It’s a command line that just works! Now if only I had a command line that just worked for everything in life…


Exciting stuff!



lqd

Ubiquity + AwesomeBar = Future



hm

defently HAS future.



pedro

Have tried it. It IS awesome, but… the link to report bugs gives me a time out.

How can I report a couple of problems i’ve found?

Best of luck to you fellows!



mike

Awesome stuff.

Just want to drop idea that you should add navigability with the arrow keys through the suggestions list, for example when typing: “wikipedia aza” we are presented with a list of articles but the only way to access them is with the mouse.  


sounds like Quicksilver for the whole web. and all the better for it!



EGD

Fantastic tool. Keep on working!! Thanks



StrikerObi

So basically you wrote Quicksilver for Firefox. This is the most amazing idea ever. I can’t believe somebody didn’t do this sooner! I just might jump ship from Safari/WebKit for this.



Satish Mummadi

WWWWWWWWWWWWWWWOOOOW, I like it.


This is simply incredible. Kudos to everyone involved in the creation of this tool.


Really nice! It remembers me how fast you can be with keyboard (…sounds like CLI?) rather than mouse.


Looks great, just installed it and can’t get at the server at labs.toolness.com – looks like it might be too successful!

Keep it up, though.


Congrats Aza for bringing Enso to the web :)

The web is becoming more and more humanized :D


This is definitely something I didn’t realise I needed, but now I have it I know I won’t be able to live without it .

In the same way I am super-dependant on automatic form-fillers I think I’ll become dependant on Ubiquity.

Keep it going!


It looks awesome. But my spidey sense went tingling when I saw that you have yet another plug in architecture. Big security concerns there, dude. Sorry to say, but feel very uneasy about installing this on the same application I use to access my bank.


Aza – while this is a great idea and one that seems to perfectly blend with your other theories perfectly, I’m worried that the Fx team still isn’t doing much towards addressing things like better Mac integration. The Firefox navigations bar is still very cluttered: if RSS is present, we are given three icons in the location bar itself on the right-hand side (RSS, Bookmark, and the inexplicable drop-down button – one that few people ever use), all with different visual styles, all taking space away from what should be just a single text field.

Similarly, the default design of the tabs leave a set of open and useless pixels scattered in between each tab. Tabs are large when created, which means that resizing of tabs starts much more quickly and the interface changes faster than it would if tabs were given a much slimmer default. It would also look less gangly.

Finally, scrolling is simply terrible. Is there nobody capable of implementing smooth scrolling in Firefox like it exists in every other Mac application by default?

When you announced that you’d be working for Mozilla, I’d hoped that these would be the problems you worked on. Instead, you’re working on adding functionality before you’ve polished what we already have. While Ubiquity seems interesting, I’m slightly disappointed that not much is being done on the home front.


Yes, let’s add functionality before polishing – the things that are worth the time will get polished.
I would like to link to a few resources that may help in the natural language processing and semantic-webbing –
WordNet – http://wordnet.princeton.edu/
and Freebase – http://www.freebase.com/ which has some really sick JSON APIs

Would javascript be a useful model for extending things? It’s so accessible and FF3 has some big performance gains in the works.



a firefoxer

How did you made this video, I am interested, thanks.



Daniel

Once i installed Ubiquity, my Fast Dial add on stoped working.



Damien

Amazing app! I installed it right away after watching your introduction video. I’m definitely going to use this. Keep up the good work guys.



Pierre

Simply incredible. One well-known company could say : It just works ;-)



Kniffler

Congratulations, you’ve made an interface to the web that’s even more annoying than the previous ones.



Tobi

Just brilliant. For a long time one of the coolest things I’ve seen. Mozilla was lucky to hire you…



paul chan

something that I’ve long been looking for. I see the potential of this language in Web info/knowledge management.. This has tremendous potential in a company’s knowledge management and communication. Think about starting from email checking in the morning, with ubiuqity I could save a lot of time in handling the attachment, links in the emails….

It could be more exciting if Ubiquity can…

Find documents or folders on the company intranet, by ubiuqnity I can paste one “workflow” command (eg. download, include metadata…, save to .., send copy to , inform somebody….print, schedule to read, action…..) .



firman

i just downloaded this little apps to my mac and i found it really remarkable that i believe it will be some kind of future useful apps for extending the capability of browser


Just thought I’d share the thoughts I posted in response to this on my email group:

It’s a really interesting concept in terms of enabling quick passing of information between previously segmented areas. I can see this kind of thing being escalated into the OS environment where it’s power would be of much more value. Adding to web calendars and web email is a neat trick, but unless it’s going to integrate into my real email accounts and calendars it stays as a neat trick.

Ubiquity’s concept of using “natural language” seems plain stupid to me, the last thing I need to be doing is typing more. Right-clicking would seem the obvious method to me, thereby exposing all my options without having to try and remember keywords and what functionality I’ve got installed.

Their first example seems to be completely backwards to me as well, no one starts of my typing an email, then trying to find a restaurant, then the map and then the reviews, and then booking the calendar date. In the real world you pick a date and time, find a restaurant based on location and reviews, and then send the relevant information to people, mimicking the natural order would make the project a lot more successful. You could look at it from a push-pull kind of scenario, in their example they are trying to pull all the pieces of information together (outwards -> in) whereas in reality most people work in a push situation (inwards -> out).

Will be keeping an eye on it though.


Another brick wall invented. How is it in this realm of endeavor no one considers that there is a history of this stuff that goes back decades?



Tommi

Veryvery good idea, I’ve been waiting for something like this ever since I installed Quicksilver on my mac which basically has a similar kind of idea (I also use the command+space to invoke Quicksilver ) but in the OS environment (take a note @Kenzor). As an idea it would be great if Ubiquitty could be (in the future that is) icorporated with Quicksilver as a plug-in or something, it would basically make my day and hopefully days of many other as well.

The problem is see here is the requirement of installing plug-ins and actually having to do something in order to make your life easier is seen as overwhelmingly hard by the majority of web users. By this I mean that the older baby boomers are veryvery reluctant in using their time to actually setup these commands as it is AND everything new related to technology is seen as hard or too complicated. I know this is just a matter of ignorance / lack of knowledge, but this should be somehow adderssed as well. Solutions could be something like ready made easy commands or an engine incorporated into ubiquity to actually make a new command by teaching Ubiquity, not by writing code.

Good work, very good. Keep it up.


Aza…any way to touch base with you re: Ubiquity via e-mail? Thanks.


Awesome job! Would be nice not only to get the web connected with itself, but also to leap into the real – ubiquitous – world, let’s say mobile, location aware ubiquity.

Scenario 1:
- I see a pic of some mighty fine sneakers in a webshop.
- I select the picture (and maybe product info around it) and I say to ubiquity: ‘Would like to try some’
- Mashup stores the gps search query and lets it run realtime when your gps enabled phone is moving towards a plotted search result.
- Downtown, ‘ubiquity mobile’ maps a sneaker try-out route along the plotted search results or notifies you when some mighty fine stuff gets within a 100 m range.

Scenario 2:
Mobile query:
- ‘need transport to Ischa’s place’
Result
- From: current gps location
- To: Address of Ischa from my contacts
- Calculate fastest transportation method
- Show walkingroute to busstop, tell waiting time, show arrival time, fees, etc.

Makes it fun to get lost :)


- Select text
- ‘Reply page+anchor to Arthur’
- Copies url, includes page-height, and pasts it into a new reply to the latest received e-mail from Arthur’.


Some of the critics seem to forget this is an alpha release. No doubt the interface will become more intuitive over time. As a huge fan of delicious, I wonder if perhaps allowing the user to tag commands, or even arguments, might make this a little more approachable. This could also assist in the discovery process, as the user could invoke ‘get more commands’ with tag arguments to help narrow down the choices. Otherwise, the proliferation of new commands will become unmanageable (it already has!) Better act quickly on that! Auto-suggesting tags a-la delicious bookmarks extension would help the community to standardize on common tags, providing a crowd-sourced ‘vocabulary’ to supplement the actual command names.


I found no where to report a bug…so i’ll tell that here; i’m really fascinated about Ubiquity but i found that it’s interfering with some addons that i like too !

the 2 addons are : Fast Dial and Google reader notifier…the first probably does not work enough and the second works but the little pop up cant be displayed correctly.

I wish you will correct these bugs and others if exist because i really want to use Ubiquity.


Your blog is really starting to get unusable as the scrollbar is getting smaller and smaller.

I think you should make a simple javascript navigation tool for your blog so we can navigate up and down through posts just like Google Reader.


“The command development API is not carved in stone; we’re hoping to get your feedback on how to make it even more convenient. ”

how about something like this? (haven’t read the api, psuedocoding it!)

CmdUtils.CreateCommand({
name: “create-command”,
takes: {”name”: noun_arb_text, “takes”: noun_list, “preview”: noun_arb_text, “execute”: noun_function_text },
preview: “Creates a command from the provided function”,
execute: function( name, takes, preview, execute ) {
return CmdUtils.CreateCommand({name: name, takes: takes, preview: preview, execute: eval( execute )})
}
})



Nathan Spears

Hi Aza. Very exciting stuff for UI nerds, and very, er, humane stuff for everyone else.

Reading about Ubiquity and your work led me to humanized.com, where the buttons that say “Download Now!” on http://www.humanized.com/enso/ are broken links. I submitted a report as best I could on the humanized “contact us” page but since it’s been almost 24 hours I thought you might appreciate me trying to bring it to your attention another way, in case you are missing much diverted traffic like mine.


Aza- I run a conference called Defrag (www.defragcon.com), and I’d like to get you involved in the agenda. Interested? if so, pls be in touch (enorlin AT mac.com). tks.



Jaume

Absolutely amazing!
I think this is the real step to the next browser’s generation.
Great job!


It goes without saying that this is an absolutely amazing idea. What’s even more commendable is the fact that despite being an alpha, Ubiquity has managed to properly convey what it is and what it can be!

I’ve dived into writing some commands for it, and so far have not run into any noticeable “bugs” other than the UI, which, like you’ve said needs some polishing. Nothing else so far. That’s amazing!

Thanks for your great work – the web needs more people like you!

- Waleed



Pradeep

Superrrrrb idea !!!!!
Just installed it and LOVED it !!!
Thank you so much !


This provides more functionality, similar to IE 8′S accelerators. But this is way better than it. I’ll have to wait and see how it evolves.



Andy

Interesting!

One site you may want to look at is Rebol (http://www.rebol.com). That language already lets you do things like –
“email fred@foo.net ‘Fred – lunch at 12 at Barneys’ ”

Rebol itself is (unfortunately) proprietary, but there is an open-source “work-alike” being developed as part of the Syllable operating system. It is called “Orca” – the site is here –
http://freshmeat.net/projects/rebol-orca/

http://trac.geekisp.com/orca/wiki/OrcaProject

Orca’s original dev no longer works on it, but three Syllable devs do – it is being actively developed. Well worth a look.
– Andy


I am taking a HCI class this quarter and was blown away by this project. Love the way the interface is invoked and used. I am truly blown away.


Forget about IE’s activities! This is the way to get what Bill Gates asked for a few years ago: information at yout fingertips!

I’m really exited to write as many ubi-commands as I could…

Thanks Aza, you are an innovator



Philip

Aza, this is great, but would be much more powerful as an independent app, that is, Enso. That way you could insert images inside technical papers you are writing, insert maps inside email from your desktop mail app, translate words from a PDF document, etc. As it is, I understand Ubiquity works only while FF is running. Then someone has to write a desktop app doing this, for various platforms. Why can’t Mozilla pay you to develop Enso integrated with the Moz suite?


it would be better with other languages support, but thanks..



Jed

where can we keep track of latest ubi builds?

cheers,
jed


Hey, super idea! Very impressive.

I’d like it so when I’m viewing an email in gmail, and type in ‘email this to ‘ to actually do a forward :D instead of trying to copy/paste the link.

I like a platform that makes me want to do stuff with it.


Hi webmaster!



Michael

Hi,

i was introduced to ubiquity by a guy i accidently and luckily met.

Ubiquity and the idea(s) behind it are really stunning :)
I’ll track it’s development an see if i can do (create) at least something helpful with it :)



George

hi there. you should consider embedding sth like that in ubiquity in the future.

http://www.youtube.com/watch?v=JKVKR-KB_UQ

I like the idea but i don’t need an extra frame in firefox..

P.S. Ubiquity rocks..


This is really awesome. After using Ubiquity, I suddenly had this feeling that my web browser (firefox) has gained intelligence – the power to think and analyze.

Is this the beginning of the intelligent web ? Only time will tell. :-)



Chris

This is an excellent app.Truely amazing..


The whether service is not at its best..


I don’t even know,fellow!) continued to write in the same vein, it is interesting people!


Indians Earn Rs.250000 monthly. Easy form filling jobs

Earn Rs.35,000-50,000/- per month from home No marketing / No MLM .
We are offering a rare Job opportunity where you can earn from home using your computer and the Internet – part-time or full-time. Qualifications required are Typing on the Computer only. You can even work from a Cyber Café or your office PC, if so required. Working part time for 1-2 hours daily can easily fetch you Rs. 20-25,000 per month. Online jobs, Part time jobs. Work at home jobs. Dedicated workers make much more as the earning potential is unlimited. No previous experience is required, full training provided. Anyone can apply. Please Visit http://www.earnparttimejobs.com/index.php?id=


Wow, great project, but I think the technology is not developed enough for something like that. Or maybe I’m wrong.


This is amazing Aza! congrats on the launch!

I’m having a blast using it and cannot wait to see how it evolves :)


hi there. you should consider embedding sth like that in ubiquity in the future.


Another brick wall invented. How is it in this realm of endeavor no one considers that there is a history of this stuff that goes back decades? fıkra komik fıkra


thank you admin



SEO

This sounds like a wonderful experiment……I am certainly going to participate.



catalin bocanu


Anon

My first thought: Why not take the project AWAY from firefox? It cant possibly be off any good to limit the creativity of a project like this, with the limit of what can be done in in a firefox-extension.

And firefox is pretty much bloatware IMO, and dosn’t really look like it would be of much help, if this is to be some kind of revolution. Yes you wouldn’t have to write all of the parsing yourself, but isn’t that a little sloppy?

It sounds great though! Really like the ideas of your dad, and his archy too, and this is the natural implemention of these, on the web..

Just my 2 cents, I know theres a bunch of firefox guys that will be pissed of now, but thats life..


We are going to get involved……thanks


it’s helpfull.
(www.bilgec.org) gunluk guncel makale sitesi sağlık yaşam bilim bilgisayar cinsellik


Great addition!


nice share.

james
http://www.greepit.com



sandra

How come that no one has commented for nearly half a year? As a layperson, I´d like to find out about the current status of the project. Update? Thank you. Nice presentation style, interesting idea., exciting to feel things while they are being created… Your dedication is shining through.


very nice article and I like it.

============
http://ecrazysales – review your digital product


I liked reading your blog…keep up the good work.


thank you
ÈäÇÊ ÇáÓÚæÏíÉ , ÇáÓÚæÏíÉ, ÈäÇÊ, Ïáíá ãæÇÞÚ, Ïáíá ÈäÇÊ


Girls and women of Saudi Arabia


Thank you thank you thank you thank you thank you thank you!!!!!
I crash firefox daily because of all the tabs I leave open trying to email/tweet & everything else.

You guys are my heroes. :)


Viere nNice


Sounds interesting. Hope the interface will assert itself.


does anyone knows if there is any other information about this subject in other languages?


Wow, great project..
Thanks…


Thanks admin…


that’s a great tool. thankz for share with us and keep share any information with us


thats was good information for us.. i Hope the interface will assert itself.


Thats a great info. I like Ubiquity extension because it allows to enter commands and it gives new information and with good knowledge of page content


Great resource. Just downloaded.. was looking for Ubiquity extension


Great map script ..



Yann Lossouarn

Not compatible with Firefox 3.6 ??



James

This comments list is really missing something — how to describe it, I’m not quite sure — with it not having datestamps on the comments. I think the datestamps in some way add meaning to the comments – you know more about the context in which they were written, esp relative to when the page they are on was written.



BlockJuice

It’s basically Enso for Firefox. Needs to be developed a little, (a way to easily install .js files for Ubiquity would be nice, like a right click menu to avoid conflict with greasemonkey), but other than that, loverly.

Wish it could even be COMBINED with Enso, dare I say it. Though the coding platform for Python and Firefox might be completely different.


I think you are definitely on to something with this tool. I’ve been pining away for a such a system – what a fabulous idea.


The hope is to empower content providers with ways of bettering the web as a whole. To empower innovation at the edges.


Leave a Comment