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
Terminal y ediciónTerminal & editing
Warp
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Stack tecnológicoTech stack
Lenguajes Languages
PHP JavaScript Swift Bash HTML5
Plataformas Platforms
Moodle Apache Linux macOS Hugo iCloud
Bases de datos Databases
MySQL PostgreSQL Supabase
Cloud & DevOps
Google Cloud Cloudflare GitHub Actions Git
Edición Editing
Warp Cursor Xcode
Apple
Xcode SwiftUI
APIs
Jitsi Meet YouTube API JWT
IA AI
xAI Gemini