rapsody.dev — ~
~ $

rapsody_dev

Sviluppatore Flutter in transizione da oltre vent'anni di lavoro in produzione industriale verso lo sviluppo software. Applico alla scrittura di codice la stessa disciplina di controllo qualità maturata in reparto — applicazioni Flutter/Supabase reali, con CMS e dati veri, non esercizi dimostrativi.

→ progetti → contatto
2 live · 1 in sviluppo · 2 in costruzione ▾ passa qui
VOBlog editoriale di famiglia — prodotto finito, in produzione.
Infinity ExtractAnalisi differenziale di export tabellari — prodotto proprietario, in uso.
SinergiaCase study di ingegneria del software: workflow multi-attore, ruoli e permessi.
Piattaforma ISSaaS: vetrina e area clienti su framework proprietario.
PortfolioQuesto sito — case study zero, in costruzione mentre lo guardi.
progetti

Cosa sto costruendo

live
VO — viaggiando oltre

Blog editoriale di famiglia — prodotto finito, in produzione.

Flutter WebCMS customSupabase
live
Infinity Extract

Prodotto desktop per l'analisi differenziale di export tabellari periodici: rilevazione dinamica dello schema su file irregolari, confronto tra periodi, controlli di integrità referenziale. Strumento proprietario, in uso reale ogni settimana.

PythonPySide6 / Qtpandasdesktop
in sviluppo
Sinergia

Case study di ingegneria del software: workflow multi-attore digitalizzato, ruoli e permessi, piattaforma multi-superficie su backend unico.

FlutterSupabaseRLS
in costruzione
Piattaforma IS

SaaS: vetrina e area clienti su framework proprietario (Infinity Studio).

FlutterSupabaseInfinity Studio
in costruzione
Portfolio — questo sito

Case study zero: versione rapida in HTML statico mostrata così com'è. La build definitiva (Flutter, design system Stark, CMS) è in corso.

HTML staticoprovvisorio
metodo

Co-sviluppo, non consulenza

Ogni blocco nasce da un bisogno reale in un sito, non da un catalogo di funzionalità pensate in astratto. Il bisogno nasce nel sito; il blocco nasce in Infinity Studio — il mio framework Flutter proprietario — minimale, senza parametri ipotetici. Si generalizza solo quando un secondo progetto ne ha davvero bisogno.

lib/design_system/stark/widgets/project_card.dart portfolio
// pattern previsto per la build definitiva del portfolio final lastLog = useProjectLog(project.id).lastEntry; return StarkCard( status: project.status, headline: project.tagline, footer: LogLine(entry: lastLog), // niente skill bar );
Dimostra: come la card progetto leggerà il log reale nella build definitiva — qui in versione statica come anticipazione del pattern, non ancora dato vivo.

Il metodo regge quando un progetto maturo lo eredita senza modifiche. VO — in produzione — usa questa architettura dati: stesso Supabase, stessa forma di query, nessuna scorciatoia per il progetto "vero".

vo_blog/lib/data/posts_repository.dart vo
final posts = await supabase .from('posts') .select() .eq('locale', currentLocale) .eq('published', true) .order('published_at', ascending: false);
Dimostra: codice reale da VO, il progetto più maturo — stesso backend, stessa forma di query promessa per gli altri progetti.

Lo stesso metodo regge anche fuori da Flutter. Infinity Extract è un prodotto desktop in Python: stack diverso, stessa regola di separazione — il motore di analisi è un package autonomo, la sua interfaccia grafica gli sta sopra e non viceversa.

src/infinity_extract/api.py extract
# il motore di analisi non importa una riga di Qt def run_analysis(files: list[Path]) -> dict[str, pd.DataFrame]: problems = schema.validate_main_sheets(files) if problems: raise SchemaValidationError(problems)
Dimostra: un solo contratto tra motore e interfaccia. Il package di analisi gira da riga di comando senza UI installata, e la stessa funzione alimenta sia l'applicazione desktop sia la regressione automatica su file di riferimento.

Infinity Studio avrà una vetrina propria — qui compare solo come metodo e stack.

contatto

Scrivimi

Per progetti, collaborazioni o due chiacchiere sul metodo.