Quick Apps
Small desktop apps you can install from a link.
Quick Apps is a project I've been working on. The idea is that installing an app should be about as easy as opening a website. You click a link, it asks if you want to install it, and then it shows up in your app menu like any other program. The apps are pretty small too (the ones on this page are between 3 and 60 KB).
If you want to try it, run this in a terminal:
curl -fsSL https://…/install.sh | sh
This downloads a single program called qa and puts it in
~/.local/bin. Right now it only works on 64-bit Linux with Wayland (I use sway, so that's where it's
been tested the most).
Apps to try
Here are a few apps I made while building it. Once qa is installed, the Install buttons should
work. The first time you click one, your browser will probably ask if it's ok to open qa links.
Why I made this
I wanted something in between a website and an app. Websites are really easy to share, you just send someone a link and they can use it right away. But they live in a browser tab, and they never really feel like part of your computer. Apps do, but installing one usually takes more work, and once it's installed it can pretty much do whatever it wants.
Quick Apps tries to get the good parts of both. You install an app from a link, and after that it acts like a normal program. It has an icon in your app menu and a command you can run from a terminal.
Apps also can't do much on their own. Each one gets a folder for its own files and that's about it. If it wants to use the internet, read other files, or use more memory, qa asks you first. (qa writes the question, not the app, so an app can't word it in a misleading way.)
Updates come from wherever you installed the app. When an app starts, qa checks that link for a newer version,
and if an update breaks something, qa rollback goes back to the old one.
Making your own
Right now apps are written in Rust using qa-sdk. In theory anything that compiles to WebAssembly
would work, but Rust is the only language with a library so far.
qa dev runs your app and reloads it whenever you save. When it's ready, qa pack builds
a zip and an app.json:
qa dev ./notes
qa pack ./notes --out dist
Then put both files on any web server and link to the app.json:
<a href="qa:https://example.com/notes/app.json">Install Notes</a>
If someone doesn't have qa installed yet, you can give them this command instead. It installs qa and then your app:
curl -fsSL https://…/install.sh | sh -s -- https://example.com/notes/app.json