Principles
This app, like everything I build, follows a small set of core principles tailored to the project I’m working on. These aren’t pretentious save-the-world principles. They’re principles that constrain what I do, so whatever I’m building stays true to its mission. For example, VA7ZEB.ca is intended to be a lightweight, fast, no-barriers application that stations can use on the fly in realtime while operating. I don’t know what device they may be using or what connectivity they will have, so I insist that it works on phones and on IPv6. I want it to be lightweight and fast, so I don’t use most frameworks or libraries which often introduce unwanted weight and complexity. I want it to work offline in the future, so I don’t use database software, just JSON objects juggled in memory. It would be easier to ignore those constraints, but doing things the harder way makes it possible for me to get the final product I want.
Below are the principles that bind VA7ZEB.ca. If I adhere to them, even when it hurts, I believe that VA7ZEB.ca can achieve the goals I’ve set for it.
Core Principles
- VA7ZEB.ca is 100% serverless.
- VA7ZEB.ca works on phones,
tablets, and desktops.
- VA7ZEB.ca supports IPv6-only connectivity.
- VA7ZEB.ca is fast and responsive, even on low-power devices.
- VA7ZEB.ca stores no unnecessary personal information, such as street addresses.
- VA7ZEB.ca does not send unsolicited marketing emails. Ever.
- VA7ZEB.ca is a one-programmer, minimalist shop — and we like it that way.
Coding Principles
- VA7ZEB.ca ESM is the source of truth; preprocessed data chunks are the store of truth; the client just preaches truth.
- VA7ZEB.ca runs Node.js on the back end, and raw HTML/JS on the front end.
- VA7ZEB.ca almost never relies on the DOM for anything.
- VA7ZEB.ca almost never uses frameworks, libraries, API gateways or database software.
Future Principles
- VA7ZEB.ca will work offline. We don’t, yet, but we will.