Desarrollo Plataforma WorldStocks
Propuesta de desarrollo técnico para la Fase 1 de la plataforma de análisis de inversión por suscripción.
Importe total
7.500€
+ IVA
Horas estimadas
250h
30€/hora
Resumen de hitos
| # |
Entregable |
Horas |
Entrega |
Precio |
| 1 | Arquitectura base | 25h | 13 jun | 750€ |
| 2 | Gestión de contenido | 30h | 20 jun | 900€ |
| 3 | Plataforma de suscriptores | 60h | 11 jul | 1.800€ |
| 4 | Cartera del fondo | 30h | 18 jul | 900€ |
| 5 | Listados públicos | 20h | 25 jul | 600€ |
| 6 | Páginas públicas (Elementor desde Figma) | 25h | 5 sep | 750€ |
| 7 | Emails transaccionales | 20h | 10 sep | 600€ |
| 8 | Migración Substack | 20h | 12 sep | 600€ |
| 9 | SEO y rendimiento | 10h | 13 sep | 300€ |
| 10 | QA y lanzamiento | 10h | 15 sep | 300€ |
| Total |
250h |
|
7.500€ |
Estructura técnica base sobre la que se construye toda la plataforma. Tres plugins WordPress custom independientes, base de datos propia, sistema de roles y suscripciones a medida e integración completa con Stripe.
Plugins custom
| Plugin | Función |
ws-core | Base compartida, helpers, migraciones de base de datos, shortcode de dashboard |
ws-research | Contenido editorial: tesis, vídeos, empresas, taxonomías y etiquetado |
ws-portfolio | Cartera del fondo, cotizaciones en tiempo real, importador CSV |
Tablas de base de datos
| Tabla | Función |
wp_ws_companies | Directorio de empresas con datos financieros y de análisis |
wp_ws_subscriptions | Suscripciones activas, estado de pago y ciclo de facturación |
wp_ws_content_companies | Relación bidireccional contenido↔empresa |
wp_ws_quotes | Cotizaciones en caché (actualización diaria vía Twelve Data) |
wp_ws_financials | Datos financieros históricos por empresa y año |
wp_ws_portfolio_positions | Posiciones activas de la cartera del fondo |
Roles y permisos
| Rol | Acceso |
ws_subscriber_plan1 | Secciones configuradas para Plan 1 |
ws_subscriber_plan2 | Secciones configuradas para Plan 1 + Plan 2 |
ws_editor | Creación y edición de todo el contenido editorial |
ws_admin | Acceso total + panel de configuración |
Integración Stripe
- Webhook para activación, cancelación y renovación automática de suscripciones
- Sincronización automática estado Stripe → rol WordPress
- Acceso a Stripe Customer Portal desde la sección Cuenta del usuario
- API key almacenada en
wp_options, nunca en código
Tipos de contenido custom (CPTs), campos de administración, taxonomías y sistema de etiquetado bidireccional empresa↔contenido.
CPT: Tesis de Inversión
| Campo | Meta key / Taxonomía | Descripción |
| Título | — | Título de la tesis (post title) |
| Contenido | — | Cuerpo completo en editor WordPress |
| Imagen destacada | — | Portada/thumbnail |
| Tipo de publicación | Taxonomía ws_tipo_publicacion | Ej: Tesis semanal, Informe de mercado… |
| Sector | Taxonomía ws_sector | Sector bursátil |
| Empresas relacionadas | Tabla wp_ws_content_companies | Vinculación bidireccional con fichas de empresa |
| Precio objetivo | _ws_target_price | Precio objetivo estimado en € |
| Potencial | _ws_upside_pct | Potencial de revalorización en % |
| Rating | _ws_rating | Comprar / Mantener / Vender |
| Audio (privado) | _ws_audio_id | Archivo de audio adjunto, solo accesible para suscriptores |
| Excel / Informe (privado) | _ws_excel_id | Archivo Excel o PDF adjunto, solo accesible para suscriptores |
| Vídeo | _ws_video_url | URL de vídeo opcional vinculado a la tesis |
| Plan de acceso | _ws_plan | plan1 / plan2 |
CPT: Vídeos / Videoteca
| Campo | Meta key | Descripción |
| Título | — | Título del vídeo (post title) |
| Descripción | — | Notas y descripción en editor WordPress |
| URL del vídeo | _ws_video_url | YouTube, Bunny Stream o URL directa |
| Duración | _ws_duration | Ej: "1h 23min" |
| Sector | Taxonomía ws_sector | Sector bursátil |
| Empresas relacionadas | Tabla wp_ws_content_companies | Vinculación bidireccional |
| Plan de acceso | _ws_plan | plan1 / plan2 |
CPT: Empresa
| Campo | Meta key | Descripción |
| Nombre | — | Nombre de la empresa (post title) |
| Descripción editorial | — | Texto libre en editor WordPress |
| Logo | _ws_logo_url | PNG/SVG subido vía media library |
| Ticker | _ws_ticker | Símbolo bursátil en mayúsculas |
| Bolsa | _ws_exchange | NASDAQ, NYSE, BME… |
| Sector | _ws_sector | Sector bursátil |
| País | _ws_country | País de cotización |
| Convicción | _ws_conviction | Alta / Media / Baja |
| Estado de cobertura | _ws_coverage_status | Tesis / Seguimiento / En cartera / Vendida |
| Año precio objetivo | _ws_target_year | Año estimado de precio objetivo |
| CAGR esperado | _ws_expected_cagr | % de crecimiento anual esperado |
| Símbolo TradingView | _ws_tradingview_symbol | Ej: NASDAQ:AMZN — activa gráfico interactivo |
Panel de administración
- Ajustes generales: API keys, URLs de planes, configuración global
- Control de acceso: qué secciones del dashboard ve cada plan
- Pantalla de login: estadísticas y quote configurables
- Referencia de shortcodes disponibles
Dashboard privado accesible mediante shortcode [ws_dashboard] en una página WordPress protegida. Incluye todas las secciones, sistema de favoritos, control de acceso por plan y gestión de cuenta.
Pantalla de login
- Diseño split-screen: panel de marca a la izquierda, formulario a la derecha
- Estadísticas configurables desde admin (ej: "$250M+ activos bajo análisis")
- Quote e imagen configurables desde panel de administración
Secciones del dashboard
| Sección | Contenido | Acceso |
| Inicio | Últimas publicaciones + tab Mis favoritos | Todos los planes |
| Research | Listado de tesis con filtros | Configurable por plan |
| Cartera del fondo | Posiciones, pesos, rentabilidad | Configurable por plan |
| Videoteca | Listado de vídeos/webinars | Configurable por plan |
| Empresas | Grid de empresas cubiertas | Configurable por plan |
| Comunidad | Reservado para Fase 2 | — |
| Cuenta | Perfil + suscripción + facturación | Todos los planes |
Sistema de favoritos
- Botón de favorito (estrella) en cada card del dashboard y en cada página individual
- Tab "Mis favoritos" en Inicio agrupado por tipo (tesis, vídeos, empresas)
- Toggle AJAX sin recarga de página
- Favoritos almacenados por usuario en base de datos
Sección Cuenta
- Formulario de perfil: nombre, apellidos, email, cambio de contraseña
- Información de suscripción: plan activo, estado, próxima renovación, ciclo
- Acceso a Stripe Customer Portal: cambio de plan, método de pago, cancelación
Módulo completo de gestión y visualización de la cartera del fondo, con cotizaciones en tiempo real y herramientas de análisis para el suscriptor.
KPIs de cartera
- Valor total de cartera (suma de posiciones en €)
- Rentabilidad total acumulada (%)
- Número de posiciones activas
- Porcentaje de liquidez
Vistas de cartera
- Seguimiento: tabla completa con empresa, sector, geografía, peso, precio medio, valor actual, retorno y enlace a ficha
- Cartera: vista simplificada con peso de cada posición y barra visual
- Distribución sectorial con gráfico de donut interactivo
- Búsqueda y filtrado en tiempo real
Cotizaciones (Twelve Data)
- Actualización diaria automática al cierre del mercado (23:00 hora española)
- Caché en base de datos para minimizar llamadas a la API
- API key almacenada en
wp_options, nunca en código
Gestión desde admin
- Importador CSV de posiciones
- Configuración de % de liquidez
- Selección de columnas visibles en la tabla de seguimiento
Páginas de archivo públicas para cada tipo de contenido, con filtros, búsqueda y páginas individuales de detalle.
Páginas de archivo
| Archivo | Incluye |
| Tesis de inversión | Grid de tesis con filtro por sector, búsqueda, paginación |
| Videoteca | Listado de vídeos con filtro por sector, duración visible |
| Empresas | Grid de empresas con logo, ticker, sector y estado de cobertura |
Páginas individuales (singles)
- Tesis: contenido completo, empresas relacionadas, nav anterior/siguiente
- Vídeo: reproductor embebido (YouTube/Bunny/directo), descripción, empresas relacionadas
- Empresa: logo, ticker, badges, cotización, gráfico TradingView, análisis de inversión, datos financieros históricos, tesis y vídeos relacionados
Implementación en Elementor de las páginas públicas a partir de los diseños Figma entregados por el cliente. Pixel-perfect respecto al diseño aprobado.
Páginas incluidas
| Página | Notas |
| Home / Landing | Hero, stats, planes, historial, tesis muestra, testimonios, precios, FAQ |
| Precios | Comparativa de planes, toggle mensual/anual, CTAs |
| Muestras | Tesis públicas de muestra accesibles sin suscripción |
| Acerca de | Equipo, metodología, historial del fondo |
| Textos legales | Privacidad, Términos de uso, Aviso legal |
Requisito: diseños Figma entregados y aprobados por el cliente antes del 1 de agosto para cumplir la fecha de entrega del 5 de septiembre.
Configuración completa del sistema de email: infraestructura de envío, plantillas con identidad de marca y notificaciones automáticas por plan.
Infraestructura
- Configuración WP Mail SMTP con Brevo (o Resend) como proveedor
- Dominio de envío autenticado (SPF, DKIM, DMARC)
Plantillas de email
| Email | Trigger |
| Bienvenida Plan 1 | Alta nueva suscripción Plan 1 |
| Bienvenida Plan 2 | Alta nueva suscripción Plan 2 |
| Nuevo contenido Plan 1 | Publicación de tesis/vídeo para Plan 1 |
| Nuevo contenido Plan 2 | Publicación de tesis/vídeo para Plan 2 |
| Recordatorio renovación | 7 días antes de vencimiento |
| Confirmación cancelación | Cancelación desde Stripe |
Importación de usuarios y suscripciones activas desde Substack a WordPress. El alcance exacto depende del escenario Stripe.
Escenarios
| Escenario | Descripción | Impacto |
| A — Stripe propio | El cliente tiene cuenta Stripe propia vinculada a Substack | Migración limpia, customer IDs portables, sin interrupción |
| B — Stripe de Substack | La cuenta Stripe es de Substack | Los usuarios deben introducir tarjeta de nuevo. Requiere campaña de comunicación (15-30 días) |
Incluido en ambos escenarios
- Importación de usuarios (nombre, email, fecha de alta)
- Asignación automática de rol según plan activo
- Email de bienvenida/migración a cada usuario importado
- Validación y reporte de errores de importación
- WP Rocket: caché de página, minificación CSS/JS, lazy load, CDN
- Yoast SEO Premium: meta tags, sitemaps, breadcrumbs, Open Graph
- PostHog: snippet de analítica de comportamiento en tema hijo
- Plausible Analytics: configuración y verificación de eventos
- Pruebas end-to-end en entorno staging con suscriptores reales
- Verificación de flujo completo: registro → pago → acceso → contenido
- Pruebas en dispositivos móviles (iOS / Android)
- Verificación de emails transaccionales
- Despliegue a producción y configuración de dominio
- Periodo de ajustes post-lanzamiento: 7 días
Forma de pago
Al inicio
3.000€
2 junio 2026
Hitos 1–5 completados
3.000€
25 julio 2026
Al lanzamiento
1.500€
15 septiembre 2026
Esta propuesta no incluye
- Diseño UI / Figma (a cargo del cliente)
- Foro y comunidad (Fase 2)
- Chat IA con RAG (Fase 2)
- Carteras de superinversores (Fase 2)
- Contenido editorial y copywriting
- Licencias de plugins (WP Rocket, Yoast, etc.)
- Hosting y dominio
- Mantenimiento post-lanzamiento