[{"data":1,"prerenderedAt":861},["ShallowReactive",2],{"directus:site":3,"directus:pages":36,"directus:case-study:tfp":513},{"id":4,"name":5,"available":6,"email":7,"pec":8,"street":9,"postal_code":10,"city":11,"province":12,"vat":13,"rea":14,"sdi":15,"github":16,"linkedin":17,"translations":18},1,"Leica Florian Robert",true,"info@leicaflorianrobert.dev","florian.leica@pec.it","Via Pozza Maraschin, 44\u002FB","36015","Schio","VI","04329800249","VI - 396256","M5UXCR1","https:\u002F\u002Fgithub.com\u002Fleicaflorian","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fflorian-robert-leica\u002F",[19,24,30],{"id":4,"site_id":4,"languages_code":20,"role":21,"profession":21,"tagline":22,"cv_profile":23},"it","Sviluppatore Web & Mobile","Sviluppatore Web & Mobile. Da {years} anni trasformo idee in prodotti digitali.","Sviluppatore full stack da {years} anni: ho cominciato da autodidatta e oggi porto siti, app e piattaforme SaaS dall'idea al server, curando architettura, interfacce e infrastruttura. Sono stato CTO di un'agenzia e docente principale di un corso Full Stack, dove ho formato decine di studenti. Lavoro soprattutto con TypeScript, Vue e Nuxt, Laravel e Directus. Resto curioso: sperimento nuove tecnologie, AI compresa, e cerco sempre il modo più semplice e solido per risolvere un problema.",{"id":25,"site_id":4,"languages_code":26,"role":27,"profession":27,"tagline":28,"cv_profile":29},2,"en","Web & Mobile Developer","Web & Mobile Developer. For {years} years I have been turning ideas into digital products.","Full stack developer for {years} years: I started out self-taught and today I take websites, apps and SaaS platforms from idea to server, looking after architecture, interfaces and infrastructure. I have been the CTO of an agency and the lead teacher of a Full Stack course, where I trained dozens of students. I work mostly with TypeScript, Vue and Nuxt, Laravel and Directus. I stay curious: I experiment with new technologies, AI included, and always look for the simplest, most solid way to solve a problem.",{"id":31,"site_id":4,"languages_code":32,"role":33,"profession":33,"tagline":34,"cv_profile":35},3,"ro","Dezvoltator Web & Mobile","Dezvoltator Web & Mobile. De {years} ani transform idei în produse digitale.","Dezvoltator full stack de {years} ani: am început ca autodidact, iar astăzi duc site-uri, aplicații și platforme SaaS de la idee la server, ocupându-mă de arhitectură, interfețe și infrastructură. Am fost CTO-ul unei agenții și profesorul principal al unui curs Full Stack, unde am format zeci de studenți. Lucrez mai ales cu TypeScript, Vue și Nuxt, Laravel și Directus. Rămân curios: experimentez tehnologii noi, inclusiv AI, și caut mereu cea mai simplă și solidă cale de a rezolva o problemă.",[37,126,232,320,371],{"id":4,"sort":4,"key":38,"in_menu":6,"children":39,"translations":40,"sections":53},"home","none",[41,46,49],{"id":4,"pages_id":4,"languages_code":20,"slug":42,"title":43,"seo_title":44,"description":45},"","Home","Dall'idea al server: siti, app e SaaS che arrivano online e ci restano","Sviluppatore Web & Mobile a Schio (Vicenza): siti, app e SaaS che arrivano online e ci restano. {years} anni tra sviluppo, design e infrastruttura.",{"id":25,"pages_id":4,"languages_code":26,"slug":42,"title":43,"seo_title":47,"description":48},"From idea to server: websites, apps and SaaS that go live and stay live","Web & Mobile Developer in Schio (Vicenza, Italy): websites, apps and SaaS that go live and stay live. {years} years across development, design and infrastructure.",{"id":31,"pages_id":4,"languages_code":32,"slug":42,"title":50,"seo_title":51,"description":52},"Acasă","De la idee la server: site-uri, aplicații și SaaS care ajung online și rămân acolo","Dezvoltator Web & Mobile în Schio (Vicenza, Italia): site-uri, aplicații și SaaS care ajung online și rămân acolo. {years} ani între dezvoltare, design și infrastructură.",[54,74,90,104],{"id":4,"collection":55,"sort":4,"item":56},"block_hero_home",{"id":4,"engines":57,"translations":58},"both",[59,64,69],{"id":4,"block_hero_home_id":4,"languages_code":20,"title":60,"title_accent":61,"text":62,"legacy_text":63},"Dall'idea","al server","Siti, app e SaaS che arrivano online e ci restano. {years} anni tra sviluppo, design e infrastruttura.","Da {years} anni trasformo idee in siti, app e interfacce che funzionano davvero. Questa pagina è servita dal vecchio DOM: testo, link blu e tabelle.",{"id":25,"block_hero_home_id":4,"languages_code":26,"title":65,"title_accent":66,"text":67,"legacy_text":68},"From idea","to server","Websites, apps and SaaS that go live and stay live. {years} years across development, design and infrastructure.","For {years} years I have been turning ideas into websites, apps and interfaces that actually work. This page is served by the old DOM: text, blue links and tables.",{"id":31,"block_hero_home_id":4,"languages_code":32,"title":70,"title_accent":71,"text":72,"legacy_text":73},"De la idee","la server","Site-uri, aplicații și SaaS care ajung online și rămân acolo. {years} ani între dezvoltare, design și infrastructură.","De {years} ani transform idei în site-uri, aplicații și interfețe care chiar funcționează. Această pagină este servită de vechiul DOM: text, linkuri albastre și tabele.",{"id":25,"collection":75,"sort":25,"item":76},"block_services",{"id":4,"engines":57,"translations":77},[78,82,86],{"id":4,"block_services_id":4,"languages_code":20,"label":79,"title":80,"text":81},"servizi","Cosa posso fare per te?","Che ti serva un sito, un'app o un'interfaccia che non faccia scappare gli utenti, ecco come posso aiutarti:",{"id":25,"block_services_id":4,"languages_code":26,"label":83,"title":84,"text":85},"services","What can I do for you?","Whether you need a website, an app or an interface that doesn't scare users away, here's how I can help:",{"id":31,"block_services_id":4,"languages_code":32,"label":87,"title":88,"text":89},"servicii","Ce pot face pentru tine?","Fie că ai nevoie de un site, de o aplicație sau de o interfață care să nu-i alunge pe utilizatori, iată cum te pot ajuta:",{"id":31,"collection":91,"sort":31,"item":92},"block_projects",{"id":4,"engines":57,"show":38,"kind":93,"all_link":6,"translations":94},"all",[95,98,101],{"id":4,"block_projects_id":4,"languages_code":20,"label":96,"title":97},"progetti","Lavori selezionati",{"id":25,"block_projects_id":4,"languages_code":26,"label":99,"title":100},"projects","Selected work",{"id":31,"block_projects_id":4,"languages_code":32,"label":102,"title":103},"proiecte","Lucrări selectate",{"id":105,"collection":106,"sort":105,"item":107},4,"block_contact_form",{"id":4,"engines":57,"translations":108},[109,115,121],{"id":4,"block_contact_form_id":4,"languages_code":20,"label":110,"title":111,"text":112,"steps_title":113,"steps":114},"contatti","Parliamone","Hai un progetto, un problema o solo un dubbio tecnico? Scrivimi: ti dico onestamente cosa farei, senza giri di parole.","Come funziona","Mi scrivi (anche due righe vanno bene)\nTi rispondo entro 1–2 giorni lavorativi e, se serve, ci sentiamo in una call di 30 minuti\nTi mando una proposta chiara: tempi, costi, cosa è incluso",{"id":25,"block_contact_form_id":4,"languages_code":26,"label":116,"title":117,"text":118,"steps_title":119,"steps":120},"contact","Let's talk","Got a project, a problem or just a technical question? Write to me: I'll tell you honestly what I'd do, no beating around the bush.","How it works","You write to me (two lines are enough)\nI reply within 1–2 working days and, if needed, we have a 30-minute call\nI send you a clear proposal: timing, costs, what's included",{"id":31,"block_contact_form_id":4,"languages_code":32,"label":116,"title":122,"text":123,"steps_title":124,"steps":125},"Hai să vorbim","Ai un proiect, o problemă sau doar o nelămurire tehnică? Scrie-mi: îți spun sincer ce aș face, fără ocolișuri.","Cum funcționează","Îmi scrii (sunt de ajuns două rânduri)\nÎți răspund în 1–2 zile lucrătoare și, dacă e nevoie, vorbim într-un call de 30 de minute\nÎți trimit o propunere clară: termene, costuri, ce este inclus",{"id":25,"sort":25,"key":127,"in_menu":6,"children":39,"translations":128,"sections":143},"about",[129,134,138],{"id":105,"pages_id":25,"languages_code":20,"slug":130,"title":131,"seo_title":132,"description":133},"chi-sono","Chi sono",null,"Sono Leica Florian Robert, sviluppatore Web & Mobile: sviluppo full stack, progetto interfacce (UI e UX) e insegno tecnologie web.",{"id":135,"pages_id":25,"languages_code":26,"slug":127,"title":136,"seo_title":132,"description":137},5,"About me","I'm Leica Florian Robert, a Web & Mobile Developer: I build full stack, design interfaces (UI and UX) and teach web technologies.",{"id":139,"pages_id":25,"languages_code":32,"slug":140,"title":141,"seo_title":132,"description":142},6,"despre-mine","Despre mine","Sunt Leica Florian Robert, dezvoltator Web & Mobile: dezvolt full stack, proiectez interfețe (UI și UX) și predau tehnologii web.",[144,160,184,201,213],{"id":135,"collection":145,"sort":4,"item":146},"block_page_header",{"id":4,"engines":57,"variant":127,"cv_button":6,"translations":147},[148,152,156],{"id":4,"block_page_header_id":4,"languages_code":20,"label":149,"title":150,"intro":151},"\u002F\u002F su di me","Ciao, piacere","Sono Leica Florian Robert, sviluppatore Web & Mobile: sviluppo full stack, progetto interfacce (UI e UX) e insegno tecnologie web. Sono un grande appassionato d'informatica e di tecnologia.",{"id":25,"block_page_header_id":4,"languages_code":26,"label":153,"title":154,"intro":155},"\u002F\u002F about me","Hi, nice to meet you","I'm Leica Florian Robert, a Web & Mobile Developer: I build full stack, design interfaces (UI and UX) and teach web technologies. I'm a big fan of computing and technology.",{"id":31,"block_page_header_id":4,"languages_code":32,"label":157,"title":158,"intro":159},"\u002F\u002F despre mine","Salut, încântat de cunoștință","Sunt Leica Florian Robert, dezvoltator Web & Mobile: dezvolt full stack, proiectez interfețe (UI și UX) și predau tehnologii web. Sunt un mare pasionat de informatică și tehnologie.",{"id":139,"collection":161,"sort":25,"item":162},"block_text",{"id":4,"engines":57,"widgets":163,"translations":168},[164,165,166,167],"web","editor","lesson","agent",[169,174,179],{"id":4,"block_text_id":4,"languages_code":20,"label":170,"title":171,"text":172,"steps":173},"storia","Da autodidatta a sviluppatore","Ho cominciato a programmare da autodidatta, a 20 anni, nel 2009, con un'applicazione in Visual Basic per l'Ordine degli Ingegneri della Provincia di Potenza, sviluppata per Tecnobit. Nessun corso, solo qualche dritta da un amico: per il resto documentazione, tentativi ed errori. Volevo capire come funziona il web e, prima o poi, farne parte.\n\nUn tassello alla volta, quella curiosità è diventata un mestiere. Mi sono messo alla prova su progetti sempre più grandi, fino a co-fondare una software house e a guidare, da CTO, la parte tecnica di una web agency: backend in Laravel e Node.js, interfacce in Vue e Nuxt, app mobile. Mi è capitato di sbagliare, e ogni errore mi ha insegnato qualcosa che un manuale non spiega.\n\nHo imparato da solo, e per questo so quanto conta avere qualcuno che ti spiega le cose bene. Per quasi tre anni, dal 2021 al 2024, ho formato programmatori Full Stack con Boolean Careers, insegnando loro quello che serve per lavorare davvero. Spiegare mi ha costretto a capire ogni cosa fino in fondo, e mi ha reso uno sviluppatore migliore.\n\nOggi lavoro come sviluppatore e continuo a guardare dove sta andando la tecnologia. Soprattutto l'AI, che sta cambiando il modo di lavorare in molti settori. Per me è uno strumento come gli altri, e come ogni buon strumento semplifica molte cose: la uso ogni giorno come un collega instancabile, che scrive e verifica codice sotto la mia direzione. Questo sito ne è la prova, e lo racconto nel suo case study.","l'inizio\nla crescita\ninsegnare\noggi",{"id":25,"block_text_id":4,"languages_code":26,"label":175,"title":176,"text":177,"steps":178},"story","From self-taught to developer","I started programming self-taught at 20, in 2009, with a Visual Basic application for the Order of Engineers of the Province of Potenza, built for Tecnobit. No courses, just a few tips from a friend: the rest was documentation, trial and error. I wanted to understand how the web works and, sooner or later, be part of it.\n\nPiece by piece, that curiosity became a trade. I tested myself on bigger and bigger projects, up to co-founding a software house and leading, as CTO, the technical side of a web agency: Laravel and Node.js backends, Vue and Nuxt interfaces, mobile apps. I made mistakes along the way, and every one taught me something no manual explains.\n\nI learned on my own, and that's why I know how much it matters to have someone who explains things well. For almost three years, from 2021 to 2024, I trained Full Stack developers at Boolean Careers, teaching them what they need to really do the job. Explaining forced me to understand everything all the way down, and made me a better developer.\n\nToday I work as a developer and keep watching where technology is going. Above all AI, which is changing how people work in many fields. To me it's a tool like any other, and like every good tool it makes many things simpler: I use it every day like a tireless colleague that writes and checks code under my direction. This site is the proof, and I tell the story in its case study.","the start\ngrowing\nteaching\ntoday",{"id":31,"block_text_id":4,"languages_code":32,"label":180,"title":181,"text":182,"steps":183},"poveste","De la autodidact la dezvoltator","Am început să programez ca autodidact la 20 de ani, în 2009, cu o aplicație în Visual Basic pentru Ordinul Inginerilor din Provincia Potenza, dezvoltată pentru Tecnobit. Niciun curs, doar câteva sfaturi de la un prieten: în rest, documentație, încercări și greșeli. Voiam să înțeleg cum funcționează web-ul și, mai devreme sau mai târziu, să fac parte din el.\n\nPas cu pas, acea curiozitate a devenit o meserie. M-am pus la încercare pe proiecte tot mai mari, până la a co-fonda o software house și a conduce, ca CTO, partea tehnică a unei agenții web: backend în Laravel și Node.js, interfețe în Vue și Nuxt, aplicații mobile. Mi s-a întâmplat să greșesc, iar fiecare greșeală m-a învățat ceva ce niciun manual nu explică.\n\nAm învățat singur și de aceea știu cât contează să ai pe cineva care îți explică bine lucrurile. Timp de aproape trei ani, din 2021 până în 2024, am format programatori Full Stack la Boolean Careers, învățându-i ce le trebuie ca să lucreze cu adevărat. Să explic m-a obligat să înțeleg totul până la capăt și m-a făcut un dezvoltator mai bun.\n\nAstăzi lucrez ca dezvoltator și continui să urmăresc încotro merge tehnologia. Mai ales AI-ul, care schimbă felul în care se lucrează în multe domenii. Pentru mine e un instrument ca oricare altul și, ca orice instrument bun, simplifică multe lucruri: îl folosesc zilnic ca pe un coleg neobosit, care scrie și verifică cod sub îndrumarea mea. Acest site este dovada, iar povestea o spun în studiul lui de caz.","începutul\ncreșterea\npredarea\nazi",{"id":185,"collection":186,"sort":31,"item":187},7,"block_experiences",{"id":4,"engines":57,"translations":188},[189,193,197],{"id":4,"block_experiences_id":4,"languages_code":20,"label":190,"title":191,"text":192},"esperienze","Ecco alcune esperienze","Queste sono alcune delle esperienze più significative che ho avuto nel corso della mia carriera. Ci sono stati molti altri progetti e collaborazioni, e tutte queste esperienze mi hanno permesso di crescere professionalmente, ma sicuramente queste sono le più importanti.",{"id":25,"block_experiences_id":4,"languages_code":26,"label":194,"title":195,"text":196},"experience","Some of my experience","These are some of the most significant experiences of my career. There have been many other projects and collaborations, and all of them helped me grow professionally, but these are certainly the most important.",{"id":31,"block_experiences_id":4,"languages_code":32,"label":198,"title":199,"text":200},"experiență","Câteva dintre experiențele mele","Acestea sunt câteva dintre cele mai semnificative experiențe din cariera mea. Au mai fost multe alte proiecte și colaborări, iar toate m-au ajutat să cresc profesional, dar acestea sunt cu siguranță cele mai importante.",{"id":202,"collection":203,"sort":105,"item":204},8,"block_stack",{"id":4,"engines":57,"translations":205},[206,209,211],{"id":4,"block_stack_id":4,"languages_code":20,"label":207,"title":208},"stack","Tecnologie e linguaggi",{"id":25,"block_stack_id":4,"languages_code":26,"label":207,"title":210},"Technologies and languages",{"id":31,"block_stack_id":4,"languages_code":32,"label":207,"title":212},"Tehnologii și limbaje",{"id":214,"collection":215,"sort":135,"item":216},9,"block_cta",{"id":4,"engines":217,"variant":218,"translations":219},"native","banner",[220,224,228],{"id":4,"block_cta_id":4,"languages_code":20,"label":132,"title":221,"title_accent":222,"text":223},"Ora sai qualcosa in più,","scrivimi","Se hai bisogno di un sito web, di un'applicazione mobile, di un logo o di un'identità visiva, o se hai semplicemente bisogno di un consiglio, non esitare a contattarmi! Sono sempre alla ricerca di nuove sfide, nuovi entusiasmanti progetti e nuove opportunità per migliorare come persona e come professionista.",{"id":25,"block_cta_id":4,"languages_code":26,"label":132,"title":225,"title_accent":226,"text":227},"Now you know a bit more,","drop me a line","If you need a website, a mobile app, a logo or a visual identity, or if you simply need some advice, don't hesitate to get in touch! I'm always looking for new challenges, exciting new projects and new opportunities to grow as a person and as a professional.",{"id":31,"block_cta_id":4,"languages_code":32,"label":132,"title":229,"title_accent":230,"text":231},"Acum știi ceva mai mult,","scrie-mi","Dacă ai nevoie de un site web, de o aplicație mobilă, de un logo sau de o identitate vizuală, sau dacă ai nevoie pur și simplu de un sfat, nu ezita să mă contactezi! Sunt mereu în căutarea unor noi provocări, a unor proiecte noi și interesante și a unor noi oportunități de a mă dezvolta ca om și ca profesionist.",{"id":31,"sort":31,"key":99,"in_menu":6,"children":99,"translations":233,"sections":243},[234,237,240],{"id":185,"pages_id":31,"languages_code":20,"slug":96,"title":235,"seo_title":132,"description":236},"Progetti","Alcuni dei progetti che ho realizzato: siti, web app, app mobile ed esperimenti.",{"id":202,"pages_id":31,"languages_code":26,"slug":99,"title":238,"seo_title":132,"description":239},"Projects","Some of the projects I've built: websites, web apps, mobile apps and experiments.",{"id":214,"pages_id":31,"languages_code":32,"slug":102,"title":241,"seo_title":132,"description":242},"Proiecte","Câteva dintre proiectele pe care le-am realizat: site-uri, aplicații web, aplicații mobile și experimente.",[244,258,268,283,298,311],{"id":245,"collection":145,"sort":4,"item":246},10,{"id":25,"engines":57,"variant":99,"cv_button":247,"translations":248},false,[249,252,255],{"id":105,"block_page_header_id":25,"languages_code":20,"label":250,"title":235,"intro":251},"\u002F\u002F {n} progetti","Siti, piattaforme, app, infrastrutture: qui sotto una parte di quello che ho costruito, per clienti e per me. Oggi lavoro anche con l'AI, che mi fa andare più veloce, mentre decisioni, architettura e qualità restano mie. Hai qualcosa di diverso in mente? Scrivimi.",{"id":135,"block_page_header_id":25,"languages_code":26,"label":253,"title":238,"intro":254},"\u002F\u002F {n} projects","Websites, platforms, apps, infrastructure: below is part of what I've built, for clients and for myself. Today I also work with AI, which makes me faster, while the decisions, the architecture and the quality stay mine. Have something different in mind? Write to me.",{"id":139,"block_page_header_id":25,"languages_code":32,"label":256,"title":241,"intro":257},"\u002F\u002F {n} proiecte","Site-uri, platforme, aplicații, infrastructuri: mai jos e o parte din ce am construit, pentru clienți și pentru mine. Astăzi lucrez și cu AI, care mă face mai rapid, în timp ce deciziile, arhitectura și calitatea rămân ale mele. Ai altceva în minte? Scrie-mi.",{"id":259,"collection":91,"sort":25,"item":260},11,{"id":25,"engines":57,"show":261,"kind":93,"all_link":247,"translations":262},"featured",[263,265,266],{"id":105,"block_projects_id":25,"languages_code":20,"label":264,"title":132},"in evidenza",{"id":135,"block_projects_id":25,"languages_code":26,"label":261,"title":132},{"id":139,"block_projects_id":25,"languages_code":32,"label":267,"title":132},"în evidență",{"id":269,"collection":91,"sort":31,"item":270},12,{"id":31,"engines":57,"show":271,"kind":272,"all_link":247,"translations":273},"archive","direct",[274,277,280],{"id":185,"block_projects_id":31,"languages_code":20,"label":275,"title":276},"clienti","Lavori per i clienti",{"id":202,"block_projects_id":31,"languages_code":26,"label":278,"title":279},"clients","Client work",{"id":214,"block_projects_id":31,"languages_code":32,"label":281,"title":282},"clienți","Lucrări pentru clienți",{"id":284,"collection":91,"sort":105,"item":285},13,{"id":105,"engines":57,"show":286,"kind":287,"all_link":247,"translations":288},"grouped","agency",[289,292,295],{"id":245,"block_projects_id":105,"languages_code":20,"label":290,"title":291},"agenzie","Tramite agenzia",{"id":259,"block_projects_id":105,"languages_code":26,"label":293,"title":294},"agencies","Through agencies",{"id":269,"block_projects_id":105,"languages_code":32,"label":296,"title":297},"agenții","Prin agenții",{"id":299,"collection":91,"sort":135,"item":300},14,{"id":135,"engines":57,"show":271,"kind":301,"all_link":247,"translations":302},"personal",[303,306,308],{"id":284,"block_projects_id":135,"languages_code":20,"label":304,"title":305},"lab","Progetti personali",{"id":299,"block_projects_id":135,"languages_code":26,"label":304,"title":307},"Personal projects",{"id":309,"block_projects_id":135,"languages_code":32,"label":304,"title":310},15,"Proiecte personale",{"id":309,"collection":215,"sort":139,"item":312},{"id":25,"engines":217,"variant":218,"translations":313},[314,316,318],{"id":105,"block_cta_id":25,"languages_code":20,"label":132,"title":221,"title_accent":222,"text":315},"Sia che tu stia cercando di creare un sito web aziendale, un e-commerce, un blog o qualsiasi altra soluzione web, sono qui per aiutarti. Contattami oggi stesso per scoprire come possiamo collaborare e creare un sito web straordinario insieme!",{"id":135,"block_cta_id":25,"languages_code":26,"label":132,"title":225,"title_accent":226,"text":317},"Whether you want to build a company website, an online shop, a blog or any other web solution, I'm here to help. Get in touch today to find out how we can work together and build an outstanding website!",{"id":139,"block_cta_id":25,"languages_code":32,"label":132,"title":229,"title_accent":230,"text":319},"Fie că vrei să creezi un site de prezentare, un magazin online, un blog sau orice altă soluție web, sunt aici să te ajut. Contactează-mă chiar azi ca să vedem cum putem colabora și crea împreună un site extraordinar!",{"id":105,"sort":105,"key":116,"in_menu":6,"children":39,"translations":321,"sections":330},[322,325,328],{"id":245,"pages_id":105,"languages_code":20,"slug":110,"title":323,"seo_title":132,"description":324},"Contatti","Sito, app, consulenza o solo un parere tecnico — scrivimi e vediamo insieme come darti una mano.",{"id":259,"pages_id":105,"languages_code":26,"slug":116,"title":326,"seo_title":132,"description":327},"Contact","A website, an app, consulting or just a technical opinion — write to me and let's figure out together how I can help.",{"id":269,"pages_id":105,"languages_code":32,"slug":116,"title":326,"seo_title":132,"description":329},"Site, aplicație, consultanță sau doar o părere tehnică — scrie-mi și vedem împreună cum te pot ajuta.",[331,341,350,358],{"id":332,"collection":145,"sort":4,"item":333},16,{"id":31,"engines":57,"variant":116,"cv_button":247,"translations":334},[335,337,339],{"id":185,"block_page_header_id":31,"languages_code":20,"label":132,"title":323,"intro":336},"Raccontami cosa hai in mente, anche se è solo un'idea abbozzata. Nessun impegno.",{"id":202,"block_page_header_id":31,"languages_code":26,"label":132,"title":326,"intro":338},"Tell me what you have in mind, even if it's just a rough idea. No commitment.",{"id":214,"block_page_header_id":31,"languages_code":32,"label":132,"title":326,"intro":340},"Povestește-mi ce ai în minte, chiar dacă e doar o idee schițată. Fără niciun angajament.",{"id":342,"collection":343,"sort":25,"item":344},17,"block_contact_info",{"id":4,"engines":345,"cv_button":6,"translations":346},"legacy",[347,348,349],{"id":4,"block_contact_info_id":4,"languages_code":20,"label":132,"title":132},{"id":25,"block_contact_info_id":4,"languages_code":26,"label":132,"title":132},{"id":31,"block_contact_info_id":4,"languages_code":32,"label":132,"title":132},{"id":351,"collection":106,"sort":31,"item":352},18,{"id":25,"engines":57,"translations":353},[354,355,357],{"id":105,"block_contact_form_id":25,"languages_code":20,"label":222,"title":111,"text":132,"steps_title":113,"steps":114},{"id":135,"block_contact_form_id":25,"languages_code":26,"label":356,"title":117,"text":132,"steps_title":119,"steps":120},"write to me",{"id":139,"block_contact_form_id":25,"languages_code":32,"label":230,"title":122,"text":132,"steps_title":124,"steps":125},{"id":359,"collection":343,"sort":105,"item":360},19,{"id":25,"engines":217,"cv_button":6,"translations":361},[362,365,368],{"id":105,"block_contact_info_id":25,"languages_code":20,"label":363,"title":364},"recapiti","Dove trovarmi",{"id":135,"block_contact_info_id":25,"languages_code":26,"label":366,"title":367},"details","Where to find me",{"id":139,"block_contact_info_id":25,"languages_code":32,"label":369,"title":370},"date de contact","Unde mă găsești",{"id":135,"sort":135,"key":372,"in_menu":247,"children":39,"translations":373,"sections":383},"privacy",[374,377,379],{"id":284,"pages_id":135,"languages_code":20,"slug":372,"title":375,"seo_title":132,"description":376},"Privacy","Come tratto i dati che mi lasci quando mi scrivi dal modulo di contatto di questo sito.",{"id":299,"pages_id":135,"languages_code":26,"slug":372,"title":375,"seo_title":132,"description":378},"How I handle the data you leave me when you write to me through this site's contact form.",{"id":309,"pages_id":135,"languages_code":32,"slug":380,"title":381,"seo_title":132,"description":382},"confidentialitate","Confidențialitate","Cum folosesc datele pe care mi le lași când îmi scrii prin formularul de contact al acestui site.",[384,395,408,421,434,447,460,473,486,499],{"id":385,"collection":145,"sort":4,"item":386},20,{"id":105,"engines":57,"variant":387,"cv_button":247,"translations":388},"plain",[389,391,393],{"id":245,"block_page_header_id":105,"languages_code":20,"label":132,"title":390,"intro":376},"Informativa privacy",{"id":259,"block_page_header_id":105,"languages_code":26,"label":132,"title":392,"intro":378},"Privacy policy",{"id":269,"block_page_header_id":105,"languages_code":32,"label":132,"title":394,"intro":382},"Politica de confidențialitate",{"id":396,"collection":161,"sort":25,"item":397},21,{"id":25,"engines":57,"widgets":132,"translations":398},[399,402,405],{"id":105,"block_text_id":25,"languages_code":20,"label":132,"title":400,"text":401,"steps":132},"Titolare del trattamento","Il titolare è **Leica Florian Robert**, ditta individuale con sede a Schio (VI), P. IVA 04329800249. Per qualsiasi domanda sui tuoi dati scrivimi a info@leicaflorianrobert.dev.",{"id":135,"block_text_id":25,"languages_code":26,"label":132,"title":403,"text":404,"steps":132},"Data controller","The controller is **Leica Florian Robert**, a sole proprietorship based in Schio (VI), Italy, VAT no. 04329800249. For any question about your data, write to me at info@leicaflorianrobert.dev.",{"id":139,"block_text_id":25,"languages_code":32,"label":132,"title":406,"text":407,"steps":132},"Operatorul de date","Operatorul este **Leica Florian Robert**, întreprindere individuală cu sediul în Schio (VI), Italia, cod TVA 04329800249. Pentru orice întrebare despre datele tale, scrie-mi la info@leicaflorianrobert.dev.",{"id":409,"collection":161,"sort":31,"item":410},22,{"id":31,"engines":57,"widgets":132,"translations":411},[412,415,418],{"id":185,"block_text_id":31,"languages_code":20,"label":132,"title":413,"text":414,"steps":132},"Quali dati raccolgo","Dal modulo di contatto: nome, indirizzo email e messaggio e, se li scegli, tipo di progetto, budget e tempistiche, oltre alla lingua della pagina da cui scrivi. Nome, email e messaggio servono per risponderti: senza, non posso farlo; il resto è facoltativo.\n\nCome ogni sito, il server registra inoltre nei log tecnici l'indirizzo IP e i dati delle richieste, solo per farlo funzionare e tenerlo sicuro.\n\nNon ti chiedo dati particolari (sulla salute, giudiziari e simili): ti chiedo di non inserirli nel messaggio.",{"id":202,"block_text_id":31,"languages_code":26,"label":132,"title":416,"text":417,"steps":132},"What data I collect","From the contact form: name, email address and message and, if you pick them, project type, budget and timing, plus the language of the page you write from. I need your name, email and message to reply to you: without them I can't; the rest is optional.\n\nLike any website, the server also records the IP address and the details of each request in its technical logs, only to keep the site running and secure.\n\nI don't ask for special categories of data (health, criminal records and the like): please don't put them in the message.",{"id":214,"block_text_id":31,"languages_code":32,"label":132,"title":419,"text":420,"steps":132},"Ce date colectez","Din formularul de contact: numele, adresa de email și mesajul și, dacă le alegi, tipul de proiect, bugetul și termenele, plus limba paginii din care scrii. Numele, emailul și mesajul îmi trebuie ca să-ți răspund: fără ele nu pot; restul este opțional.\n\nCa orice site, serverul înregistrează în plus în jurnalele tehnice adresa IP și datele cererilor, doar ca să funcționeze și să rămână sigur.\n\nNu îți cer date speciale (despre sănătate, cazier și altele asemenea): te rog să nu le scrii în mesaj.",{"id":422,"collection":161,"sort":105,"item":423},23,{"id":105,"engines":57,"widgets":132,"translations":424},[425,428,431],{"id":245,"block_text_id":105,"languages_code":20,"label":132,"title":426,"text":427,"steps":132},"Perché li uso","Solo per risponderti e, se ne nasce una collaborazione, per prepararti una proposta. La base giuridica è l'esecuzione di misure precontrattuali richieste da te (art. 6, par. 1, lett. b del GDPR); per i log tecnici è il mio legittimo interesse a tenere il sito sicuro (art. 6, par. 1, lett. f).\n\nNon uso i dati per newsletter o marketing, e non li vendo né li comunico a terzi, salvo i fornitori tecnici indicati più sotto.",{"id":259,"block_text_id":105,"languages_code":26,"label":132,"title":429,"text":430,"steps":132},"Why I use it","Only to reply to you and, if we end up working together, to prepare a proposal. The legal basis is taking steps at your request before entering into a contract (Art. 6(1)(b) GDPR); for the technical logs, it's my legitimate interest in keeping the site secure (Art. 6(1)(f)).\n\nI don't use the data for newsletters or marketing, and I don't sell it or pass it on to third parties, apart from the technical providers listed below.",{"id":269,"block_text_id":105,"languages_code":32,"label":132,"title":432,"text":433,"steps":132},"De ce le folosesc","Doar ca să-ți răspund și, dacă ajungem să colaborăm, ca să-ți pregătesc o propunere. Temeiul legal este efectuarea unor demersuri la cererea ta înainte de încheierea unui contract (art. 6 alin. (1) lit. b din GDPR); pentru jurnalele tehnice este interesul meu legitim de a ține site-ul în siguranță (art. 6 alin. (1) lit. f).\n\nNu folosesc datele pentru newslettere sau marketing, nu le vând și nu le transmit terților, în afară de furnizorii tehnici de mai jos.",{"id":435,"collection":161,"sort":135,"item":436},24,{"id":135,"engines":57,"widgets":132,"translations":437},[438,441,444],{"id":284,"block_text_id":135,"languages_code":20,"label":132,"title":439,"text":440,"steps":132},"Dove sono e per quanto tempo","Il messaggio viene salvato nel sistema che gestisce i contenuti del sito e mi arriva per email. Lo conservo per il tempo necessario a gestire la richiesta, e comunque non oltre 24 mesi dall'ultimo contatto; se nasce un rapporto di lavoro, valgono i tempi di conservazione previsti dalla legge per i documenti fiscali. I log tecnici vengono cancellati dopo poco tempo.",{"id":299,"block_text_id":135,"languages_code":26,"label":132,"title":442,"text":443,"steps":132},"Where it is and for how long","The message is saved in the system that manages the site's content and reaches me by email. I keep it as long as needed to handle the request, and in any case no longer than 24 months after our last contact; if we end up working together, the retention periods required by law for tax records apply. The technical logs are deleted after a short time.",{"id":309,"block_text_id":135,"languages_code":32,"label":132,"title":445,"text":446,"steps":132},"Unde sunt și cât timp","Mesajul este salvat în sistemul care gestionează conținutul site-ului și îmi ajunge pe email. Îl păstrez cât timp e nevoie pentru a gestiona cererea și, oricum, nu mai mult de 24 de luni de la ultimul contact; dacă ajungem să colaborăm, se aplică termenele de păstrare prevăzute de lege pentru documentele fiscale. Jurnalele tehnice se șterg după scurt timp.",{"id":448,"collection":161,"sort":139,"item":449},25,{"id":139,"engines":57,"widgets":132,"translations":450},[451,454,457],{"id":332,"block_text_id":139,"languages_code":20,"label":132,"title":452,"text":453,"steps":132},"Chi li tratta per me","Il sito e il sistema che salva i messaggi sono ospitati da **DigitalOcean** su un server ad Amsterdam, nei Paesi Bassi. DigitalOcean è un'azienda statunitense: i dati restano nell'Unione europea, ma un eventuale accesso dagli Stati Uniti è coperto dalle clausole contrattuali standard e dal Data Privacy Framework.\n\nLa posta elettronica, con cui mi arrivano i messaggi, è gestita da **Hostinger**.\n\nEntrambi trattano i dati solo per conto mio, come responsabili del trattamento (art. 28 del GDPR).",{"id":342,"block_text_id":139,"languages_code":26,"label":132,"title":455,"text":456,"steps":132},"Who processes it for me","The site and the system that saves the messages are hosted by **DigitalOcean** on a server in Amsterdam, the Netherlands. DigitalOcean is a US company: the data stays in the European Union, but any access from the United States is covered by the standard contractual clauses and the Data Privacy Framework.\n\nThe email, through which the messages reach me, is handled by **Hostinger**.\n\nBoth process the data only on my behalf, as processors (Art. 28 GDPR).",{"id":351,"block_text_id":139,"languages_code":32,"label":132,"title":458,"text":459,"steps":132},"Cine le prelucrează pentru mine","Site-ul și sistemul care salvează mesajele sunt găzduite de **DigitalOcean** pe un server din Amsterdam, Țările de Jos. DigitalOcean este o companie americană: datele rămân în Uniunea Europeană, dar un eventual acces din Statele Unite este acoperit de clauzele contractuale standard și de Data Privacy Framework.\n\nEmailul, prin care îmi ajung mesajele, este gestionat de **Hostinger**.\n\nAmândoi prelucrează datele doar în numele meu, ca persoane împuternicite (art. 28 din GDPR).",{"id":461,"collection":161,"sort":185,"item":462},26,{"id":185,"engines":57,"widgets":132,"translations":463},[464,467,470],{"id":359,"block_text_id":185,"languages_code":20,"label":132,"title":465,"text":466,"steps":132},"Protezione dallo spam","Per proteggere il modulo dallo spam, nella pagina che lo contiene uso **Google reCAPTCHA v3**, che analizza alcune informazioni sul dispositivo e sull'uso della pagina e può impostare dei cookie. La base giuridica è il mio legittimo interesse a tenere il modulo libero dallo spam (art. 6, par. 1, lett. f del GDPR).\n\nQuesti dati sono trattati da Google secondo la propria informativa (policies.google.com\u002Fprivacy) e possono essere trasferiti negli Stati Uniti, sulla base del Data Privacy Framework.",{"id":385,"block_text_id":185,"languages_code":26,"label":132,"title":468,"text":469,"steps":132},"Spam protection","To protect the form from spam, on the page that contains it I use **Google reCAPTCHA v3**, which analyses some information about the device and how the page is used, and may set cookies. The legal basis is my legitimate interest in keeping the form free of spam (Art. 6(1)(f) GDPR).\n\nThis data is processed by Google under its own policy (policies.google.com\u002Fprivacy) and may be transferred to the United States, under the Data Privacy Framework.",{"id":396,"block_text_id":185,"languages_code":32,"label":132,"title":471,"text":472,"steps":132},"Protecția împotriva spamului","Ca să protejez formularul de spam, pe pagina care îl conține folosesc **Google reCAPTCHA v3**, care analizează unele informații despre dispozitiv și despre folosirea paginii și poate seta cookie-uri. Temeiul legal este interesul meu legitim de a feri formularul de spam (art. 6 alin. (1) lit. f din GDPR).\n\nAceste date sunt prelucrate de Google conform propriei politici (policies.google.com\u002Fprivacy) și pot fi transferate în Statele Unite, în baza Data Privacy Framework.",{"id":474,"collection":161,"sort":202,"item":475},27,{"id":202,"engines":57,"widgets":132,"translations":476},[477,480,483],{"id":409,"block_text_id":202,"languages_code":20,"label":132,"title":478,"text":479,"steps":132},"Cookie e preferenze","Il sito non usa cookie di profilazione né strumenti di statistica. Salva nel tuo browser solo la scelta tra la versione legacy e quella nativa, per ricordarla alla prossima visita.",{"id":422,"block_text_id":202,"languages_code":26,"label":132,"title":481,"text":482,"steps":132},"Cookies and preferences","The site uses no profiling cookies and no analytics. It only saves in your browser your choice between the legacy and the native version, to remember it on your next visit.",{"id":435,"block_text_id":202,"languages_code":32,"label":132,"title":484,"text":485,"steps":132},"Cookie-uri și preferințe","Site-ul nu folosește cookie-uri de profilare și nici instrumente de statistică. Salvează în browserul tău doar alegerea dintre versiunea legacy și cea nativă, ca s-o țină minte la următoarea vizită.",{"id":487,"collection":161,"sort":214,"item":488},28,{"id":214,"engines":57,"widgets":132,"translations":489},[490,493,496],{"id":448,"block_text_id":214,"languages_code":20,"label":132,"title":491,"text":492,"steps":132},"I tuoi diritti","Puoi chiedermi in ogni momento di accedere ai tuoi dati, correggerli, cancellarli, limitarne il trattamento, opporti al trattamento o riceverli in un formato leggibile (artt. 15–22 del GDPR), scrivendo all'email qui sopra.\n\nSe ritieni che il trattamento non sia corretto, puoi presentare reclamo al Garante per la protezione dei dati personali (garanteprivacy.it).",{"id":461,"block_text_id":214,"languages_code":26,"label":132,"title":494,"text":495,"steps":132},"Your rights","You can ask me at any time to access, correct or delete your data, restrict or object to its processing, or receive it in a readable format (Art. 15–22 GDPR), by writing to the email above.\n\nIf you believe the processing isn't lawful, you can lodge a complaint with the Italian data protection authority, the Garante per la protezione dei dati personali (garanteprivacy.it).",{"id":474,"block_text_id":214,"languages_code":32,"label":132,"title":497,"text":498,"steps":132},"Drepturile tale","Îmi poți cere oricând să ai acces la datele tale, să le corectez sau să le șterg, să le restricționez prelucrarea, să te opui prelucrării sau să le primești într-un format ușor de citit (art. 15–22 din GDPR), scriindu-mi la adresa de email de mai sus.\n\nDacă crezi că prelucrarea nu este corectă, poți depune o plângere la autoritatea italiană pentru protecția datelor, Garante per la protezione dei dati personali (garanteprivacy.it).",{"id":500,"collection":161,"sort":245,"item":501},29,{"id":245,"engines":57,"widgets":132,"translations":502},[503,506,509],{"id":487,"block_text_id":245,"languages_code":20,"label":132,"title":504,"text":505,"steps":132},"Modifiche","Se cambia il modo in cui tratto i dati, aggiorno questa pagina. Ultimo aggiornamento: 18 ottobre 2026.",{"id":500,"block_text_id":245,"languages_code":26,"label":132,"title":507,"text":508,"steps":132},"Changes","If the way I handle data changes, I update this page. Last updated: 18 October 2026.",{"id":510,"block_text_id":245,"languages_code":32,"label":132,"title":511,"text":512,"steps":132},30,"Modificări","Dacă se schimbă felul în care prelucrez datele, actualizez această pagină. Ultima actualizare: 18 octombrie 2026.",[514],{"id":25,"sort":25,"status":515,"slug":516,"url":517,"kind":272,"category":132,"featured":247,"mockup":39,"on_home":6,"case_study":6,"branch":132,"image":518,"typographic":247,"logo":519,"logo_plate":247,"visual":132,"year":520,"cover":132,"translations":521,"sections":541},"published","tfp","https:\u002F\u002Fthefullproject.it\u002F","44b55a55-02a5-474e-a5b5-99d18ba2eb6b","49fc0aaa-568b-4a79-a96d-2e3159987471",2023,[522,530,535],{"id":105,"projects_id":25,"languages_code":20,"name":523,"note":524,"subtitle":132,"intro":525,"role":526,"type":527,"stack":528,"award":529},"The Full Project","20+ server, deploy automatici, zero disservizi","CTO, sviluppatore e IT in una web agency: siti, web app ed e-commerce, e l'infrastruttura che li porta online e li tiene in piedi.","CTO, sviluppo e IT","Web agency","Laravel, Statamic, Vue, Nuxt, Directus, Shopify, Ionic, Docker, DigitalOcean","Compasso d'Oro Internazionale 2025, con GeneraliAct4Green",{"id":135,"projects_id":25,"languages_code":26,"name":523,"note":531,"subtitle":132,"intro":532,"role":533,"type":527,"stack":528,"award":534},"20+ servers, automated deploys, no outages","CTO, developer and IT at a web agency: websites, web apps and e-commerce, and the infrastructure that takes them online and keeps them up.","CTO, development and IT","International Compasso d'Oro 2025, with GeneraliAct4Green",{"id":139,"projects_id":25,"languages_code":32,"name":523,"note":536,"subtitle":132,"intro":537,"role":538,"type":539,"stack":528,"award":540},"20+ servere, deploy-uri automate, zero întreruperi","CTO, dezvoltator și IT într-o agenție web: site-uri, aplicații web și e-commerce, plus infrastructura care le pune online și le ține în funcțiune.","CTO, dezvoltare și IT","Agenție web","Compasso d'Oro Internațional 2025, cu GeneraliAct4Green",[542,562,590,609,630,658,676,704,735,766,798,830,845],{"id":543,"collection":161,"sort":4,"item":544},84,{"id":545,"engines":57,"widgets":132,"translations":546},34,[547,552,557],{"id":548,"block_text_id":545,"languages_code":20,"label":549,"title":550,"text":551,"steps":132},100,"punto di partenza","Tutto a mano","Quando sono arrivato i siti erano quasi tutti in WordPress, su pochi server di cui si erano perse anche chiavi e permessi, e si pubblicavano a mano: file trasferiti via FTP, un rilascio alla volta.\n\nLa gestione dei server è passata poi a un'azienda esterna, ma col tempo si è visto che così non era gestibile. Alla fine l'agenzia l'ha affidata **interamente a me**.",{"id":553,"block_text_id":545,"languages_code":26,"label":554,"title":555,"text":556,"steps":132},101,"starting point","Everything by hand","When I arrived, the sites were almost all WordPress, on a handful of servers whose keys and permissions had even been lost, and were published by hand: files uploaded over FTP, one release at a time.\n\nServer management then moved to an outside company, but over time it became clear this wasn't manageable. In the end the agency handed it **entirely to me**.",{"id":558,"block_text_id":545,"languages_code":32,"label":559,"title":560,"text":561,"steps":132},102,"punct de plecare","Totul de mână","Când am ajuns, site-urile erau aproape toate în WordPress, pe câteva servere ale căror chei și permisiuni se pierduseră, și se publicau de mână: fișiere transferate prin FTP, câte o lansare pe rând.\n\nGestionarea serverelor a trecut apoi la o firmă externă, dar cu timpul s-a văzut că așa nu se putea gestiona. În final agenția mi-a încredințat-o **în întregime mie**.",{"id":563,"collection":564,"sort":25,"item":565},85,"block_gallery",{"id":269,"engines":57,"translations":566,"images":587},[567,573,580],{"id":545,"block_gallery_id":269,"languages_code":20,"label":568,"title":569,"text":570,"captions":571,"items":132,"localized_images":572},"il primo progetto","Partenza in corsa","Mi hanno chiamato per un'urgenza: la piattaforma di **Volersi Benessere** andava sviluppata da zero e consegnata in tempo. Ad agosto e settembre, insieme a un partner, l'abbiamo costruita con **Laravel** e **Statamic**, e consegnata nei tempi.","La piattaforma su desktop e su telefono, l'area personale e il negozio",[],{"id":574,"block_gallery_id":269,"languages_code":26,"label":575,"title":576,"text":577,"captions":578,"items":132,"localized_images":579},35,"the first project","A running start","They called me for an emergency: the **Volersi Benessere** platform had to be built from scratch and delivered on time. In August and September, together with a partner, we built it with **Laravel** and **Statamic**, and delivered it on schedule.","The platform on desktop and phone, the personal area and the shop",[],{"id":581,"block_gallery_id":269,"languages_code":32,"label":582,"title":583,"text":584,"captions":585,"items":132,"localized_images":586},36,"primul proiect","Plecare din mers","M-au chemat pentru o urgență: platforma **Volersi Benessere** trebuia dezvoltată de la zero și livrată la timp. În august și septembrie, împreună cu un partener, am construit-o cu **Laravel** și **Statamic** și am livrat-o în termen.","Platforma pe desktop și pe telefon, zona personală și magazinul",[],[588],{"directus_files_id":589,"sort":4},"fdec6d63-2c7d-4779-b67b-c8b22358232e",{"id":591,"collection":161,"sort":31,"item":592},86,{"id":574,"engines":57,"widgets":132,"translations":593},[594,599,604],{"id":595,"block_text_id":574,"languages_code":20,"label":596,"title":597,"text":598,"steps":132},103,"metodo","Un modello per tutti i siti","Statamic è diventato la base anche di altri siti, come **Alpha Omega**, **Mipharm** e **Doppel**.\n\nPoi sono passato a **Nuxt** e **Directus**, e ne ho fatto uno standard: due **modelli di partenza**, uno per il CMS e uno per il frontend, con la stessa struttura, gli stessi script e gli stessi pacchetti. Ogni sito nuovo parte da una base comune invece che da zero: meno tempo per cominciare, più tempo per il progetto.\n\nCon questo sistema abbiamo rifatto alcuni siti del **gruppo Qubit**, di cui The Full Project fa parte: tra gli altri **Qubit**, **GPF** e **Carmi e Ubertis**.",{"id":600,"block_text_id":574,"languages_code":26,"label":601,"title":602,"text":603,"steps":132},104,"method","One template for every site","Statamic also became the base of other sites, such as **Alpha Omega**, **Mipharm** and **Doppel**.\n\nThen I moved to **Nuxt** and **Directus**, and turned them into a standard: two **starter templates**, one for the CMS and one for the frontend, with the same structure, the same scripts and the same packages. Every new site starts from a shared base instead of from scratch: less time to get going, more time for the project.\n\nWith this system we rebuilt several sites of the **Qubit group**, which The Full Project belongs to: among them **Qubit**, **GPF** and **Carmi e Ubertis**.",{"id":605,"block_text_id":574,"languages_code":32,"label":606,"title":607,"text":608,"steps":132},105,"metodă","Un model pentru toate site-urile","Statamic a devenit baza și pentru alte site-uri, precum **Alpha Omega**, **Mipharm** și **Doppel**.\n\nApoi am trecut la **Nuxt** și **Directus** și am făcut din ele un standard: două **modele de pornire**, unul pentru CMS și unul pentru frontend, cu aceeași structură, aceleași scripturi și aceleași pachete. Fiecare site nou pornește de la o bază comună în loc de la zero: mai puțin timp pentru început, mai mult timp pentru proiect.\n\nCu acest sistem am refăcut câteva site-uri ale **grupului Qubit**, din care face parte The Full Project: printre altele **Qubit**, **GPF** și **Carmi e Ubertis**.",{"id":610,"collection":611,"sort":105,"item":612},87,"block_list",{"id":613,"engines":57,"translations":614},32,[615,620,625],{"id":616,"block_list_id":613,"languages_code":20,"label":617,"title":618,"items":619},94,"sviluppo","Cosa ho sviluppato","Siti web, partendo da un Figma, allo sviluppo e alla messa online.\nAnimazioni su misura in ogni sito, scritte per il progetto e non prese da un tema.\nTutti i siti 100% responsive, dal telefono al grande schermo.\nWeb app su misura.\nPWA, installabili sul telefono come un'app.\nE-commerce, fatti su misura o con Shopify dietro le quinte.\nPannelli di gestione su misura per i clienti.\nLaravel e Statamic sul backend, Vue e Nuxt sul frontend, Directus come CMS headless.",{"id":621,"block_list_id":613,"languages_code":26,"label":622,"title":623,"items":624},95,"development","What I built","Websites, from a Figma design to development and going live.\nCustom animations on every site, written for the project rather than taken from a theme.\nEvery site 100% responsive, from the phone to the big screen.\nCustom web apps.\nPWAs, installable on the phone like an app.\nE-commerce, custom-built or with Shopify behind the scenes.\nCustom admin panels for clients.\nLaravel and Statamic on the backend, Vue and Nuxt on the frontend, Directus as a headless CMS.",{"id":626,"block_list_id":613,"languages_code":32,"label":627,"title":628,"items":629},96,"dezvoltare","Ce am dezvoltat","Site-uri web, de la un design în Figma la dezvoltare și publicare.\nAnimații pe măsură în fiecare site, scrise pentru proiect și nu luate dintr-o temă.\nToate site-urile 100% responsive, de pe telefon până pe ecranul mare.\nAplicații web pe măsură.\nPWA, care se instalează pe telefon ca o aplicație.\nE-commerce, făcut pe măsură sau cu Shopify în culise.\nPanouri de administrare pe măsură pentru clienți.\nLaravel și Statamic pe backend, Vue și Nuxt pe frontend, Directus ca CMS headless.",{"id":631,"collection":564,"sort":135,"item":632},88,{"id":284,"engines":57,"translations":633,"images":655},[634,641,648],{"id":635,"block_gallery_id":284,"languages_code":20,"label":636,"title":637,"text":638,"captions":639,"items":132,"localized_images":640},37,"rifacimento","Kilocal, da capo","Il sito di **Kilocal** rifatto da zero con Nuxt e Directus, portando sulla nuova piattaforma anche i clienti di quella vecchia.\n\nCon il nuovo piano Kilocal sono arrivate funzioni nuove, tra cui le **video guide**, che si aggiornano in base a quanto l'utente ha già visto. Poi il **negozio** e, più tardi, l'**app**.","Il sito su desktop e su telefono, la dashboard del percorso e il negozio",[],{"id":642,"block_gallery_id":284,"languages_code":26,"label":643,"title":644,"text":645,"captions":646,"items":132,"localized_images":647},38,"rebuild","Kilocal, from scratch","The **Kilocal** website rebuilt from scratch with Nuxt and Directus, bringing the customers of the old platform over to the new one.\n\nThe new Kilocal plan brought new features, including **video guides** that update based on how much the user has already watched. Then the **shop** and, later, the **app**.","The site on desktop and phone, the programme dashboard and the shop",[],{"id":649,"block_gallery_id":284,"languages_code":32,"label":650,"title":651,"text":652,"captions":653,"items":132,"localized_images":654},39,"refacere","Kilocal, de la capăt","Site-ul **Kilocal** refăcut de la zero cu Nuxt și Directus, aducând pe noua platformă și clienții celei vechi.\n\nOdată cu noul plan Kilocal au venit funcții noi, printre care **ghidurile video**, care se actualizează în funcție de cât a văzut deja utilizatorul. Apoi **magazinul** și, mai târziu, **aplicația**.","Site-ul pe desktop și pe telefon, dashboard-ul programului și magazinul",[],[656],{"directus_files_id":657,"sort":4},"c54a2a0b-7254-4c3d-980c-a75bafa2fd7e",{"id":659,"collection":611,"sort":139,"item":660},89,{"id":661,"engines":57,"translations":662},33,[663,668,672],{"id":664,"block_list_id":661,"languages_code":20,"label":665,"title":666,"items":667},97,"e-commerce","Due negozi, due strade","**Kilocal**: un negozio fatto interamente da noi, su misura.\n**Volersi Benessere**: dietro le quinte c'è **Shopify**, con le sue API, ma l'interfaccia è nostra.",{"id":669,"block_list_id":661,"languages_code":26,"label":665,"title":670,"items":671},98,"Two shops, two roads","**Kilocal**: a shop built entirely by us, tailor-made.\n**Volersi Benessere**: **Shopify** runs behind the scenes, through its APIs, but the interface is ours.",{"id":673,"block_list_id":661,"languages_code":32,"label":665,"title":674,"items":675},99,"Două magazine, două drumuri","**Kilocal**: un magazin făcut în întregime de noi, pe măsură.\n**Volersi Benessere**: în culise este **Shopify**, prin API-urile lui, dar interfața este a noastră.",{"id":677,"collection":564,"sort":185,"item":678},90,{"id":299,"engines":57,"translations":679,"images":701},[680,687,694],{"id":681,"block_gallery_id":299,"languages_code":20,"label":682,"title":683,"text":684,"captions":685,"items":132,"localized_images":686},40,"integrazione","Gli immobili di iResales","Per **iResales**, un'azienda immobiliare, un sistema che raccoglie gli immobili da **immobiliare.it** e dal loro software interno, li carica in **Directus** e li mostra sul sito.","Il sito di iResales su desktop e su telefono",[],{"id":688,"block_gallery_id":299,"languages_code":26,"label":689,"title":690,"text":691,"captions":692,"items":132,"localized_images":693},41,"integration","The properties of iResales","For **iResales**, a real estate company, a system that collects the properties from **immobiliare.it** and from their in-house software, loads them into **Directus** and shows them on the website.","The iResales website on desktop and phone",[],{"id":695,"block_gallery_id":299,"languages_code":32,"label":696,"title":697,"text":698,"captions":699,"items":132,"localized_images":700},42,"integrare","Imobilele iResales","Pentru **iResales**, o firmă imobiliară, un sistem care adună imobilele de pe **immobiliare.it** și din software-ul lor intern, le încarcă în **Directus** și le afișează pe site.","Site-ul iResales pe desktop și pe telefon",[],[702],{"directus_files_id":703,"sort":4},"13ae8214-89a5-4204-a300-7e012ac7dc29",{"id":705,"collection":564,"sort":202,"item":706},91,{"id":309,"engines":57,"translations":707,"images":732},[708,716,724],{"id":709,"block_gallery_id":309,"languages_code":20,"label":710,"title":711,"text":712,"captions":713,"items":714,"localized_images":715},43,"esempio","Oasi Gregorina, prima, durante e dopo la visita","Per l'**Oasi Gregorina** non solo un sito, ma tutto quello che accompagna la visita, collegato allo stesso CMS:","Il sito, il memory game, il totem e la PWA","il **sito**, accessibile di **livello AA** e responsive;\nla **prenotazione online**: gestione giornaliera delle persone, limite di entrate, gruppi, email di conferma e promemoria;\nun **memory game** sul sito;\nuna pagina per il **totem** dell'oasi, con il monitoraggio degli impollinatori e il selfie ricordo;\nuna pagina pensata per **tablet**, dove lasciare un messaggio o un disegno sull'oasi;\nuna **PWA** che i visitatori usano durante la visita per scattare foto e raccontare la propria esperienza.",[],{"id":717,"block_gallery_id":309,"languages_code":26,"label":718,"title":719,"text":720,"captions":721,"items":722,"localized_images":723},44,"example","Oasi Gregorina, before, during and after the visit","For **Oasi Gregorina**, not just a website but everything that goes with the visit, connected to the same CMS:","The website, the memory game, the totem and the PWA","the **website**, **AA-level** accessible and responsive;\n**online booking**: daily visitor management, entry limits, groups, confirmation and reminder emails;\na **memory game** on the website;\na page for the oasis **totem**, with pollinator monitoring and a souvenir selfie;\na page designed for **tablets**, to leave a message or a drawing about the oasis;\na **PWA** that visitors use during the visit to take photos and tell their own experience.",[],{"id":725,"block_gallery_id":309,"languages_code":32,"label":726,"title":727,"text":728,"captions":729,"items":730,"localized_images":731},45,"exemplu","Oasi Gregorina, înainte, în timpul și după vizită","Pentru **Oasi Gregorina** nu doar un site, ci tot ce însoțește vizita, legat de același CMS:","Site-ul, memory game-ul, totemul și PWA-ul","**site-ul**, accesibil la **nivelul AA** și responsive;\n**rezervarea online**: gestionarea zilnică a vizitatorilor, limita de intrări, grupuri, e-mailuri de confirmare și de reamintire;\nun **memory game** pe site;\no pagină pentru **totemul** oazei, cu monitorizarea polenizatorilor și selfie-ul de amintire;\no pagină gândită pentru **tabletă**, unde se poate lăsa un mesaj sau un desen despre oază;\no **PWA** pe care vizitatorii o folosesc în timpul vizitei ca să facă fotografii și să-și povestească experiența.",[],[733],{"directus_files_id":734,"sort":4},"9a25e9b8-6d35-4bd4-9672-0b89970caf0c",{"id":736,"collection":564,"sort":214,"item":737},92,{"id":332,"engines":57,"translations":738,"images":763},[739,747,755],{"id":740,"block_gallery_id":332,"languages_code":20,"label":741,"title":742,"text":743,"captions":744,"items":745,"localized_images":746},46,"premio","Compasso d'Oro Internazionale","Con **GeneraliAct4Green**, il programma di sostenibilità di Generali di cui fa parte l'Oasi Gregorina, Generali ha vinto per la prima volta il **Compasso d'Oro Internazionale**, consegnato al Padiglione Italia di **Expo 2025 Osaka**.\n\nIl progetto è nato nel gruppo Qubit: la ricerca di mercato di Gpf, la marca e l'identità visiva di Carmi e Ubertis, e l'**ecosistema digitale** di The Full Project, che ho sviluppato io.\n\nIl premio riconosce una piattaforma digitale diventata uno spazio di sensibilizzazione e coinvolgimento verso un futuro più sostenibile e inclusivo. Dietro ci sono scelte precise:","La consegna del premio a Osaka; sullo schermo, tra i nomi del progetto, **anche il mio**. Fonte: comunicato stampa di Generali","**accessibilità** pensata fin dall'inizio, non aggiunta alla fine;\ncodice e contenuti ottimizzati per consumare meno, e la **dark mode** per ridurre ancora i consumi;\ni dati dei **sensori** installati nelle aree naturali, per seguire i progetti di sostenibilità.",[],{"id":748,"block_gallery_id":332,"languages_code":26,"label":749,"title":750,"text":751,"captions":752,"items":753,"localized_images":754},47,"award","International Compasso d'Oro","With **GeneraliAct4Green**, Generali's sustainability programme that Oasi Gregorina is part of, Generali won the **International Compasso d'Oro** for the first time, presented at the Italy Pavilion of **Expo 2025 Osaka**.\n\nThe project was born within the Qubit group: the market research by Gpf, the brand and visual identity by Carmi e Ubertis, and the **digital ecosystem** by The Full Project, which I developed.\n\nThe award recognises a digital platform that became a space for awareness and engagement towards a more sustainable and inclusive future. Behind it are precise choices:","The award ceremony in Osaka; on the screen, among the names of the project, **mine too**. Source: Generali press release","**accessibility** designed in from the start, not added at the end;\ncode and content optimised to use less energy, and **dark mode** to cut consumption further;\ndata from **sensors** installed in the natural areas, to follow the sustainability projects.",[],{"id":756,"block_gallery_id":332,"languages_code":32,"label":757,"title":758,"text":759,"captions":760,"items":761,"localized_images":762},48,"premiu","Compasso d'Oro Internațional","Cu **GeneraliAct4Green**, programul de sustenabilitate al Generali din care face parte Oasi Gregorina, Generali a câștigat pentru prima dată **Compasso d'Oro Internațional**, decernat la Pavilionul Italiei de la **Expo 2025 Osaka**.\n\nProiectul s-a născut în grupul Qubit: cercetarea de piață a Gpf, marca și identitatea vizuală a Carmi e Ubertis și **ecosistemul digital** al The Full Project, pe care l-am dezvoltat eu.\n\nPremiul recunoaște o platformă digitală devenită un spațiu de sensibilizare și implicare pentru un viitor mai sustenabil și mai incluziv. În spate sunt alegeri precise:","Decernarea premiului la Osaka; pe ecran, printre numele proiectului, **și al meu**. Sursa: comunicatul de presă Generali","**accesibilitate** gândită de la început, nu adăugată la final;\ncod și conținut optimizate ca să consume mai puțin, și **dark mode** pentru a reduce și mai mult consumul;\ndatele de la **senzorii** instalați în zonele naturale, pentru a urmări proiectele de sustenabilitate.",[],[764],{"directus_files_id":765,"sort":4},"55b54208-d467-4fdf-8885-81043afc3506",{"id":767,"collection":564,"sort":245,"item":768},93,{"id":342,"engines":57,"translations":769,"images":797},[770,779,788],{"id":771,"block_gallery_id":342,"languages_code":20,"label":772,"title":773,"text":774,"captions":775,"items":132,"localized_images":776},49,"infrastruttura","20 server, un solo metodo","Venti server, tutti droplet su **DigitalOcean**: 16 di produzione, di solito uno per azienda con dentro tutte le sue applicazioni, e 4 di staging condivisi tra i progetti. Configurazione e deploy sono passati prima da **Laravel Forge** e poi, del tutto, da **Cleavr**: nessun server configurato a mano, ognuno costruito allo stesso modo.","I server: GitHub, Cleavr che li configura e pubblica, i 20 droplet, i backup e il monitoraggio",[777],{"directus_files_id":778,"sort":4},"6e9382b9-0049-4271-8d3e-08a5e903fc92",{"id":780,"block_gallery_id":342,"languages_code":26,"label":781,"title":782,"text":783,"captions":784,"items":132,"localized_images":785},50,"infrastructure","20 servers, one method","Twenty servers, all droplets on **DigitalOcean**: 16 in production, usually one per company with all its applications inside, and 4 for staging shared between projects. Configuration and deploys went first through **Laravel Forge** and then entirely through **Cleavr**: no server set up by hand, each one built the same way.","The servers: GitHub, Cleavr configuring and publishing to them, the 20 droplets, backups and monitoring",[786],{"directus_files_id":787,"sort":4},"63aa9705-d240-4a52-b7d6-1cc6322e0720",{"id":789,"block_gallery_id":342,"languages_code":32,"label":790,"title":791,"text":792,"captions":793,"items":132,"localized_images":794},51,"infrastructură","20 de servere, o singură metodă","Douăzeci de servere, toate droplet-uri pe **DigitalOcean**: 16 de producție, de obicei unul pe firmă, cu toate aplicațiile ei, și 4 de staging comune proiectelor. Configurarea și deploy-ul au trecut întâi prin **Laravel Forge** și apoi, complet, prin **Cleavr**: niciun server configurat de mână, fiecare construit la fel.","Serverele: GitHub, Cleavr care le configurează și publică pe ele, cele 20 de droplet-uri, backup-ul și monitorizarea",[795],{"directus_files_id":796,"sort":4},"e71c9a98-2748-4ea3-94aa-5c8406591d47",[],{"id":616,"collection":564,"sort":259,"item":799},{"id":351,"engines":57,"translations":800,"images":829},[801,811,820],{"id":802,"block_gallery_id":351,"languages_code":20,"label":803,"title":804,"text":805,"captions":806,"items":807,"localized_images":808},52,"pipeline","Dal push alla produzione","Si lavora sul branch dev, che non va online. Ogni rilascio è una versione creata con **release-it**: un tag pre-release sul branch staging, un tag release su main. Cleavr è in ascolto su questi due branch e, quando arriva il push con il tag, avvia la CI, builda la release e la pubblica sul droplet di staging o su quello di produzione, senza downtime. Ogni giorno Cleavr salva database e file dei siti in produzione su **DigitalOcean Spaces**, e **Sentry** controlla che siano raggiungibili.","Il percorso di un rilascio, dal branch al droplet","Ogni rilascio è una versione con il suo tag: è il tag ad avviare il deploy, niente FTP e niente passaggi a mano.\nIl branch decide dove va: dev per lavorare, staging per il server di prova, main per la produzione.\nOgni progetto ha il suo ambiente di prova, su un sottodominio dell'agenzia, dove le modifiche si vedono prima di andare online.\nScript per portare schema del CMS, file caricati e database tra il computer, la prova e la produzione: si lavora sempre su dati veri.\nDeploy senza interruzioni: il sito resta online mentre si aggiorna.\n**Backup** ogni giorno di database e file di tutti i siti in produzione, su DigitalOcean Spaces.\n**Monitoraggio** con Sentry: se un sito non risponde, arriva subito un'email.\nDNS, certificati SSL ed email: tutto seguito da me.",[809],{"directus_files_id":810,"sort":4},"94d7d3c1-d2aa-4978-844c-6f21d0aab3ed",{"id":812,"block_gallery_id":351,"languages_code":26,"label":803,"title":813,"text":814,"captions":815,"items":816,"localized_images":817},53,"From push to production","Work happens on the dev branch, which never goes online. Every release is a version created with **release-it**: a pre-release tag on the staging branch, a release tag on main. Cleavr listens to these two branches and, when the tagged push arrives, starts the CI, builds the release and publishes it to the staging or the production droplet, with zero downtime. Every day Cleavr backs up the database and files of the production sites to **DigitalOcean Spaces**, and **Sentry** checks that they can be reached.","The path of a release, from the branch to the droplet","Every release is a version with its own tag: the tag starts the deploy, no FTP and no manual steps.\nThe branch decides where it goes: dev to work, staging for the test server, main for production.\nEvery project has its own test environment, on an agency subdomain, where changes can be seen before they go live.\nScripts to move the CMS schema, uploaded files and database between my computer, testing and production: work always happens on real data.\nZero-downtime deploys: the site stays online while it updates.\nDaily **backups** of the database and files of every production site, to DigitalOcean Spaces.\n**Monitoring** with Sentry: if a site doesn't respond, an email arrives right away.\nDNS, SSL certificates and email: all handled by me.",[818],{"directus_files_id":819,"sort":4},"0e6a7e8a-9fd8-4533-8dbf-e7a836606bc1",{"id":821,"block_gallery_id":351,"languages_code":32,"label":803,"title":822,"text":823,"captions":824,"items":825,"localized_images":826},54,"De la push la producție","Se lucrează pe branch-ul dev, care nu ajunge online. Fiecare lansare este o versiune creată cu **release-it**: un tag pre-release pe branch-ul staging, un tag release pe main. Cleavr ascultă aceste două branch-uri și, când sosește push-ul cu tag, pornește CI-ul, face build-ul lansării și o publică pe droplet-ul de staging sau pe cel de producție, fără downtime. În fiecare zi Cleavr salvează baza de date și fișierele site-urilor din producție pe **DigitalOcean Spaces**, iar **Sentry** verifică dacă sunt accesibile.","Drumul unei lansări, de la branch la droplet","Fiecare lansare este o versiune cu tag-ul ei: tag-ul pornește deploy-ul, fără FTP și fără pași manuali.\nBranch-ul decide unde ajunge: dev pentru lucru, staging pentru serverul de test, main pentru producție.\nFiecare proiect are mediul lui de test, pe un subdomeniu al agenției, unde modificările se văd înainte de a ajunge online.\nScripturi care mută schema CMS-ului, fișierele încărcate și baza de date între calculator, test și producție: se lucrează mereu pe date reale.\nDeploy fără întreruperi: site-ul rămâne online cât se actualizează.\n**Backup** zilnic al bazei de date și al fișierelor tuturor site-urilor din producție, pe DigitalOcean Spaces.\n**Monitorizare** cu Sentry: dacă un site nu răspunde, vine imediat un e-mail.\nDNS, certificate SSL și email: toate gestionate de mine.",[827],{"directus_files_id":828,"sort":4},"b3452317-d754-4cf3-a3b0-b814794e1c60",[],{"id":621,"collection":611,"sort":269,"item":831},{"id":545,"engines":57,"translations":832},[833,837,841],{"id":548,"block_list_id":545,"languages_code":20,"label":834,"title":835,"items":836},"risultati","Un'agenzia autonoma","Siti creati e pubblicati più velocemente e con più qualità.\nNessun disservizio.\nCosti dei server prevedibili.\nNessuna dipendenza da aziende esterne: dall'idea allo sviluppo alla pubblicazione, tutto interno.\nPiù progetti gestiti insieme, e sempre più complessi.",{"id":553,"block_list_id":545,"languages_code":26,"label":838,"title":839,"items":840},"results","A self-sufficient agency","Sites built and published faster and with higher quality.\nNo outages.\nPredictable server costs.\nNo reliance on outside companies: from idea to development to launch, all in-house.\nMore projects handled at once, and increasingly complex ones.",{"id":558,"block_list_id":545,"languages_code":32,"label":842,"title":843,"items":844},"rezultate","O agenție autonomă","Site-uri create și publicate mai repede și cu o calitate mai bună.\nNicio întrerupere a serviciului.\nCosturi previzibile pentru servere.\nNicio dependență de firme externe: de la idee la dezvoltare și publicare, totul intern.\nMai multe proiecte gestionate în paralel, tot mai complexe.",{"id":626,"collection":215,"sort":284,"item":846},{"id":359,"engines":217,"variant":847,"translations":848},"split",[849,853,857],{"id":850,"block_cta_id":359,"languages_code":20,"label":851,"title":852,"title_accent":132,"text":132},55,"\u002F\u002F prossimo passo","Hai un progetto simile in mente?",{"id":854,"block_cta_id":359,"languages_code":26,"label":855,"title":856,"title_accent":132,"text":132},56,"\u002F\u002F next step","Got a similar project in mind?",{"id":858,"block_cta_id":359,"languages_code":32,"label":859,"title":860,"title_accent":132,"text":132},57,"\u002F\u002F pasul următor","Ai un proiect asemănător în minte?",1792388664946]