/* ===== Ramona Bytes v2 — Sections ===== */ function Nav() { return (
RAMONA BYTES // dev · digital · cybersec
Iniciar proyecto
); } function CursorTrail() { const dotRef = React.useRef(null); const canvasRef = React.useRef(null); const particles = React.useRef([]); React.useEffect(() => { const dot = dotRef.current; const canvas = canvasRef.current; if (!dot || !canvas) return; const ctx = canvas.getContext('2d'); let mx = innerWidth/2, my = innerHeight/2, dx = mx, dy = my; let lastByte = 0, raf; const resize = () => { canvas.width = innerWidth; canvas.height = innerHeight; }; resize(); window.addEventListener('resize', resize); const onMove = (e) => { mx = e.clientX; my = e.clientY; const now = performance.now(); if (now - lastByte > 20) { lastByte = now; particles.current.push({ x: mx + (Math.random()-0.5)*12, y: my + (Math.random()-0.5)*12, size: 4 + Math.random()*6, rot: (Math.random()*90-45) * Math.PI/180, drift: (Math.random()-0.5)*30, lift: -10 - Math.random()*30, color: Math.random() < 0.7 ? '#C4525E' : '#EFEAE0', t0: now, dur: 900 }); } const isInteractive = e.target && e.target.closest("a, button, .exhibit, .tq-head, .bp-step, [data-hover]"); dot.classList.toggle("is-hover", !!isInteractive); }; window.addEventListener('mousemove', onMove); const tick = () => { dx += (mx-dx)*0.45; dy += (my-dy)*0.45; dot.style.transform = `translate(${dx}px, ${dy}px) translate(-50%, -50%)`; const now = performance.now(); ctx.clearRect(0, 0, canvas.width, canvas.height); particles.current = particles.current.filter(p => { const t = (now - p.t0) / p.dur; if (t >= 1) return false; const ease = 1 - Math.pow(1 - t, 2); const s = p.size * (1 - t * 0.8); ctx.save(); ctx.globalAlpha = 1 - t; ctx.fillStyle = p.color; ctx.translate(p.x + p.drift * ease, p.y + p.lift * ease); ctx.rotate(p.rot + t * 0.5); ctx.fillRect(-s/2, -s/2, s, s); ctx.restore(); return true; }); raf = requestAnimationFrame(tick); }; tick(); return () => { window.removeEventListener('mousemove', onMove); window.removeEventListener('resize', resize); cancelAnimationFrame(raf); }; }, []); return ( <>
); } function Hero() { return (

Si lo construimos
lo sostenemos.

Estudio independiente de desarrollo de software, presencia digital y consultoría de ciberseguridad. Construimos producto a medida, auditamos lo que ya existe, y diseñamos identidad que sostiene la operación. Pocos proyectos a la vez, atención completa en cada uno.

); } function Tape() { const items = ["Desarrollo a medida","Auditoría OWASP","Identidad digital","Pentesting","Branding","Web · App · API","ISO 27001","Threat modeling"]; const row = {items.map((it,i) => {it})}; return ; } function DocHead({ num, title, code, page }) { return (
§{num} {title} Ref{code} Página{page}
); } function Brief() { const BriefLoop = window.RamonaBriefLoop; return (

Resumen

Operamos como un estudio pequeño y profesional. Nuestro trabajo combina tres disciplinas que rara vez conviven en un mismo equipo: ingeniería de software a medida, consultoría de ciberseguridad y diseño de identidad digital.

La integración importa porque las fronteras entre estas áreas son donde aparecen los problemas reales. Un sitio sin endurecer es una superficie de ataque. Una identidad sin sistema técnico no escala. Una arquitectura sin narrativa no se adopta. Nosotros cubrimos los tres ejes con la misma gente.

Trabajamos por proyecto cerrado o por retainer mensual. Pocos clientes a la vez, comunicación directa con quien construye, sin project managers ni capas comerciales.

{BriefLoop ? ( ) : ( )}
); } function Exhibits() { const items = [ { n: "01", tag: "EXH. A", title: <>Desarrollo
de software, body: "Si tienes una idea, un proceso o una necesidad concreta, lo convertimos en software. Aplicaciones web, plataformas a medida, APIs e integraciones, dashboards internos y sitios con funcionalidad propia — todo construido específicamente para ti, sin plantillas. Código auditable, tests, integración continua y documentación de handoff completa." }, { n: "02", tag: "EXH. B", title: <>Consultoría
de ciberseguridad, body: "Pentesting, auditoría OWASP, threat modeling y respuesta a incidentes. Reportes ejecutivos para dirección y planes técnicos de remediación con estimaciones reales. Además acompañamos a tu equipo: formación interna, talleres de concienciación y todo lo que tiene que ver con gobernanza — políticas, procedimientos, controles y marcos de cumplimiento como ISO 27001 o NIST." }, { n: "03", tag: "EXH. C", title: <>Presencia
digital, body: "Identidad, sitio, contenido y SEO técnico. Diseño con criterio sobre stacks modernos, performance medible, analítica honesta. Hacemos también la sesión de fotos para tu sitio y gestionamos tu ficha en Google — para que cuando alguien te busque en Maps o en el buscador, lo que encuentre represente bien lo que eres. Sin templates, sin lorem ipsum." } ]; return (
{items.map(it => (
{it.tag}

{it.title}

{it.body}

finding · {it.n}
))}
); } function Process() { const steps = [ { n:"01", t:"Descubrimiento", c:"Mapeo inicial de objetivos, riesgos y restricciones." , co:"A1·B1"}, { n:"02", t:"Auditoría", c:"Revisión de código, infraestructura y exposición pública." , co:"A2·B1"}, { n:"03", t:"Diseño", c:"Wireframes, threat model y selección de stack acordados." , co:"A3·B1"}, { n:"04", t:"Construcción", c:"Sprints cortos, demos quincenales, acceso al repositorio." , co:"A4·B1"}, { n:"05", t:"Hardening", c:"Pentest interno, runbooks, observabilidad y documentación." , co:"A5·B1"}, { n:"06", t:"Acompañamiento", c:"Soporte continuo, retainer flexible o handoff completo." , co:"A6·B1"} ]; return (
{steps.map(s => (
Fase {s.n}

{s.t}

{s.c}

{s.co}
))}
); } /* TESTIMONY — comentado temporalmente function Testimony() { const [open, setOpen] = React.useState(0); const items = [ { q: "¿Trabajan con startups o sólo con empresas grandes?", a: "Ambas. Existe un track para founders early-stage, con presupuestos contenidos y scope acotado, y otro para empresas con stack legacy y cumplimiento regulatorio. Adaptamos el equipo y la metodología al tamaño del proyecto." }, { q: "¿En qué se diferencian de una agencia tradicional?", a: "No tenemos cuentas, project managers ni capas. Hablas directamente con quien construye. El equipo es chico y profesional. Si nos contratas, nos contratas a nosotros — no a un junior subcontratado." }, { q: "¿Pueden auditar lo que ya construyeron otros?", a: "Sí, y es de lo que más hacemos. Pentest, code review, cloud audit y reporte ejecutivo + técnico. Hallazgos priorizados y plan de remediación con estimaciones reales." }, { q: "¿Cuánto cuesta un proyecto típico?", a: "Auditoría y consultoría parten desde 4.5k USD. Producto a medida arranca en 18k USD para MVPs y escala desde ahí. Cobramos por proyecto cerrado o por retainer mensual." }, { q: "¿Firman NDA?", a: "Por supuesto. Antes de la primera llamada profunda si lo necesitas. También trabajamos con cláusulas de no-competencia sectorial cuando aplica." }, { q: "¿Cómo es el handoff al equipo interno?", a: "Documentación técnica completa, runbooks operativos, sesiones de onboarding grabadas y 90 días de soporte incluidos. El objetivo es que tu equipo herede el producto sin fricción." } ]; return (
{items.map((it, i) => (
{it.a}
))}
); } */ function Testimony() { return null; } function Closing() { return (

Iniciar
proyecto.

Contacto directo

info@ramonabytes.com

{/*
Canales

LinkedIn · GitHub · Instagram

*/}
{/* FORMULARIO — comentado temporalmente
...ver git history para restaurar...
*/}
© 2026 · Ramona Bytes · Todos los derechos reservados Documento RB-2026-005 · v.2026.05
); } window.Nav = Nav; window.CursorTrail = CursorTrail; window.Hero = Hero; window.Tape = Tape; window.Brief = Brief; window.Exhibits = Exhibits; window.Process = Process; window.Testimony = Testimony; window.Closing = Closing;