[{"id":"1617f170-7e13-4b1c-9c2b-f9ddb31900cf","title":"Lab Core (API central)","slug":"lab-core-node","description_es":"API central y CRUD de proyectos — Node.js + Prisma + JWT. Fuente de este mismo catálogo.","description_en":"Central API and project CRUD — Node.js + Prisma + JWT. Source of this very catalog.","tech_stack":["Node.js","Prisma","PostgreSQL","Express"],"repo_url":"https://github.com/SvarogMyl/lab-core-node","live_url":"https://api.svasoft.cl","docs_url":"https://api.svasoft.cl/api-docs","image_url":null,"status":"PRODUCTION","category":"BACKEND","hosting":"Oracle Cloud","order":9,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"b015981b-3155-4138-9329-27457baec012","title":"Lab Spring","slug":"lab-spring-postgres","description_es":"API REST — Java 21 + Spring Boot + PostgreSQL + JWT.","description_en":"REST API — Java 21 + Spring Boot + PostgreSQL + JWT.","tech_stack":["Java","Spring Boot","PostgreSQL","JWT"],"repo_url":"https://github.com/SvarogMyl/lab-spring-postgres","live_url":"https://spring.svasoft.cl","docs_url":"https://spring.svasoft.cl/swagger-ui/index.html","image_url":null,"status":"PRODUCTION","category":"BACKEND","hosting":"Oracle Cloud","order":10,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"50bf8dd2-cef9-470d-a06d-cb2b2b89bc7d","title":"Lab Auth","slug":"lab-auth-service","description_es":"Servicio de autenticación e identidad — Go. IdP del ecosistema: único que escribe en users/roles, emite JWT HS256 compartido.","description_en":"Authentication and identity service — Go. Ecosystem IdP: sole writer of users/roles, issues shared HS256 JWT.","tech_stack":["Go"],"repo_url":"https://github.com/SvarogMyl/lab-auth-service","live_url":"https://auth.svasoft.cl","docs_url":"https://auth.svasoft.cl/docs","image_url":null,"status":"PRODUCTION","category":"BACKEND","hosting":"Oracle Cloud","order":11,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"dc1e0942-133a-4757-b5e2-19cc7614b76e","title":"Lab Mail","slug":"lab-mail-service","description_es":"Servicio centralizado de emails — FastAPI + RabbitMQ + Brevo, con retry y dead-letter queue.","description_en":"Centralized email service — FastAPI + RabbitMQ + Brevo, with retry and dead-letter queue.","tech_stack":["Python","FastAPI","RabbitMQ"],"repo_url":"https://github.com/SvarogMyl/lab-mail-service","live_url":"https://mail.svasoft.cl","docs_url":"https://mail.svasoft.cl/docs","image_url":null,"status":"PRODUCTION","category":"BACKEND","hosting":"Oracle Cloud","order":12,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"e531a6e9-b290-4479-b660-c58bd457e925","title":"Lab News","slug":"lab-news-service","description_es":"API headless de noticias multi-tenant — Node.js + Prisma + Cloudflare R2. Primer producto SaaS real del ecosistema.","description_en":"Multi-tenant headless news API — Node.js + Prisma + Cloudflare R2. First real SaaS product of the ecosystem.","tech_stack":["Node.js","TypeScript","Prisma","Cloudflare R2"],"repo_url":"https://github.com/SvarogMyl/lab-news-service","live_url":"https://news.svasoft.cl","docs_url":"https://news.svasoft.cl/docs","image_url":null,"status":"PRODUCTION","category":"BACKEND","hosting":"Oracle Cloud","order":13,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"03e41708-5c54-4382-888d-5a97524b31c9","title":"Lab Booking","slug":"lab-booking-service","description_es":"API de agendamiento multi-tenant — recursos reservables, disponibilidad y bloqueos.","description_en":"Multi-tenant booking API — reservable resources, availability and blocked periods.","tech_stack":["Node.js","TypeScript","Prisma","PostgreSQL"],"repo_url":"https://github.com/SvarogMyl/lab-booking-service","live_url":"https://booking.svasoft.cl","docs_url":"https://booking.svasoft.cl/docs","image_url":null,"status":"PRODUCTION","category":"BACKEND","hosting":"Oracle Cloud","order":14,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"03faf521-ad7b-4157-bb87-9f5948d7d634","title":"Lab Claims","slug":"lab-claims-service","description_es":"API de reclamos/consultas multi-tenant — tickets con seguimiento público por número REC-YYYY-NNN.","description_en":"Multi-tenant claims/inquiries API — tickets with public tracking by REC-YYYY-NNN number.","tech_stack":["Node.js","TypeScript","Prisma","PostgreSQL"],"repo_url":"https://github.com/SvarogMyl/lab-claims-service","live_url":"https://claims.svasoft.cl","docs_url":"https://claims.svasoft.cl/docs","image_url":null,"status":"PRODUCTION","category":"BACKEND","hosting":"Oracle Cloud","order":15,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"e52eecee-aafa-475f-9a18-73dcc0f32585","title":"Lab Benefits","slug":"lab-benefits-service","description_es":"Motor de reglas genérico para cálculo y verificación de beneficios/remuneraciones multi-tenant (caso de origen: SISPEL, Sindicato de Supervisores Codelco El Salvador).","description_en":"Generic rules engine for multi-tenant benefits/payroll calculation and verification (origin case: SISPEL, Codelco El Salvador supervisors union).","tech_stack":["Node.js","TypeScript","Prisma","PostgreSQL"],"repo_url":"https://github.com/SvarogMyl/lab-benefits-service","live_url":"https://benefits.svasoft.cl","docs_url":"https://benefits.svasoft.cl/docs","image_url":null,"status":"PRODUCTION","category":"BACKEND","hosting":"Oracle Cloud","order":16,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"aef8b80d-b954-46d5-be88-e3e3900850a7","title":"Lab Data","slug":"lab-data-service","description_es":"Microservicio de conversión Excel → JSON, automatizado vía GitHub Actions.","description_en":"Excel → JSON conversion microservice, automated via GitHub Actions.","tech_stack":["Python","FastAPI","GitHub Actions"],"repo_url":"https://github.com/SvarogMyl/lab-data-service","live_url":null,"docs_url":null,"image_url":null,"status":"PRODUCTION","category":"BACKEND","hosting":"GitHub Actions","order":17,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"e79c2611-f226-4e69-a29b-7bc3119c0254","title":"Svarog Web","slug":"svarog-web","description_es":"Portal comercial del ecosistema — landing, login, dashboard y noticias. Emisor SSO: pasa el JWT a las demás apps.","description_en":"Ecosystem commercial portal — landing, login, dashboard and news. SSO issuer: passes JWT to other apps.","tech_stack":["Next.js","TypeScript","Tailwind","Cloudflare Workers"],"repo_url":"https://github.com/SvarogMyl/svarog-web","live_url":"https://svasoft.cl","docs_url":null,"image_url":null,"status":"PRODUCTION","category":"FRONTEND","hosting":"Cloudflare Workers","order":1,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"6c43f107-32c0-48eb-98c9-1e94adb4021f","title":"Lab Hub (Next.js)","slug":"lab-hub-nextjs","description_es":"Portal central moderno con i18n y Holo Design System.","description_en":"Modern central portal with i18n and Holo Design System.","tech_stack":["Next.js","TypeScript","i18n","Holo Design System"],"repo_url":"https://github.com/SvarogMyl/lab-hub-nextjs","live_url":"https://hub.svasoft.cl","docs_url":null,"image_url":null,"status":"PRODUCTION","category":"FRONTEND","hosting":"Cloudflare Workers","order":2,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"f4870a8b-185e-46b6-b8a9-2844a8bfde7d","title":"Lab Hub (React) — Legacy","slug":"lab-hub-react","description_es":"Portal central legacy en React/Vite. Versión anterior a lab-hub-nextjs, mantenida como referencia histórica del ecosistema.","description_en":"Legacy React/Vite central portal. Predecessor of lab-hub-nextjs, kept as a historical reference of the ecosystem.","tech_stack":["React","Vite","JavaScript"],"repo_url":"https://github.com/SvarogMyl/lab-hub-react","live_url":"https://hub-react.svasoft.cl","docs_url":null,"image_url":null,"status":"PRODUCTION","category":"FRONTEND","hosting":"Cloudflare Pages","order":3,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"b9df7ac4-6a6a-4f91-9fdc-cbe9fd29657d","title":"Lab Store","slug":"lab-frontend-nextjs","description_es":"Panel de administración clásico y catálogo de ítems.","description_en":"Classic admin panel and item catalog.","tech_stack":["Next.js","TypeScript","React"],"repo_url":"https://github.com/SvarogMyl/lab-frontend-nextjs","live_url":"https://store.svasoft.cl","docs_url":null,"image_url":null,"status":"PRODUCTION","category":"FRONTEND","hosting":"Cloudflare Workers","order":4,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"736ee9d5-79fc-4601-ad79-e33153c9ece8","title":"Lab News Admin","slug":"lab-news-admin","description_es":"Dashboard admin para lab-news-service — gestión de contenido del Headless CMS.","description_en":"Admin dashboard for lab-news-service — Headless CMS content management.","tech_stack":["Next.js","TypeScript","Tailwind","Framer Motion"],"repo_url":"https://github.com/SvarogMyl/lab-news-admin","live_url":"https://news-admin.svasoft.cl","docs_url":null,"image_url":null,"status":"PRODUCTION","category":"FRONTEND","hosting":"Cloudflare Workers","order":5,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"4595ca07-5994-405e-a7a9-50d34194a138","title":"Lab Admin","slug":"lab-admin","description_es":"Panel de administración Svarog — usuarios, suscripciones y productos.","description_en":"Svarog admin panel — users, subscriptions and products.","tech_stack":["Next.js","TypeScript","Tailwind","Cloudflare Workers"],"repo_url":"https://github.com/SvarogMyl/lab-admin","live_url":"https://admin.svasoft.cl","docs_url":null,"image_url":null,"status":"PRODUCTION","category":"FRONTEND","hosting":"Cloudflare Workers","order":6,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"472ab546-1f4c-46ae-93ce-c3d377c58eb9","title":"Portal Template","slug":"portal-template","description_es":"Template de portal para clientes con módulos condicionales (noticias/agendamiento/reclamos/beneficios) vía variables de entorno. Entregable a clientes como código fuente. Demo activa: SISPEL (Sindicato de Supervisores Codelco El Salvador).","description_en":"Client portal template with conditional modules (news/booking/claims/benefits) via env vars. Delivered to clients as source code. Live demo: SISPEL (Codelco El Salvador supervisors union).","tech_stack":["Next.js","TypeScript","Tailwind","Cloudflare Workers"],"repo_url":"https://github.com/SvarogMyl/portal-template","live_url":"https://demo-sindicato.svasoft.cl","docs_url":null,"image_url":null,"status":"PRODUCTION","category":"FRONTEND","hosting":"Cloudflare Workers","order":7,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"2fbe1848-9cfb-432c-b45a-0975388231b2","title":"Holo Design System","slug":"lab-template-holo","description_es":"Sistema de diseño CSS/React reutilizable, compartido entre todos los labs de frontend. Publicado como open source.","description_en":"Reusable CSS/React design system shared across all frontend labs. Published as open source.","tech_stack":["React","CSS"],"repo_url":"https://github.com/SvarogMyl/lab-template-holo","live_url":null,"docs_url":null,"image_url":null,"status":"PRODUCTION","category":"FRONTEND","hosting":"OSS (sin hosting propio)","order":8,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"},{"id":"eb97376f-6d6e-4377-a2e4-309cef8c16c1","title":"Lab Monitor","slug":"lab-monitor-service","description_es":"Monitor de salud del ecosistema — pings periódicos con discovery dinámico de servicios.","description_en":"Ecosystem health monitor — periodic pings with dynamic service discovery.","tech_stack":["Node.js","Docker"],"repo_url":"https://github.com/SvarogMyl/lab-monitor-service","live_url":"https://monitor.svasoft.cl","docs_url":null,"image_url":null,"status":"PRODUCTION","category":"INFRAESTRUCTURA","hosting":"Oracle Cloud","order":18,"createdAt":"2026-07-05T16:47:25.495Z","updatedAt":"2026-07-05T16:47:25.495Z"}]