A better kind of app store

A Better kind of app store

The browser is a distribution channel. Writing apps in JavaScript, HTML, and CSS is like being told by your distributor that you can only build your products in a certain way. That’s ridiculous!

Build a better distribution mechanism that allows you to build apps the right way: either binaries or interpreted code, bundled with the right executable, so that the client has to do basically nothing.

A browser with a different emphasis.

It would:

  • Automatically know the system architecture and download the appropriate binaries (if available)
  • If the app is source code + interpreter, automatically select the correct interpreter / runtime for my architecture
  • Automatically check for updates, and install them

Now you can write your apps in any language you like, as long as you can provide either a binary or bundle the interpreter with the code.

Sort of related ideas:

  • Heroku slugs (and build packs)
  • JAR files
  • homebrew
  • mac app store
  • ruby gems / python eggs
  • build systems
  • makefiles
  • http://appbodega.com/
  • apt-get / aptitude (and other package managers)
  • docker? probably not, since it’s linux-only

What the developer would have to supply (via upload or git push):

  • either an executable, or source code
  • a manifest, which has:
    • version number
    • for each supported platform:
      • which version of a runtime is required, if any
      • instructions on how to satisfy dependencies
      • launch information (how to run this app)
        • run the binary, or
        • run the included source code with the specified runtime

The service would take the following steps, upon receiving your app:

  1. read the manifest
  2. for each platform, build a slug:
    • obtain runtime
    • satisfy dependencies

When the user downloads the slug, it’s 100% ready to launch. The client software would take care of converting the slug into a desktop shortcut, start menu item, dock item, whatever.

Attack vectors

  • automatically integrate with homebrew somehow (to immediately have access to a ton of applications)
  • automatic manifest generation — detect ruby apps (gem files), python apps (requirements.txt), java apps (ant.xml), etc.

Take a 70/30 cut, payments with stripe.

Totally free to upload, no curation at all.

Ability to upload simple pages (like github does).

Deploy hooks, so that whenever you push your repository to github, your app is built on this service and ready to go automatically – if you want (or if the version number has changed).

Need a name.

Login with github, and automatically just pull from a repository.

Integrate into spotlight + windows search