En desarrollo activo
Changelog
Cada mejora, arreglo y novedad de keef en un solo lugar.
v0.9.1 · Help Center con hilos, adjuntos y refuerzo de seguridad
## Novedades
- **Help Center funcional** — buscador y FAQ por categorías, tickets con hilo completo, marcar como resuelto y reabrir desde el usuario.
- **Adjuntos en tickets** — PNG / JPG / WebP / GIF / PDF hasta 8 MB, hasta 3 por acción, con URLs firmadas de 10 minutos.
- **Notificaciones automáticas por email** — confirmación al abrir, aviso cuando el equipo responde y cuando cambia el estado.
## Seguridad
- **Headers globales** — HSTS 2 años, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy y CSP en modo Report-Only aplicados a toda la app (incluido Help Center y admin).
- **Autorización defensiva en soporte** — doble verificación de propiedad del ticket y rate-limit propio para cambios de estado (20/h) además del existente en respuestas.
- **Funciones internas endurecidas** — revocado `EXECUTE` en triggers `SECURITY DEFINER` de soporte para `anon` y `authenticated`.
- **Tests de invariantes de soporte** — vitest verifica MIME whitelist, tamaños, categorías, y que el ticket público nunca exponga `user_id`, IP o `admin_id`.
## Mejoras
- **Panel de ticket con hilo cronológico** — mensajes del usuario, del equipo y eventos de estado en una sola vista.
- **Contador de reaperturas** — cada vez que se reabre un ticket queda registrado en la lista.
- **Ordenamiento por última actividad** — `last_activity_at` mantiene la lista siempre al día.
## Correcciones
- **Adjunto vacío o corrupto** — se rechaza antes de subir a Storage.
- **Fallback de avatar en el Muro** — iniciales cuando el usuario fue eliminado.
- **Emojis y GIFs del chat / muro** — se cargan vía URL firmada y proxy de imágenes en vez de directos.
Custom Emojis, Perfiles Alt y arranque más rápido
Nueva tanda de novedades para keef:
**Custom Emojis Premium** — Subí hasta 30 emojis propios (PNG/GIF, 256KB máx) desde /premium/emojis y usalos con `:shortcode:` en el guestbook y en el chat global. Se renderizan inline como cualquier emoji nativo.
**Perfiles Alt (Personas)** — Los usuarios Premium pueden crear hasta 3 perfiles alternativos bajo la misma cuenta, cada uno con su propio slug, avatar, banner, bio y color de acento. Cambio rápido tipo Discord, sin cerrar sesión. Se gestionan desde /premium/personas y quedan públicos en /p/<slug>.
**Arranque más rápido** — Sacamos las librerías de gráficos (~90KB) del bundle inicial. La página de estadísticas ahora pinta las tarjetas al instante y los charts hacen streaming en segundo plano. Se suma un cache LRU con TTL para reducir consultas repetidas.
Como siempre: feedback bienvenido en el servidor de Discord.
Chat global, moderación en vivo y pulido general
Novedades de esta ronda:
• Chat global en tiempo real con badges, decoración de avatar, agrupación estilo Discord, paginación por cursor y rate-limit server-side.
• Moderación: reportes de mensajes, panel /admin/chat con alertas en vivo, sonido en críticos, cooldowns automáticos por spam/insultos y auditoría completa (usuario, IP, motivo).
• Avatares del chat con URLs firmadas + reintento + cache + fallback con iniciales — se acabaron los avatares rotos.
• Misiones daily/weekly con streak bonus, +11 misiones nuevas y otorgamiento automático de créditos vía credit_ledger.
• Tienda de decoraciones: preview con tu avatar real, alineación estilo Discord (overlay que sobresale), logs detallados de equip/purchase.
• Perfil ($username): sin scroll en móvil/tablet (100dvh), decoraciones alineadas correctamente, Discord Status desactivado temporalmente hasta que la API sea estable.
• Tema claro/oscuro configurable desde Ajustes → Apariencia, con fondo más neutro (menos violeta).
• Registro/login arreglados (columna meta_overlay + trigger que rompía signups).
• Seguridad: middleware SSR que detecta y bloquea probes (curl/sqlmap/nikto) con auto-block a los 3 hits, panel /admin/vulnerabilidades con regla, match, trigger y feed en tiempo real.
• Admin: ajuste bidireccional de créditos (dar/quitar), reconexión de Discord OAuth arreglada, validador de decoraciones acepta cualquier slug del catálogo.
Tienda, misiones y admin recargados
## 🛒 Tienda
- Preview con tu avatar real (con fallback + reintentos si falla la carga).
- Overlay de decoraciones firmado al equipar: se ve al instante, sin recargar.
- Botón "Sin decoración" y posicionamiento correcto del indicador online.
## 🎯 Misiones (+11 nuevas)
**Diarias:** Ojo clínico (10 vistas), Popular (5 reacciones), Conversador (3 mensajes), Diseñador (guardar personalización).
**Semanales:** Constante (5 logins), Influencia (50 vistas), Querido (25 reacciones), Voz activa (5 mensajes), Coleccionista Pro (3 compras), Perfeccionista (5 ediciones), Explorador social (10 follows).
## 🛠️ Admin / Tienda
- Ajustar créditos con montos ± y chips rápidos (+100/500/1000 y −100/500/1000). Botón rojo al quitar.
- Log de actividad reciente del ledger.
- Previews del catálogo firmadas correctamente.
## 🔒 Seguridad & logs
- Rate limit en equipar/comprar decoraciones.
- Logs detallados en equipDecoration / purchaseDecoration para cazar bugs al toque.
Aliases Premium — hasta 5 URLs vanity por cuenta
## Nuevo en Premium: Aliases
Ahora los usuarios **Premium** pueden reservar hasta **5 alias adicionales** que redirigen a su perfil principal.
### ¿Para qué sirven?
- Campañas puntuales (`keef.cc/black-friday`)
- Marca personal alternativa (`keef.cc/dj-alias`)
- Alias secundarios (`keef.cc/tunombre2`)
- Vanity URLs cortas para pegar en bios o flyers
### Detalles
- Se gestionan desde **Premium → Aliases** en el sidebar.
- Cada alias es único globalmente (no colisiona con usernames ni reservados).
- Podés eliminarlos cuando quieras; el username principal sigue siendo tu identidad.
- Todos los alias apuntan a la misma página, con la misma personalización.
Si todavía no sos Premium, activalo desde `/premium` y desbloqueás también layouts avanzados, dominio propio y metadata personalizada.
Tanda 5: Social & Viral
## Nuevas funciones sociales
- **Weekly Wrapped** en `/wrapped`: resumen semanal con vistas, seguidores nuevos, reacciones, racha y top país. Con botón para compartir.
- **Menciones @usuario** en el guestbook: escribí `@nombre` y queda como enlace clickeable al perfil.
- Placeholder del guestbook actualizado para dejar visible el tip de menciones.
Entrá desde la sidebar → Cuenta → Weekly Wrapped.
SEO/crecimiento: sitemap index, SearchAction y JSON-LD ampliado
## 🔎 SEO
- **Sitemap index** en `/sitemap-index.xml` con sub-sitemaps para páginas y perfiles (mejor para Google cuando hay miles de perfiles).
- **SearchAction** JSON-LD en el sitewide: Google puede mostrar sitelinks search box hacia `/discover`.
- **Organization** con `logo` y `sameAs: [Discord]` para knowledge panel.
- **robots.txt**: bloqueo de rutas privadas (`/admin`, `/settings`, `/customize`, `/premium`, `/api/`) y `Sitemap:` apuntando a `keef.cc`.
Calidad de vida: autosave, undo global y pill de estado
## ✨ QoL
- **Autosave** con debounce en editores (hook `useAutosave`): sin botón "Guardar", cambios se sincronizan solos.
- **Undo/Redo** genérico (`useUndoable`) listo para editor de perfil, links y timeline.
- **Indicador visible** de guardado (`Guardando… / Guardado / Error`) para no perder confianza.
- Base lista para atajos ⌘Z / ⌘⇧Z en próximas iteraciones.
Image proxy firmado + endurecimiento continuo
## 🛡️ Image proxy firmado
- Nuevo endpoint `/api/public/img` que sólo acepta URLs con firma HMAC-SHA256.
- **SSRF guard**: bloquea loopback, IPs privadas y metadata de nube (169.254.169.254).
- Streaming sin bufferear, `Referrer-Policy: no-referrer` y cache CDN 7 días.
- Content-Type validado: sólo `image/*` puede pasar.
## 🔒 Extras
- Cross-Origin-Resource-Policy en respuestas del proxy.
- CSP Report-Only midiendo violaciones reales para endurecer sin romper widgets.
Cabeceras de seguridad + CSP en modo monitor
## 🛡️ Endurecimos el navegador
- **CSP en Report-Only**: monitoreamos scripts, estilos y frames sospechosos sin romper widgets (Discord, Spotify, YouTube, Paddle).
- **Permissions-Policy ampliada**: cámara, micrófono, geo, USB, sensores y pagos bloqueados por defecto (Paddle sigue autorizado).
- **X-DNS-Prefetch-Control** activado para acelerar navegación entre perfiles.
- **X-Permitted-Cross-Domain-Policies: none** para impedir cargas Flash/Adobe legacy.
- Los headers HSTS, XFO, nosniff y COOP siguen aplicados globalmente.
Si ves algo raro en un perfil, avisá — estamos analizando los reportes antes de pasar CSP a modo bloqueo total.
Ronda de mejoras: deuda técnica + registro más limpio
Bajo el capó:
- 🧹 **Purga automática diaria** de logs viejos (rate_limits, security_events, IPs, views antiguas). Menos peso en la DB, todo más rápido.
- 🚫 **Bloqueo de emails desechables** en /register (mailinator, tempmail, guerrillamail y +60 más). Menos cuentas basura.
- 🛡️ Función de purga con permisos mínimos — solo el servicio interno puede ejecutarla.
Próxima ronda: seguridad+, QoL (⌘K mejorado, QR del perfil, autoguardado), SEO (OG dinámico), features premium nuevas (widgets, efectos ambientales, timers).
Novedades de la semana
Seguimos puliendo keef con mejoras chicas pero que se notan:
• Programa de Embajadores con tiers y página pública dedicada.
• Nuevos paneles internos para operar el sitio con más orden.
• Navegación más rápida: prefetch al pasar el mouse y transiciones instantáneas entre secciones.
• Avatares y banners optimizados para que los perfiles carguen mucho más liviano.
• Ajustes de seguridad y privacidad detrás de escena.
• Correcciones varias en reproductor de audio, videos de perfil y notificaciones.
Gracias por bancar el proyecto 💜
Actualización general — pulido visual, retención y seguridad
Iconos sociales sin blur
Los enlaces del perfil se muestran limpios y nítidos, sin difuminado detrás del icono. Se ve mucho mejor en fondos oscuros y con imagen.
Retención y referidos
- Sistema de referidos activo: 6 invitados con email confirmado te regalan 1 mes de premium.
- Antifraude reforzado: se bloquean VPNs, cambios de navegador y cuentas recién creadas.
- Compartir templates de perfil directo desde la vista de personalización.
Reproductor de audio
- Autoplay real en móvil (arranca silenciado y se activa al primer toque).
- Recuperación automática cuando expira la URL firmada.
- Corregido el corte a los pocos segundos en iOS Safari.
- Logs de errores de audio en el panel de seguridad para diagnosticar casos raros.
Discord Card
- Decoraciones oficiales de avatar, badge de Nitro y booster con assets reales.
- Layout con varias insignias sin solaparse.
- Estados de carga con reintento y mensajes claros cuando el bot no ve tu presencia.
Emails con dominio propio
- notify.emails.keef.cc verificado y activo.
- Confirmación de cuenta, reset de contraseña y códigos 2FA llegan con branding de keef.
- Anuncios importantes se envían también por correo a quienes tienen opt-in.
Cuenta y soporte
- Podés eliminar tu cuenta desde ajustes cuando quieras.
- Soporte directo por Discord (discord.gg/baires).
Seguridad
- Notificaciones marcadas como leídas correctamente.
- Auditoría ampliada: se registran errores sensibles y accesos anómalos.
- Bloqueo automático de IPs con actividad sospechosa y CAPTCHA cuando el umbral se supera.
- Políticas de acceso ajustadas en varias tablas para evitar exposición de datos.
- Endpoint de bloqueo cerrado para evitar lockouts maliciosos.
- Vinculación con Discord ahora requiere OAuth verificado.
Admin
- Botón para borrar el historial de IPs (global y por usuario).
- Panel de seguridad con eventos filtrables (auth, badges, audio, SQL).
- Gestión de webhooks para configurar los avisos de ventas y publicaciones.
Login/Registro renovados + más seguridad
## Nuevo diseño de acceso
- Páginas **/auth** y **/register** rediseñadas con panel split-screen, aurora animada, marquee de usuarios y tarjeta de cristal.
- Medidor de fuerza de contraseña en tiempo real durante el registro.
- Botones con gradiente animado y micro-interacciones.
## Seguridad reforzada
- **CAPTCHA step-up** tras varios intentos fallidos de login (matemático, firmado con HMAC).
- **Bloqueo temporal automático** por IP y email al detectar abuso.
- **Trigger anti-abuso de insignias**: bloquea al usuario tras actividad anómala.
- **Panel /admin/security**: auditoría de logins, cambios de badges, violaciones RLS y errores SQL con alerta a Discord.
- Funciones de base de datos con `search_path` fijado y `security definer` restringido.
## Ventas & operaciones
- Webhook de Discord con eventos configurables (compras, changelogs, alertas) desde `/admin/webhooks`.
- Registro de IPs de usuarios en `/admin/ips`.
## Perfil & UX
- Iconos sociales estilo circular en el perfil.
- Analíticas por país y **vistas únicas** (7d / 30d) en el dashboard.
- Tilde de verificado en Discord cuando la cuenta está vinculada vía OAuth.
- Reproductor de audio con **5 posiciones** configurables.
- Discord card estilo guns.lol (banner, actividad, estado animado).
- Dashboard "Midnight Studio" con acento morado neón.
## Pagos
- **Lifetime Premium por $5 USD** en cripto (NOWPayments) desde el modal Upgrade.
- **Insignia personalizada a $7 USD**.
- Notificaciones de ventas al webhook de Discord.
## Emails
- Dominio `notify.mail.keef.cc` conectado: códigos 2FA, cambios de contraseña y avisos ahora llegan con branding keef.
## Rendimiento
- Iconos de insignias cargados de forma estática (fin del parpadeo en el perfil).
- Rate-limiting general y cache headers en rutas públicas.
Limpieza en Personalización + mejoras de seguridad
Pequeños ajustes esta semana:
• Eliminado temporalmente el selector de **Layout del perfil** — volverá pronto renovado con más opciones y previews en vivo.
• Refuerzo de seguridad en el sistema de insignias: ahora es imposible auto-asignarse badges reservadas (Staff, Verified, Premium, etc.).
• Correcciones menores en el editor de personalización.
Seguimos trabajando en el rediseño completo del panel de Diseño del perfil. 🚀
Reproductor de audio con posición personalizable
Ahora podés elegir dónde aparece el reproductor de música en tu perfil desde el **Gestor de audio** en Personalizar.
**Novedades:**
- 5 posiciones disponibles: arriba izquierda, arriba derecha, abajo izquierda, abajo centro y abajo derecha.
- Por defecto aparece **arriba a la derecha**, justo debajo del contador de vistas para no tapar contenido.
- Layout adaptado para móviles y tablets: el widget nunca se corta ni se superpone con el header del perfil.
- Selector visual tipo minimapa para elegir la ubicación con un click.
Entrá a **Personalizar → Gestor de audio → Posición del reproductor** para moverlo donde más te guste.
Regístrate con TU nombre + notificaciones en vivo
## Novedades
### 🪪 Elige tu URL desde el registro
- Al crear cuenta eliges directamente tu `keef.cc/tunombre`. Nada de nombres tipo `user8a3f...`.
- Comprobación en vivo mientras escribes: verás al instante si está libre, en uso o reservado.
- ¿Encontraste un `keef.cc/loquesea` que aún nadie tiene? Desde esa misma página puedes reclamarlo en un click.
### 🔔 Notificaciones en tiempo real
- Cuando publiquemos una nueva novedad, recibirás un toast al instante sin recargar.
- La campanita del dashboard se actualiza sola.
### 🧹 Simplificado
- Se quitó el botón "Reclamar username" del dashboard — ya no hace falta.
- Cambiar tu nombre más adelante sigue disponible desde Ajustes.
---
Gracias por seguir usando keef.cc 💚
Pagos con crypto + mejoras de seguridad y rendimiento
## Novedades
### 💸 Premium con crypto — $5 de por vida
- Ya puedes pagar Premium con USDT, BTC, LTC y +100 criptos vía NOWPayments.
- Un solo pago, para siempre. Sin suscripciones ni renovaciones.
- Panel de upgrade rediseñado: se abre directo desde la barra lateral, sin páginas intermedias.
- Activación automática en 2-5 min tras confirmar el pago.
### 🛡️ Seguridad reforzada
- Verificación criptográfica de los pagos entrantes antes de activar cualquier beneficio.
- Sistema anti-doble-pago: si ya tienes Premium activo, no se crea otra invoice.
- Rate-limiting en acciones sensibles (invoices, reportes) para frenar abuso automatizado.
- Protección extra en los badges: nadie puede reasignarse insignias que no ha ganado.
- Validación estricta de todas las URLs de pago antes de redirigir.
### ⚡ Rendimiento
- La home carga bastante más rápido en visitas repetidas gracias a caché en el edge/CDN.
- Menos consultas pesadas a la base de datos en el arranque de la landing.
### 🧹 Limpieza
- Se eliminó la landing /premium — todo el flujo vive ahora en el panel emergente desde la barra lateral.
- Enlaces internos actualizados en customize, checkout y el command palette.
---
¿Encontraste algo raro? Repórtalo desde /bugs. ¡Gracias por usar keef.cc 💚!