<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Neon on Christian Martínez De La Rosa</title><link>https://christt105.github.io/es/tags/neon/</link><description>Recent content in Neon on Christian Martínez De La Rosa</description><generator>Hugo -- gohugo.io</generator><language>es</language><lastBuildDate>Tue, 18 Aug 2026 00:00:00 +0200</lastBuildDate><atom:link href="https://christt105.github.io/es/tags/neon/index.xml" rel="self" type="application/rss+xml"/><item><title>Cinepillos</title><link>https://christt105.github.io/es/blog/cinepillos/</link><pubDate>Tue, 18 Aug 2026 00:00:00 +0200</pubDate><guid>https://christt105.github.io/es/blog/cinepillos/</guid><enclosure url="https://christt105.github.io/blog/cinepillos/cover.png" length="654947" type="image/png"/><description>&lt;p&gt;¡Hola de nuevo!&lt;/p&gt;&#10;&lt;p&gt;Sigo acabando los proyectos que tengo empezados, y hoy le toca a Cinepillos. Lo empecé hace ya unos meses, allá por enero, como &amp;ldquo;Club de Cine&amp;rdquo;, una web para llevar un tablero de propuestas de películas con un grupo de amigos, programar una sesión y votar cuál de las propuestas se ve. Sinceramente, nunca he llegado a necesitarlo de verdad, difícilmente veo yo películas, como para verlas con otros, pero me hacía gracia tener un sitio para eso. Dudo que lo llegue a usar nunca en serio, pero bueno, a ver si le sirve a alguien.&lt;/p&gt;&#10;&lt;h2 id="de-dónde-viene-el-nombre"&gt;De dónde viene el nombre&#10;&lt;/h2&gt;&lt;p&gt;Mi perro tiene un muñeco al que llamamos &amp;ldquo;zorropillo&amp;rdquo;, y de juntar eso con &amp;ldquo;cine&amp;rdquo; salió Cinepillos. Así que el rebrand de &amp;ldquo;Club de Cine&amp;rdquo; no tiene mucha más ciencia que esa.&lt;/p&gt;&#10;&lt;h2 id="de-autoalojado-a-vercel-y-neon"&gt;De autoalojado a Vercel y Neon&#10;&lt;/h2&gt;&lt;p&gt;Era la única web que tenía autoalojada en mi mini PC de todos mis proyectos, mediante túneles de Cloudflare, y esta vez quería probar alternativas en vez de meterla en mi servidor, que te empieza a ahogar. Así que decidí montarla sobre &lt;a class="link" href="https://vercel.com" target="_blank" rel="noopener"&#10; &gt;Vercel&lt;/a&gt; para el despliegue y &lt;a class="link" href="https://neon.tech" target="_blank" rel="noopener"&#10; &gt;Neon&lt;/a&gt; como Postgres gestionado. Nada en el mini PC, nada de discos que mantener, cada push a la rama principal se despliega solo. La verdad que ambas plataformas ofrecen unos límites gratuitos muy anchos, de sobra para este proyecto.&lt;/p&gt;&#10;&lt;p&gt;Eso sí, para quien prefiera tenerlo en su propio servidor, sigue siendo perfectamente autoalojable con Docker Compose, luego vamos a eso.&lt;/p&gt;&#10;&lt;h2 id="sobre-monetizarla"&gt;Sobre monetizarla&#10;&lt;/h2&gt;&lt;p&gt;Le he dado vueltas a intentar sacar algo de dinero con este proyecto, por aprovechar un poco el tiempo que le dedico a todo esto, tampoco espero hacerme turbomillonario. Pero al final lo descarté. Ni la idea de monetización que tenía en la cabeza era buena, ni me compensaba meterme en líos con las condiciones de uso de TMDB y TVDB, las dos bases de datos de las que tira la web, que no permiten un uso comercial así como así. Así que Cinepillos se queda gratis y de código abierto, como el resto de mis proyectos, y yo: pobre. Me falta mentalidad de tiburón. Viva el open source.&lt;/p&gt;&#10;&lt;h2 id="cómo-funciona"&gt;Cómo funciona&#10;&lt;/h2&gt;&lt;p&gt;La idea es simple. Un grupo lleva un tablero compartido de propuestas de películas, cualquier miembro puede añadir una buscándola directamente en la web. Cuando hay ganas de quedar, se programa una sesión con fecha y hora, se abre la votación entre las propuestas y cada uno vota la que quiere ver. Cuando se cierra la votación, gana la más votada y queda registrada como la sesión de ese día.&lt;/p&gt;&#10;&lt;p&gt;Una misma instancia puede tener varios clubs a la vez y cada uno es completamente privado, nadie de un club ve nada de otro. El login es con Google, y en &lt;code&gt;/settings&lt;/code&gt; cada uno puede elegirse un avatar sacado de un póster de TMDB o de una foto de personaje de TVDB, así que hasta el avatar tira de las mismas bases de datos que el resto de la web.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="Página principal con la próxima sesión y las propuestas del club" class="gallery-image" data-flex-basis="448px" data-flex-grow="186" height="900" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://christt105.github.io/blog/cinepillos/home.png" srcset="https://christt105.github.io/blog/cinepillos/home_hu_58d35ec3c33b336f.png 800w, https://christt105.github.io/blog/cinepillos/home_hu_dac0350349017f24.png 1600w, https://christt105.github.io/blog/cinepillos/home.png 1680w" width="1680"&gt;&#10;&lt;img alt="Buscador de películas tirando de TMDB, con filtros por género" class="gallery-image" data-flex-basis="384px" data-flex-grow="160" height="900" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://christt105.github.io/blog/cinepillos/search.png" srcset="https://christt105.github.io/blog/cinepillos/search_hu_62a7b31bab4821ed.png 800w, https://christt105.github.io/blog/cinepillos/search.png 1440w" width="1440"&gt;&lt;/p&gt;&#10;&lt;h2 id="trabajando-con-la-ia"&gt;Trabajando con la IA&#10;&lt;/h2&gt;&lt;p&gt;Con Claude he seguido el mismo flujo que en otros proyectos, pero esta vez con un añadido que me ha gustado bastante. Cada vez que abro una PR, Vercel despliega una preview y Neon le clona una copia de la base de datos de producción para esa preview. Así las tareas quedan bien contenidas: le pido a Claude una tarea concreta, la pushea a GitHub, y cuando termina ya tengo una preview funcionando con datos reales para probar el cambio, echarle un ojo al código y, si todo va bien, mergear. Sin tener que montar nada a mano ni preocuparme de romper producción mientras pruebo.&lt;/p&gt;&#10;&lt;h2 id="código-abierto-y-gratis"&gt;Código abierto y gratis&#10;&lt;/h2&gt;&lt;p&gt;Como siempre, todo el código está en GitHub para quien quiera usarlo, tocarlo o mejorarlo. Cinepillos es gratis y lo tenéis ya en &lt;a class="link" href="https://cinepillos.vercel.app" target="_blank" rel="noopener"&#10; &gt;cinepillos.vercel.app&lt;/a&gt;, el login es solo con Google porque era lo más simple para mí, pero al ser de código abierto cualquiera puede levantar su propia instancia con Docker Compose y sus propias claves de TMDB y TVDB si le encaja mejor.&lt;/p&gt;&#10;&lt;a class="github-repo-card" href="https://github.com/christt105/cinepillos" target="_blank" rel="noopener"&gt;&#10; &lt;img src="https://avatars.githubusercontent.com/u/36189169?v=4" alt="christt105 avatar" class="repo-avatar"&gt;&#10; &lt;h3&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-github" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"&gt;&#10; &lt;path stroke="none" d="M0 0h24v24H0z" fill="none"/&gt;&#10; &lt;path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5" /&gt;&#10;&lt;/svg&gt;&#10;&#10;&#10; christt105/cinepillos&lt;/h3&gt;&#10; &lt;p&gt;&lt;/p&gt;&#10; &lt;div class="repo-stats"&gt;&#10; &lt;span&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon icon-tabler icons-tabler-filled icon-tabler-star"&gt;&lt;path stroke="none" d="M0 0h24v24H0z" fill="none"/&gt;&lt;path d="M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z" /&gt;&lt;/svg&gt; 0&lt;/span&gt;&#10; &lt;span&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-git-fork"&gt;&lt;path stroke="none" d="M0 0h24v24H0z" fill="none"/&gt;&lt;path d="M10 18a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /&gt;&lt;path d="M5 6a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /&gt;&lt;path d="M15 6a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /&gt;&lt;path d="M7 8v2a2 2 0 0 0 2 2h6a2 2 0 0 0 2 -2v-2" /&gt;&lt;path d="M12 12l0 4" /&gt;&lt;/svg&gt; 0&lt;/span&gt;&#10; &lt;span&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-calendar-event"&gt;&lt;path stroke="none" d="M0 0h24v24H0z" fill="none"/&gt;&lt;path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12" /&gt;&lt;path d="M16 3l0 4" /&gt;&lt;path d="M8 3l0 4" /&gt;&lt;path d="M4 11l16 0" /&gt;&lt;path d="M8 15h2v2h-2l0 -2" /&gt;&lt;/svg&gt; 2026-08-18&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10;&lt;p&gt;Y hasta aquí el post de hoy. Si probáis Cinepillos o el código, ya sabéis dónde dejarme un comentario.&lt;/p&gt;&#10;&lt;p&gt;¡Hasta la próxima!&lt;/p&gt;&#10;</description></item></channel></rss>