Bringing back dumb apps
🐒 Bring back Dumb Programs
I have written a few different posts about the thoughts on the current state of technology. The siloing of information, sun-setting and the single responsibility principle in apps. It's easy to point at issues, but it is harder to actually do something about it.
Reading Pketh's blog about making Kinopo and Glitch; I was inspired to make my own sort of manifesto about how I want to build tech.
Tooling
I tried a few languages like Nim, python, Lua and a tiny bit of Clojure, but their GUI libraries were unpleasent or few and far between, so I ended up running web servers to create the GUI making it very weird…
Impactful Quotes
I think the idea of being unambiguous and easy to explain is import. Not enough people wonder how something works,
they just enjoy what it does and hope no one is being creepy.
Built to Die, and Secretive About It
Funding models explain why it’s so hard to rely on software services long-term. Not because of technical problems like crashes, but because they’re often built to die.
Pketh - Kinopio creator
This is something that has happened to me many times on both ends, and I have been in invited to help build things that's soul purpose is to be bought out and sunset.
I think about the original Pokémon games with no internet features they are still playable and on almost any platform because they run in a virtual machine... well really an emulator, but it's a similar concept. Flutter apps are built with a similar architecture.
Pokemon Go architecture is the reserves, I have no confidence my daughter will be able to play Pokemon Go but She can always play original Pokemon.
the hamster
can rest
Online APIs are how web apps get information and save information. There are an always on, running up Cloud computing bills.
They are from conception near unsustainable, like a hamster running on a wheel until it has no more energy aka the company runs out of money.
Offline apps, on the other hand, are not subject to the same unsustainable. As long as you have the app installed on your device, it can be time locked and frozen, you will be able to use it, even if the company that developed it goes out of business. This makes offline apps a more reliable option for users who want to ensure that they will always have access to their data and apps.
Maybe everyone knows this already, and I'm just coming from a web engineering background, but I see files now as the OG decentralized APIs, you can access the same information from an "at rest" mp3 file instead of a JSON formatted object in an unsustainable Spotify API with a much better build for the future.
to maintain the Spotify you need a critical mass of user for funding because of constant security, constant storage & user management
to maintain the mp3 library you have to do nothing
to be inline with my thinking and what Ville-Matias said above; I wanted to use a storage format that empowers the user to
understand their data. Here is an example from a manga app
[manga.mushishi]
cover="/cover.jpg"
chapters= [
"/mushishi/01",
"/mushishi/02",
"/mushishi/03",
]
[manga.blue_period]
cover="/01.jpg"
chapters= [
"/blue_period/01",
"/blue_period/02",
]
TOML was created to be transparent, it stands for Tom's Obvious Minimal Language. I think using TOML will be a key part of my apps because its well supported and easy to read. There are other flat file databases like csvs that might be more preferment but this needs investigation after building a few apps.
Because most of the world is online, I think I will need 2 types mind sets for apps
A gatherer will get information, create the decentralized APIs by store them as files it could be a text files, image, GIF, video, or audio
a consumer would be something that shows, organizes or transforms that information.
So for example a gallery app that reads pictures and creates albums that's a consumer because without photos It's basically nothing.
- be unable to sunset
- treat the Internet like a tap that's on or off.
- be obvious and explicitly when it's connecting to the Internet
- Files will be the primary input and output (TOML preferably).
- no login, no accounts
- personal information should be avoid or encrypted
- Draggable UX or Keyboard focused UX are preferred
(feeling like an instrument)
- old Ugly is the new cute
- Minimalistic
- Non internet sharing is preferably (offline QR Code).
I'm not sure yet, I have a lot of ideas but in no particular order know I want to rebuild
otxto: offline kanban manager currently using todo.txt standard
manabee: offline manga reader with built-in offline Japanese dictionary
Karasu: an offline PGP key manager and message encoder
Niwa: an offline infinite canvas mood board used for creative project or memories