Sajucat - servicio de análisis de saju creado con un motor propio de calendario manse
Lo hice junto con Claude, casi sin conocimientos previos sobre Myeongrihak (saju palja) ni sobre desarrollo.
Hace como una semana terminé una versión demo y escribí una publicación, pero en comparación con ese momento, ¡mejoré el contenido del análisis a más del doble! (Por los límites bastante duros de Claude, me animé a gastar 100 dólares para subir la calidad...)
Por qué lo hice
Cuando usas apps de saju, normalmente solo te dicen algo como “tu energía es fuerte, así que está bien”, pero no muestran el proceso de cómo llegaron a esa conclusión. Ya sea que la Myeongrihak sea superstición o estadística, pensé que si se mostraba la lógica de evaluación de forma transparente, el saju podría servir como una “herramienta de aprendizaje”.
Cosas que fueron interesantes técnicamente
Implementación propia del calendario manse: probé la librería de npm para manse (@fullstackfamily/manseryeok), pero tenía un margen de error de hasta ~21% en los días límite de los términos solares, así que construí un motor propio de calendario manse basado en datos de KASI (Instituto Coreano de Investigación Astronómica y Espacial). Incluso incluye corrección por tiempo solar verdadero y pasa 43 casos de prueba.
Visualización de hap/chung/hyeong/hae/pa: entre los 8 caracteres del saju existen relaciones de hap (合) / chung (沖) / hyeong (刑) / hae (害) / pa (破), y mostrarlas visualmente resultó más complicado de lo esperado. Si solo se marcaban entre pilares adyacentes, se perdían relaciones no adyacentes como hora-año, así que lo resolví separando cada relación en tarjetas individuales.
Lógica del horóscopo diario: asigna una puntuación integral a partir de las relaciones de conflicto y combinación entre el iljin (日辰) de hoy y los 4 pilares del saju del usuario, además de las doce etapas de fortuna y las diez deidades celestiales. También hice un script que valida automáticamente 480 combinaciones para evitar que las guías de buen/mal augurio se contradigan entre sí.
Resolución de alucinaciones de DeepSeek con el ganji: uso la API de DeepSeek para el chat de consulta de saju, pero alucina diciendo que “2026 es el año de Eulmyo” (respuesta correcta: Byeongo). En el prompt incluí el método de cálculo del ganji y ejemplos para inducirlo a hacer el cálculo inverso.
Stack
- Frontend: Vite + React (una sola
App.jsxde ~4300 líneas...) - Backend: Node.js + Express + SQLite
- AI: DeepSeek V3 (chat), Gemini Flash (análisis profundo)
- Calendario manse:
saju-core.jspropio + datos de términos solares de KASI - Renderizado de hanja: HanziWriter (hanja con estilo caligráfico)
- Servidor: Contabo VPS
Estructura
En la pestaña gratuita (personaje de gato) muestro el análisis básico de saju, y en la pestaña de pago (personaje de Barimansin) ofrezco una interpretación más profunda. Por ahora sí las separé en gratis y de pago, pero me da pena cobrar por una calidad así, ¡así que todo es gratis! También puse por varias partes tarjetas explicativas donde un gato va guiando paso a paso para que incluso quien no conozca bien el saju pueda ir aprendiendo.
¡Cualquier comentario o feedback me ayudaría muchísimo!
3 comentarios
Es una UI muy buena. Me resulta un poco extraño que el gato me hable en un tono condescendiente, pero de verdad es muy fácil de usar y está muy bien.
¡El diseño también está muy bien y la calidad es alta!
¡Guau, gracias!!