Salta al contenuto principale
Dal blog

ProjectShelf: ho pubblicato un’app macOS open source per tenere in ordine i repository Git

Ho pubblicato ProjectShelf, una piccola app macOS open source per analizzare e tenere sotto controllo i repository Git presenti nei workspace locali.

Foto profilo di Alessandro IannaconeAlessandro Iannacone

ProjectShelf: un posto unico per i miei repository locali

Ho appena pubblicato su GitHub ProjectShelf, una piccola app desktop open source per macOS nata da un problema molto concreto: tenere sotto controllo i repository Git che si accumulano nel computer.

Quando si lavora su più progetti, è facile ritrovarsi con cartelle che non si ricordano più, branch lasciati a metà, modifiche locali non committate e repository clonati per una prova veloce che poi rimangono lì per mesi. Aprire ogni progetto uno alla volta per capire in che stato si trova non è un’attività particolarmente interessante.

ProjectShelf nasce per rendere questa ricognizione più immediata.

Cosa fa ProjectShelf

Si sceglie una cartella e l’app cerca i progetti Git presenti al suo interno. Per ogni repository mostra una sintesi utile per capire rapidamente cosa sta succedendo:

  • lo stato del progetto in base all’ultima attività;
  • lo stack tecnologico riconosciuto;
  • il branch corrente;
  • la presenza di modifiche non committate;
  • il remote Git configurato e la presenza di commit non inviati;
  • la dimensione del progetto;
  • un’indicazione di sicurezza prima di rimuoverlo localmente.

Sono disponibili anche filtri per vedere solo i progetti modificati, quelli senza remote o quelli che possono essere recuperati. Da ogni scheda si può inoltre aprire il progetto direttamente in Finder, nel Terminale o in VS Code.

L’obiettivo non è sostituire Git. È avere una vista d’insieme prima di decidere dove lavorare, cosa archiviare o quali cartelle possono essere eliminate senza sorprese.

Un’app locale, senza servizi esterni

Per questo progetto volevo mantenere una superficie tecnica piccola e soprattutto locale.

ProjectShelf è costruito con:

  • TinyJS, per la finestra desktop nativa;
  • JavaScript, HTML e CSS, senza un framework frontend;
  • Git CLI, usato per leggere lo stato dei repository.

Non ci sono Electron, server HTTP, database o servizi cloud. I dati dei repository restano sul computer e l’app salva soltanto le preferenze locali necessarie al suo funzionamento.

Per uno strumento che deve semplicemente aiutarmi a capire cosa ho sul disco, questa scelta mi sembra importante: niente account, niente sincronizzazione obbligatoria e nessun dato da inviare a un servizio esterno.

Anche in italiano

L’interfaccia supporta italiano e inglese. La lingua viene rilevata automaticamente dal sistema, ma può essere cambiata dalla barra superiore.

È un dettaglio piccolo, però fa parte dell’idea generale del progetto: una utility semplice, veloce da aprire e comprensibile senza aggiungere complessità dove non serve.

Perché l’ho pubblicato open source

ProjectShelf è nato come uno strumento personale, ma il problema non è necessariamente personale. Chi lavora con molti progetti, clona spesso repository o alterna sviluppo e attività operative può ritrovarsi facilmente nella stessa situazione.

Pubblicarlo su GitHub significa rendere il progetto verificabile, permettere ad altri di adattarlo alle proprie esigenze e raccogliere eventuali idee per migliorarlo. La repository è distribuita con licenza MIT, quindi può essere studiata, modificata e riutilizzata con poche restrizioni.

Questa è la prima release open source, non il punto di arrivo. Mi interessa capire quali informazioni siano davvero utili nella gestione quotidiana dei repository locali e quali funzioni possano rendere più sicuro il lavoro di pulizia e archiviazione.

Dove trovare il codice

Il codice sorgente e le istruzioni per lo sviluppo sono disponibili nella repository:

➡️ github.com/alesiestu/ProjectShelf

Se lavori su macOS e hai una cartella piena di repository che meritano una ricognizione, ProjectShelf è nato esattamente per questo.


Per una consulenza o una verifica della tua situazione:

Contattami qui