Skip to content
View gi-os's full-sized avatar

Block or report gi-os

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
gi-os/README.md

GIOVANNI LUPO

new york · gio@gi-os.com · gzl.dev

shops storefronts, and the dashboard that runs them phones apps for a phone with no app store, and the store they install from systems a desktop in a browser tab, 2015 to version 7

About

I build small software, and I usually own the whole thing: the schema, the API, the interface, and the container it ships in. Ten years of it.

Shops

Shuttle is a storefront platform. Launchpad is the dashboard that creates a shop, stocks it, and puts it online.

One Docker container per shop, nginx routing by path, orders and inventory as CSV. Session auth with bcrypt and rate limiting, a file manager for the shop directory, and a self-update that pulls a new version from GitHub while the platform runs.

Express and SQLite underneath, React and Vite on top, one DigitalOcean droplet holding all of it. The client shops on lrparisstore.com run on it. Version 4.

Phones

The Light Phone III has a black-and-white screen whose home screen is a list of words. I wrote the apps it doesn't ship with, and the store they live in: twenty Kotlin apps, one shared library, one marketplace with a submission portal.

BrightMarket the app store, plus an index to submit to it
Roll camera with filters
BrightNotebook notes, folders, calendar
BrightMusic Spotify client
BrightRecorder voice recorder
BrightLibrary e-reader, manga and Calibre support

Fifteen more behind those: Control · Import · Transit · Way · Sports · Authenticator · thumb · Common · Solitaire · Sudoku · Nonogram · News · Noise · Passes · Sync

My girlfriend carries a Kyocera flip phone, so that got a launcher and a solitaire too.

Systems

Gi-OS          a desktop in a browser tab, started 2015, now on version 7
PassportOS     C, for the Passport device
June4 / June7  a virtual secretary, written before the assistants arrived

Odds and ends

zip            PWA clone of the LinkedIn Zip puzzle
TeslaHUD       a heads-up display for a car that already has one
basilnethome   the front door to my home server
GmsSpoof       make Google's apps trust microG on a phone with none
feed-guard     per-device feed time budgets, enforced at the DNS layer

Stack

kotlin, android           twenty apps, one shared library, one app store
node, express, sqlite     shuttle and launchpad, version 4
react, vite, tailwind     the dashboard the shops are run from
docker, nginx, ubuntu     one container per shop, one droplet, no kubernetes
bash                      more of it than I plan on

Elsewhere

gzl.dev — my blog, my bookshelf, my film log, my photographs. Everything else is on this page.

Pinned Loading

  1. BrightMarket BrightMarket Public

    App marketplace for the Light Phone III — browse, install and update sideloaded apps.

    Kotlin 5

  2. TeslaHUD TeslaHUD Public

    JavaScript

  3. Roll Roll Public

    Roll — a camera for the Light Phone III thats fun to use. advanced filters, unique features, purikura mode.

    Kotlin 1

  4. LR-Paris/Shuttle LR-Paris/Shuttle Public

    A "shuttle" for custom websites

    TypeScript 2 2

  5. BrightControl BrightControl Public

    The Light Phone III brightness wheel and camera button, working inside apps Light did not make

    Kotlin 2

  6. BrightMailbox BrightMailbox Public

    Email for the Light Phone III. Letters from people, notices from machines, five a day.

    Kotlin