Mi setupMy setup
El hardware, software y servicios que uso a diario como desarrollador. Algunos enlaces son de referido — si los usas me ayudas sin coste adicional para ti.
The hardware, software and services I use daily as a developer. Some links are referrals — using them helps me at no extra cost to you.
Hardware
MacBook Pro M4 PrincipalPrimary
Mi máquina de desarrollo del día a día. El chip M4 maneja sin problema compilaciones de Moodle, Xcode y múltiples entornos simultáneos. La batería aguanta jornadas completas sin enchufar.
My daily development machine. The M4 chip handles Moodle builds, Xcode and multiple simultaneous environments without breaking a sweat. Battery lasts full workdays unplugged.
Mac mini M4 ServidorServer
Servidor de producción siempre encendido. Sirve esta web, el blog, el portal del plugin Jitsi, Moodle y todas las herramientas. Consume menos de 10W en reposo. La mejor relación potencia/consumo que he tenido.
Always-on production server. Serves this website, the blog, the Jitsi plugin portal, Moodle and all the tools. Uses under 10W at idle. Best power-to-performance ratio I've ever had.
macOS IncluidoIncluded
El sistema operativo en ambas máquinas. La integración con el ecosistema Apple, la estabilidad y las herramientas de desarrollo nativas hacen que no me plantee alternativas. Homebrew lo convierte en un entorno de servidor cómodo y potente.
The operating system on both machines. Apple ecosystem integration, stability and native developer tools mean I never consider alternatives. Homebrew turns it into a comfortable and powerful server environment.
Terminal y ediciónTerminal & editing
Warp ReferidoReferral PrincipalPrimary
Donde paso el día: terminal y editor integrado. Ya no abro un IDE “para programar” en el día a día: edito en Warp, corro Grok Build y el terminal de Cursor en pestañas al lado, y reviso diffs y comandos en el mismo sitio. También en SSH: la sesión remota se “warperiza” y sigo editando con el editor de Warp en el Mac mini o en otro host, sin cambiar a vim. Autocompletado, bloques e historial visual. Desde que lo uso no he vuelto al Terminal.app.
Where I spend the day: terminal and built-in editor. I no longer open a full IDE “to code” day to day: I edit in Warp, run Grok Build and the Cursor terminal in tabs beside it, and review diffs and commands in the same place. Also over SSH: the remote session gets Warpified and I keep editing with Warp's editor on the Mac mini or another host, without falling back to vim. Autocomplete, command blocks and visual history. Since I started using it I've never gone back to Terminal.app.
Descargar Warp con mi enlace de referido
Download Warp with my referral link
Xcode GratisFree
Para todo lo nativo de Apple — Swift, SwiftUI, apps iOS y macOS (Cruce, LiftCoach…). Simuladores, firmas y el resto del pipeline de App Store no se improvisan en un terminal.
For all native Apple work — Swift, SwiftUI, iOS and macOS apps (Cruce, LiftCoach…). Simulators, signing and the rest of the App Store pipeline don't improvise in a terminal.
Cursor Terminal y ediciónTerminal & editing
El terminal y el agente de Cursor para editar y dejar trabajo en el repo. Lo uso junto a Warp: aquí el agente toca el código, en Warp reviso comandos y SSH. Misma casa que Origin y que Grok.
Cursor's terminal and agent to edit and hand off work in the repo. I use it alongside Warp: the agent touches the code here, Warp is for commands and SSH. Same house as Origin and Grok.
Navegador y buscadorBrowser & search
Safari GratisFree
Mi navegador principal en Mac y iPhone. Rápido, eficiente en batería y bien integrado con el ecosistema Apple. Chrome solo cuando hacen falta las DevTools de verdad.
My main browser on Mac and iPhone. Fast, battery-efficient and well integrated with the Apple ecosystem. Chrome only when I really need DevTools.
Bing GratisFree ReferidoReferral
Mi buscador por defecto. Sí, Bing. Lo uso porque cada búsqueda acumula puntos canjeables por cosas como tarjetas regalo de Apple, entre otras. Al final un buscador u otro me dan más o menos los mismos resultados, así que ¿por qué no sacarle algo?
My default search engine. Yes, Bing. I use it because every search earns points redeemable for things like Apple gift cards, among others. Honestly one search engine or another gives me pretty much the same results, so why not get something out of it?
Apuntarte a Bing Rewards con mi enlace de referido
Sign up for Bing Rewards with my referral link
Servicios y plataformasServices & platforms
GitHub Pro Pro
Donde vive todo el código — el plugin Jitsi para Moodle, esta web, el blog y repositorios privados. GitHub Pro da repos privados ilimitados y GitHub Actions con más minutos de ejecución.
Where all the code lives — the Jitsi plugin for Moodle, this website, the blog and private repos. GitHub Pro gives unlimited private repos and GitHub Actions with more execution minutes.
Origin (Cursor) BetaBeta
El almacén de código de Cursor. Repos, revisiones y el agente al lado del cambio. Está en beta: le faltan cosas (Actions, por ejemplo) y todavía se apoya en GitHub. No es un reemplazo, es un espejo con el bot sentado al lado.
Cursor's code host. Repos, reviews and the agent next to the change. It is in beta: pieces are missing (Actions, for one) and it still leans on GitHub. Not a replacement — a mirror with the bot sitting beside it.
Cloudflare Plan gratuitoFree plan
DNS, CDN y SSL para todos los dominios. El plan gratuito cubre perfectamente todo lo que necesito. Una de las mejores decisiones de infraestructura que he tomado.
DNS, CDN and SSL for all domains. The free plan covers everything I need perfectly. One of the best infrastructure decisions I've made.
Cloudflare Tunnel GratisFree
Expone el Mac mini a internet de forma segura sin abrir puertos en el router ni tocar el firewall. Toda la parte pública de la web y Moodle pasan por aquí. Zero Trust Network Access sin infraestructura adicional.
Exposes the Mac mini to the internet securely without opening router ports or touching the firewall. All public-facing web and Moodle traffic goes through here. Zero Trust Network Access with no extra infrastructure.
Google Cloud Platform
Para el aprovisionamiento automático de servidores Jitsi Meet del plugin y como destino de los backups diarios (Cloud Storage en Frankfurt, dentro de la UE). Potente, fiable y con una capa gratuita generosa para empezar.
For automatic provisioning of Jitsi Meet servers for the plugin and as the destination for daily backups (Cloud Storage in Frankfurt, within the EU). Powerful, reliable and with a generous free tier to get started.
Supabase
Backend de Cruce (app de proximidad, cruce.sergiocomeron.com): Postgres gestionado, auth, almacenamiento y APIs sin montar yo el servidor de la app. Encaja bien con Swift en iOS y me deja centrarme en producto y privacidad en el dispositivo.
Backend for Cruce (proximity app, cruce.sergiocomeron.com): managed Postgres, auth, storage and APIs without me running the app server. Fits well with Swift on iOS and lets me focus on product and on-device privacy.
Telegram GratisFree
Canal de notificaciones del servidor. Cuando hay una caída, un error de SSL, uso elevado de disco o se ejecuta el backup diario, me llega un aviso al móvil en segundos. Mucho más cómodo que el correo para alertas de sistema.
Server notification channel. When there's a downtime, SSL error, high disk usage or the daily backup runs, I get an alert on my phone within seconds. Much more convenient than email for system alerts.
Stack del servidorServer stack
Homebrew GratisFree
Gestor de paquetes para macOS. Apache, PHP, PostgreSQL, Hugo y prácticamente todo lo que corre en el Mac mini está instalado y actualizado a través de Homebrew. Sí, y también me gusta la cerveza.
Package manager for macOS. Apache, PHP, PostgreSQL, Hugo and virtually everything running on the Mac mini is installed and updated through Homebrew. Yes, and I also like beer.
Node.js + pnpm GratisFree
Runtime de JavaScript para las herramientas de desarrollo: los tests del repo del blog corren con Jest y algunos scripts de build lo necesitan. Versión 22 LTS vía Homebrew, con pnpm como gestor de paquetes.
JavaScript runtime for the development tooling: the blog repo tests run on Jest and some build scripts need it. Version 22 LTS via Homebrew, with pnpm as the package manager.
PostgreSQL GratisFree
Base de datos relacional que usa Moodle, y también el registro de telemetría del plugin de Jitsi. Instalado vía Homebrew y gestionado como servicio del sistema. Los datos de analítica y del portal del plugin viven aquí. Los backups diarios lo incluyen.
Relational database used by Moodle, and also by the Jitsi plugin's telemetry log. Installed via Homebrew and managed as a system service. Analytics and plugin portal data live here. Included in daily backups.
TablePlus
Cliente gráfico para gestionar PostgreSQL. Imprescindible para trabajar con la base de datos de Moodle — explorar tablas, depurar consultas y revisar datos sin tocar la terminal. También lo uso para Moodle y el portal del plugin.
GUI client for managing PostgreSQL. Essential for working with the Moodle database — exploring tables, debugging queries and reviewing data without touching the terminal. Also use it for Moodle and the plugin portal.
Apache + PHP GratisFree
Servidor web que sirve esta web, las herramientas, Moodle y el portal del plugin. PHP para todo lo que requiere lógica de servidor. Configuración por VirtualHosts para cada subdominio.
Web server serving this website, the tools, Moodle and the plugin portal. PHP for everything requiring server-side logic. VirtualHost configuration per subdomain.
Git GratisFree
Control de versiones para todo el código — el plugin Jitsi, esta web, el blog y los repositorios privados. El hook post-commit del blog automatiza la publicación completa. Imprescindible desde el primer día.
Version control for all the code — the Jitsi plugin, this website, the blog and private repos. The blog's post-commit hook automates the full publishing workflow. Essential from day one.
Hugo GratisFree
Generador de sitios estáticos con el que está construido el blog. Velocidad de compilación brutal — genera cientos de páginas en milisegundos. Un git hook lo publica automáticamente con cada commit.
Static site generator used to build the blog. Blazing-fast build speed — generates hundreds of pages in milliseconds. A git hook publishes it automatically on every commit.
Grok Build (xAI)
Agente de código en el terminal (TUI) con el modelo Grok. Con él edito la web, el hub Moodle, Cruce, LiftCoach y los scripts del Mac mini: leer el repo, proponer cambios y aplicarlos con el contexto del proyecto.
Terminal coding agent (TUI) powered by Grok. I use it to edit this site, the Moodle hub, Cruce, LiftCoach and the Mac mini scripts: reading the repo, proposing changes and applying them with project context.
ProductividadProductivity
Apple Notes IncluidoIncluded
Para notas rápidas, procedimientos y referencias. No es la herramienta más potente del mercado, pero es la más sencilla que cumple con el cometido: abre al instante, sincroniza con iCloud y no requiere ninguna configuración.
For quick notes, procedures and references. Not the most powerful tool out there, but the simplest one that gets the job done: opens instantly, syncs with iCloud and requires zero configuration.
Plataformas educativasEducational platforms
Moodle Open source
La plataforma LMS en la que me especializo. Instalación propia en aula.sergiocomeron.com para pruebas y desarrollo. Trabajo con Moodle tanto a nivel de administración y configuración como de desarrollo de plugins.
The LMS platform I specialise in. Own installation at aula.sergiocomeron.com for testing and development. I work with Moodle at both administration and configuration level as well as plugin development.
Plugin Jitsi Meet para Moodle
Jitsi Meet Plugin for Moodle
Open source
Plugin que desarrollé y mantengo para integrar videoconferencias Jitsi Meet en Moodle. Disponible en el directorio oficial de plugins de Moodle con miles de instalaciones activas. Uno de los proyectos de los que más orgulloso estoy.
Plugin I developed and maintain to integrate Jitsi Meet video conferencing into Moodle. Available in the official Moodle plugins directory with thousands of active installations. One of the projects I'm most proud of.
Ver en moodle.org
View on moodle.org
IA local
Ollama GratisFree
Modelos de IA corriendo en el mismo Mac mini que sirve esta web.
mistral:7b para redactar, nomic-embed-text para embeddings y qwen3:4b de reserva para lo que necesita razonar. Se arranca solo mientras genera y se para al terminar: la máquina también sostiene un Moodle y un Jitsi, y no le sobra RAM.AI models running on the same Mac mini that serves this site.
mistral:7b for writing, nomic-embed-text for embeddings and qwen3:4b in reserve for anything needing reasoning. It starts only while generating and stops right after: the machine also runs a Moodle and a Jitsi, and RAM is tight.Embeddings En esta web
Embeddings On this site
El mapa del blog y el «quizá te interese» de cada artículo se calculan con embeddings locales. Se precalculan al publicar y la web solo lee el resultado: en la petición no corre ninguna IA. Un embedding es un vector, así que no puede alucinar ni escribir texto.
The blog map and the "you might also like" on every post are computed with local embeddings. They're precomputed at publish time and the site only reads the result: no AI runs during the request. An embedding is a vector, so it can't hallucinate or write text.
Parte diario 08:00
Daily report 08:00
Cada mañana el modelo local resume cómo ha ido la noche en el servidor y me lo manda por Telegram, y los lunes hace un triaje de los sondeos de la semana. La regla, aprendida a base de fallos: el código es dueño de los hechos y el modelo del criterio — todas las cifras las calcula un programa y el modelo tiene prohibido escribir números.
Every morning the local model summarises how the night went on the server and sends it over Telegram, and on Mondays it triages the week's probes. The rule, learned the hard way: code owns the facts, the model owns the judgement — every figure is computed by a program and the model is forbidden from writing numbers.
Podcast
xAI TTS Por usoPay as you go
Síntesis de voz para los episodios del podcast. Voz Leo en castellano (
es-ES), por párrafos. Antes era ElevenLabs: mi voz clonada (Ep. 21–23) y Guillermo (Ep. 1–20). Cada bloque se valida contra el guión con Whisper: el TTS se salta frases y de oído no se nota.Voice synthesis for podcast episodes. Voice Leo in European Spanish (
es-ES), by paragraph. Previously ElevenLabs: my cloned voice (Ep. 21–23) and Guillermo (Ep. 1–20). Every block is checked against the script with Whisper: TTS engines skip sentences and you won't catch it by ear.Grok GuiónScript
Para escribir el guión de cada episodio: busca el tema, lo expande con contexto y deja el texto listo para sintetizar. Lo que tarda horas a mano tarda minutos. La voz es Leo; el texto lo escribe Grok.
For writing each episode script: researches the topic, expands it with context and leaves the text ready for synthesis. What takes hours by hand takes minutes. The voice is Leo; Grok writes the text.
Stack tecnológicoTech stack
Lenguajes
Languages
Plataformas
Platforms
Bases de datos
Databases
Cloud & DevOps
Edición
Editing
Apple
APIs
IA
AI