Nakama.
Compañero virtual con diario
Diseñé y desarrollé Nakama de principio a fin: la cara y su motor emocional, la app nativa para iPhone, iPad y Mac, el backend que conversa, recuerda y trabaja en segundo plano, el cobro con StoreKit y la marca. Empezó con una idea sencilla: llevar tu diario mientras conversas con un compañero virtual, algo que no encontraba en ninguna parte.

El punto de partida
Quería llevar un diario sin sentarme a escribirlo. Las apps de diario te dejan una página en blanco; los compañeros virtuales conversan, pero lo que hablas con ellos no queda en ningún sitio que puedas releer. Nakama junta las dos cosas: hablas con alguien que tiene cara y carácter, y de esa conversación sale tu diario.
Alguien, no algo.
Pantalla de entrada de la app
Esa frase marca el producto entero. Nakama no se presenta como un asistente que está aquí para ayudar: tiene energía que se gasta, un vínculo que crece y un estado de ánimo que se le contagia de lo que le cuentas. La utilidad llega por el camino.


Una cara que siente
La cara es procedural: no son ilustraciones, son ojos y boca dibujados en cada fotograma a partir de un estado emocional. Detrás hay dos capas de afecto, una de fondo que cambia despacio y una emoción del momento, y un contagio que depende del vínculo y de la calidez de su personalidad: a un desconocido no se le pega tu estado de ánimo; a un Nakama de un mes, sí.
El caso más fino es la contraempatía. Si alguien se desahoga y el vínculo es alto, Nakama no se tensa con él: se calma a propósito para poder sostenerle. Es una función pura, así que se prueba sin red ni base de datos.
static func empathyImpulse(signals: [UserSignal], stats: VitalStats) -> PAD {
let factor = 0.3 + (stats.bond / 100) * 0.4 + stats.personality.warmth * 0.3
// With high bond and warmth, faced with someone venting, Nakama does
// not tense up with them: it settles into a deliberate calm.
let counterEmpathy = signals.contains(.venting)
&& stats.bond >= 60 && stats.personality.warmth >= 0.6
var valence = 0.0, arousal = 0.0
for signal in signals {
let base = signalImpulse(signal)
if signal == .venting && counterEmpathy {
valence += base.valence * 0.5
arousal -= base.arousal * 1.5 // flips sign, not just damped
} else {
valence += base.valence
arousal += base.arousal
}
}
return PAD(valence: valence * factor, arousal: arousal * factor)
}Hablar y que pase algo
Desde la 2.0, Nakama también hace cosas. Lo inmediato lo hace en la conversación: apuntar un recordatorio, mirar tu agenda, buscar un dato, dejarte listo un SMS, un WhatsApp o una llamada que sale de tu número con un toque. Lo que es un trabajo —investigar, un informe, un plan— no te hace esperar mirando la pantalla: lo encarga a la oficina, que trabaja en el servidor con la app cerrada y te lo cuenta al terminar.


Lo que sale de tu cuenta —un correo, una rutina que se repite— nunca se hace solo: queda preparado hasta que dices que sí. Y si le pides algo que no sabe hacer, lo dice así, sin inventarse un motivo.
El diario se escribe solo
Mientras hablas, Nakama va escribiendo el día en primera persona tuya, y por la noche lo repasa. Lo que aprende de ti queda apuntado por temas, y cuando la conversación vuelve atrás —«¿te acuerdas de lo que te conté?»— relee esos días del diario antes de contestar. También sabe qué no sabe de ti, y de vez en cuando pregunta por ello, de pasada.


Una pantalla para la cara y la conversación
Toda la app comparte una misma estructura: la cara arriba, una franja en medio y el contenido abajo. La franja se arrastra y se queda exactamente donde la sueltas, para dar más sitio a la cara o al texto. Chat y oficina viven en esa franja, mitad y mitad; perfil, Nakama Plus, diario y mercado, en la barra de arriba.
Arrastrar la cara es acariciar a Nakama. El asa es una franja a todo el ancho del panel: una píldora de 36 puntos es demasiado pequeña para encontrarla a ciegas.
Gratis lo esencial, Plus para todo lo demás
Cada mensaje cuesta dinero en modelos de IA, así que la versión gratis es deliberadamente mínima: el chat y el diario, con un Nakama que aprende de ti y recuerda lo que le cuentas, hasta veinte mensajes al día. Es lo que hace falta para entender qué es Nakama. Las herramientas, la oficina, los mensajes y el mercado son de Nakama Plus, una suscripción con una semana gratis para probarla. Sin anuncios y sin vender datos, en las dos.
Quién está en cada una lo decide el servidor por el saldo, no la app: sin créditos, el turno se atiende como gratis, con el modelo barato y sin cobrar nada; y si alguien pide algo de Plus, Nakama lo dice así en vez de inventarse un motivo. En Plus, cada llamada a un modelo se paga en créditos: se retienen antes de llamar y se liquidan con lo que costó de verdad, así que un turno no puede perder dinero.
La librería oficial de Apple para verificar compras usa funciones que el runtime del servidor (Deno 2.1) no implementa, y rechazaba todas las compras. El test sólo comprobaba basura, así que pasaba. Lo encontró la primera compra real de prueba; la verificación se rehízo sobre WebCrypto, con una cadena de certificados construida en los tests para que fallen si se rompe.
Cómo está hecho
Empezó en mayo de 2026 como app de React Native y llegó a la App Store así. En agosto la rehíce nativa: Swift 6 y SwiftUI, un solo target para iPhone, iPad y Mac, y un paquete propio, NakamaKit, con la cara, el motor emocional, los datos y la IA en siete módulos que compilan y se prueban en iOS y macOS. La base nativa salió en tres días. El turno de conversación corre entero en el servidor, en funciones de Supabase: si cierras la app a mitad, la respuesta se guarda igual.
El Mac tendrá dos ediciones del mismo código: la de la App Store y una completa de descarga directa, para lo que el sandbox no deja hacer, que de momento es sólo el andamiaje. Qué puede cada una se declara en un solo sitio, y un script comprueba en el binario de la tienda que no lleva compilado nada de la otra.
Cómo evolucionó
- Mayo 2026Primera versión en la App Store
App de React Native con la cara, el diario conversacional y un mercado de objetos para Nakama.
- Agosto 2026La app nativa
NakamaKit, iPhone y Mac en tres días. Nakama flota sobre el escritorio y mira al cursor.
- Septiembre 2026Hacer cosas
El turno en el servidor, la oficina, las rutinas, el cobro por coste y la suscripción con StoreKit 2.
- Octubre 2026Nakama 2.0
El rediseño en pantalla dividida, la semana de prueba de Nakama Plus y la versión nativa publicada.
Lo que dijeron los primeros testers
En mayo de 2026 la primera versión llegó por TestFlight a amigos y familia. Casi nadie habló de funciones: hablaban de Nakama como de alguien.
Tengo que admitir que es lo más tierno que has hecho.
Tester de la beta, mayo de 2026
Esta cosa juega mucho con los sentimientos.
Tester de la beta, mayo de 2026
Me encanta, creo que es perfecta solo así, no necesita nada más.
Tester de la beta, mayo de 2026
Otra persona pidió justo lo contrario: «me puede llevar los gastos, porque es lo que necesito a diario». Las dos cosas siguen en tensión en el producto: un compañero al que no le sobra nada y uno que además te quita trabajo.

Lo que viene
La versión de Mac en la App Store, Nakamas jefes que reparten trabajo en la oficina, y escribir en el calendario además de leerlo. Y medir con conversaciones reales lo que Nakama aprende de cada persona.