Koder — el editor que vive donde vive el código

koder — el editor que vive donde vive el código

Hay una premisa incómoda debajo de casi toda la industria del software: si querés trabajar en serio, necesitás la herramienta correcta. Terminal, laptop, un entorno con permisos de raíz. El resto son dispositivos de consumo — se supone que ahí mirás, no que hacés.

No estuve de acuerdo. O mejor: no tuve el lujo de estar de acuerdo. Hosting compartido sin SSH, un iPad sin terminal, clientes FTP que convierten un typo en un ritual de cinco pasos — descargar, editar, subir, refrescar, rezar. La restricción no se iba a ir. Así que dejé de tratarla como un obstáculo y empecé a tratarla como el brief.

La idea, una vez que la dejé de pelear, era casi obvia: si el código vive en el servidor, que el editor viva ahí también. No hace falta mover el trabajo hacia un dispositivo "serio" — hace falta que la edición vuelva a ser local, solo que local a la máquina que sirve el archivo, no a la que sostiene el teclado.

Así nació koder: dos archivos PHP de backend, un JS y un CSS de frontend. Sin build step, sin framework, sin node_modules. Abrís una URL, escribís una contraseña, y estás editando el sitio parado arriba de él — desde el celular, desde una tablet, desde una laptop prestada.

Tiene árbol de archivos con múltiples raíces, dos paneles de edición con CodeMirror, pestañas que sobreviven al reload, búsqueda recursiva, una papelera que recuerda de dónde vino cada cosa, preview en vivo, exportación a zip, siete temas gráficos — y una serie de detalles táctiles que nadie más se molesta en resolver: menús contextuales de long-press, scroll sin inercia porque la inercia nativa pelea con el render virtualizado de CodeMirror, un toolbar flotante que persigue el teclado en pantalla en vez de que el teclado lo tape.

Una cosa que quiero remarcar, porque es la parte que más me importa: koder tiene un endpoint, collect.php, que concatena todo el proyecto en un solo project.txt pensado para pegarse en un LLM. Así se construyó, en gran parte, el editor mismo — la herramienta se usó para completarse a sí misma. Hay algo ahí que me interesa más que lo técnico: un instrumento da forma a la mano que lo usa. La mayoría del software te pide que vos te adaptes — a su flujo, a su hardware, a su modelo de negocio — y después de un tiempo dejás de notar que la forma de tu trabajo la está decidiendo otro. Construir tu propia herramienta, aunque sea cruda, es una manera de recuperar esa decisión.

Dicho esto — y esto lo digo sin vueltas porque prefiero eso a que alguien se entere después: koder es, en esencia, una shell remota con una cara más linda. Escribe archivos arbitrarios en el hosting. Eso, en PHP, es ejecución de código arbitrario. Lo único entre internet y ese poder es una contraseña. Hay hardening real — hash con password_hash(), backoff exponencial por IP, cookies HttpOnly/Secure, confinamiento de paths con realpath(), anti-CSRF — pero no hay 2FA, no hay auditoría, y el .htaccess que protege todo esto es específico de Apache. Si lo vas a desplegar, hacelo consciente de ese trade-off, no a pesar de él.

Es chico a propósito — unas 2.500 líneas en total. Lo suficientemente chico como para que una persona lo tenga entero en la cabeza, que es la única clase de software que un individuo puede realmente poseer.

Código y documentación completa acá

Back Next Let's talk