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 deploys them
    phones   twenty kotlin apps, and the store they live in
    systems  a desktop in a browser tab, 2015 to version 7

About

I build small software. Shops that sell things, apps for a phone with no app store, and a desktop that only ever existed in a browser tab.

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

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 and a home screen that is a list of words. I wrote the apps it does not ship with, and the store they live in: twenty apps in Kotlin, 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 with manga and Calibre support

Fifteen more sit 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

Stack

kotlin, android           20 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 has my blog, my bookshelf, my film log, and 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 3

  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

  4. BrightNotebook BrightNotebook Public

    Notes, folders and a calendar for the Light Phone III — with a camera that reads a page or a paper calendar via Claude. Built in the LightOS design language.

    Kotlin

  5. LR-Paris/Shuttle LR-Paris/Shuttle Public

    A "shuttle" for custom websites

    TypeScript 2 2

  6. LR-Paris/Launchpad LR-Paris/Launchpad Public

    Shuttle launch backend service

    JavaScript