La trucada que ho va canviar tot
Era un dimarts de gener quan en Pau em va trucar. Artista digital, amic de fa anys, i amb aquella veu de "tinc una proposta interessant". La empresa a on treballa ell necessitava una web corporativa i la persona que ho havia de fer s'havia negat. "Ho faries tu?"
Acabava de tancar les modificacions de la meva web personal. Tenia temps. Tenia ganes. I, seré honest, feia temps que no feia cap projecte extern i em feia il·lusió tornar-hi.
"Sí", vaig dir. Així de simple. Sense preguntes.
Ara, set mesos després, sé que aquesta resposta em va costar 40 hores extres de feina i un bon ensurt amb el hosting.
El briefing que semblava senzill
Els requeriments eren clars: web corporativa amb "home", pàgina d'empresa, contacte i un catàleg de productes organitzat per categories. Res de l'altre món. També volien un back office perquè els empleats poguessin gestionar tot el contingut.
Mentre anàvem parlant, ja anava calculant mentalment la feina que podria comportar. Amb en Pau fent el disseny, jo em podia centrar només en el desenvolupament. Perfecte.
Però aquí va venir la primera decisió important: com enfocar tècnicament el projecte.
L'elecció del stack
WordPress o similars era l'opció òbvia. Però jo volia un repte. No havia tocat un CMS tradicional en anys i francament, no em feia gràcia tornar-hi. Al mateix temps, tampoc volia reinventar la roda construint un CMS des de zero.
La solució: Headless CMS.
Després d'investigar diverses opcions, vaig decidir-me per Strapi. Era simple, fiable, i no volia sorpreses desagradables en un projecte professional on anava sol. Per al frontend, Nextjs era la meva elecció natural. Perfecte per webs híbrides on necessites pàgines estàtiques per SEO i dinàmiques per al catàleg.
Estava motivat. El stack estava decidit i sabia que podia tirar el projecte endavant.
El pressupost que va semblar realista
Amb el disseny en mans d'en Pau, vaig poder centrar-me en calcular hores de desenvolupament:
- Backend amb Strapi: 18 hores (configuració, entitats, permisos, proves)
- Frontend amb NextJS: 37 hores (landing, pàgines, catàleg, filtres)
- DevOps i deployment: 16 hores (hosting, tests, polits finals)
Total: 71 hores.
Ara venia la part complicada: què cobrar per hora? Vaig demanar a la IA que em fes un estudi de mercat. 400 webs analitzades després, el resultat era clar: freelancers seniors cobraven entre 35-50€/hora.
Però jo feia temps que no treballava per tercers. Síndrome de l'impostor? Potser. El cas és que vaig decidir posar-me a 20€/hora (el preu/hora dels juniors).
1.420€ + 15% d'imprevistos ≈ 1.650€ arrodonits
El pressupost va ser acceptat i vaig començar el desenvolupament el 15 d'abril.
Quan la realitat et dona una bufetada
Les primeres setmanes van ser fantàstiques. El backend amb Strapi funcionava de meravella. El frontend avançava segons el previst. En Pau i jo treballàvem en sintonia perfecta.
Fins que va arribar el moment de penjar la web.
"Tenim hosting contractat", m'havien dit al començament. Jo, innocentment, vaig assumir que seria compatible amb el que estava construint.
Error garrafal.
El seu hosting estava muntat per WordPress i PrestaShop - el típic hosting compartit que només entén de CMS tradicionals. No hi podia deployar aplicacions NodeJS, ni modificar proxies, ni posar crons, ni accedir als logs. Si tenia accés a la màquina, estava completament capada.
Per canviar a un VPS normal que suportés el meu stack amb aquest proveïdor: 500€ més l'any. Semblava mentida.
Vaig passar dues setmanes obrint tickets. Cada conversa era més frustrant que l'anterior. Pregunta que feia, pregunta que esquivaven. Era clar que només entenien de WordPress i quan els parlava de NodeJS posaven cara de no entendre res.
Al final em vaig enfadar. Va ser el moment de canviar de proveïdor.
La migració que no havia previst
La solució va ser migrar tot a Hetzner. Hosting modern, escalable, i molt més barat. Una màquina Linux on tingués control complet per fer les coses bé i sense friccions.
Però quan vaig veure que el client passaria de pagar 350€/any a només 130€, vaig decidir migrar tots els seus serveis. No només per estalviar-los diners, sinó perquè era l'únic camí lògic.
Això va implicar molt més que simplement canviar de servidor:
- Migrar tots els correus corporatius de l'empresa
- Reconfigurar DNS
- Ensenyar als empleats a usar Thunderbird en lloc del webmail que tenien
- Documentar els processos nous
El que havia de ser "penjar la web" es va convertir en una migració completa d'infraestructura.
Cada vespre, després de la feina, em posava amb la migració. Els empleats m'enviaven captures amb dubtes sobre la nova configuració. Vaig fer de tècnic IT sense haver-ho pressupostat. És el que té la passió per la feina, suposo.
Però quan vaig veure l'estalvi final de 220€/any, va valdre la pena tot el mal de cap.
La realitat dels números
Quan vaig tancar el projecte l'1 de juliol, vaig fer recompte d'hores:
71 hores pressupostades → 108.91 hores reals
On vaig fallar:
- Frontend: de 37h a 57h (canvis de disseny sobre la marxa)
- DevOps: de 16h a 39h (la migració no prevista)
- Backend: 18h a 10h (Strapi va ser més ràpid del que pensava)
L'únic que vaig encertar va ser el backend. La resta? Desastre total de pressupost.
Les lliçons que m'han costat cares
Aquesta experiència m'ha ensenyat que el desenvolupament és només una part del projecte. Les preguntes que hauria d'haver fet des del primer dia:
- Quin hosting tenen actualment?
- Quines tecnologies suporta?
- Com tenen configurat el correu corporatiu?
- Qui gestiona domini i DNS?
També vaig aprendre que els canvis de disseny durant el desenvolupament maten qualsevol pressupost. En Pau estava molt involucrat (cosa bona per al resultat final), però cada ajust es convertia en més hores invertides.
Per la propera vegada: disseny aprovat = disseny final. Punt. O trobar alguna estratègia per gestionar millor aquestes modificacions estètiques, ja sigui posant-hi preu específic o establint dates concretes per a canvis dins del pressupost inicial.
El que faré diferent
La web va ser un èxit. El client està content. Però econòmicament? Vaig acabar cobrant molt menys del que hauria tocat per hora i això que ja partia de baix.
Ara sé que:
- Cal fer un descobriment tècnic abans d’acceptar qualsevol projecte.
- Treballar per 20 €/hora és insostenible quan el mercat paga entre 35 i 50 € per un freelance amb experiència.
- El DevOps sempre amaga sorpreses: cal multiplicar qualsevol estimació per 1.5.
- No es pot modificar el disseny un cop acceptat sense revisar l’impacte real en temps i cost.
Però sobretot, que preguntar sobre l'hosting no és paranoia, és professionalitat. Una web que no es pot penjar amb els requisits que té no aporta cap valor.
La propera vegada, la primera pregunta serà: "Explica'm l'infraestructura actual". Pot semblar avorrit, però m'hauria estalviat 20 hores de la meva vida
Què vindrà després
Tot i els mals de cap, aquesta experiència amb en Pau ha estat molt enriquidora. Gestionar un projecte així mentre treballes a jornada completa no és fàcil, però hem creat una bona dinàmica: ell portant la part visual i de marca, jo la tecnològica.
De fet, estem oberts a fer més projectes junts. Si teniu alguna web entre mans, ja sabeu on trobar-nos.
Ara mateix tinc el cap posat en el meu home lab. Aquest mes toca configurar Home Assistant i començar a jugar amb domòtica. Potser sigui el tema del proper post, o potser no. M'agrada el caos.
Ah, i si voleu veure el resultat final de tanta migració: angel-europa.com
Fins la propera!