{"id":49381584,"url":"https://github.com/mazalucas/visionarystudio","last_synced_at":"2026-04-28T06:00:28.965Z","repository":{"id":350535810,"uuid":"1207248457","full_name":"Mazalucas/VisionaryStudio","owner":"Mazalucas","description":"Visionary Studio te ayuda a pasar del guión a los frames del storyboard con IA, para que puedas visualizar y preparar tu vídeo con más claridad y menos fricción.","archived":false,"fork":false,"pushed_at":"2026-04-21T14:31:49.000Z","size":421,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-21T16:34:46.191Z","etag":null,"topics":["ai","frame-to-frame","framework","generative-ai","video"],"latest_commit_sha":null,"homepage":"https://mazalucas.github.io/VisionaryStudio/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mazalucas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-10T18:28:57.000Z","updated_at":"2026-04-21T14:31:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Mazalucas/VisionaryStudio","commit_stats":null,"previous_names":["mazalucas/visionarystudio"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/Mazalucas/VisionaryStudio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mazalucas%2FVisionaryStudio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mazalucas%2FVisionaryStudio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mazalucas%2FVisionaryStudio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mazalucas%2FVisionaryStudio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mazalucas","download_url":"https://codeload.github.com/Mazalucas/VisionaryStudio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mazalucas%2FVisionaryStudio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32368534,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"online","status_checked_at":"2026-04-28T02:00:07.250Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","frame-to-frame","framework","generative-ai","video"],"created_at":"2026-04-28T06:00:16.964Z","updated_at":"2026-04-28T06:00:28.953Z","avatar_url":"https://github.com/Mazalucas.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Visionary Studio\n\nAplicación web (Vite + React + TypeScript) para trabajar con proyectos creativos usando modelos de **Google Gemini** y **OpenAI**, con datos en **Firebase** (Firestore y Storage).\n\n---\n\n## Instalación rápida (sin clonar el repo)\n\nDescarga el paquete para **Windows** (`.zip`) o **macOS Apple Silicon** (`.tar.gz`) desde la página de **Releases** del repositorio, descomprime la carpeta y ejecuta el lanzador indicado en el `README.txt` del paquete.\n\n**[Ver releases y descargar la última versión](https://github.com/Mazalucas/VisionaryStudio/releases)**\n\nLos paquetes incluyen Node portable y arrancan un servidor local en **http://localhost:3000**. Más detalle: [`docs/RELEASE.md`](docs/RELEASE.md).\n\n---\n\n## Requisitos\n\n| Herramienta | Versión recomendada |\n|-------------|---------------------|\n| [Node.js](https://nodejs.org/) | LTS actual (incluye `npm`) |\n\nComprobar en la terminal:\n\n```bash\nnode -v\nnpm -v\n```\n\n---\n\n## Instalación\n\n1. **Clonar el repositorio** (o descomprimir el proyecto).\n\n2. **Instalar dependencias** en la raíz del proyecto:\n\n   ```bash\n   npm install\n   ```\n\n3. **Configurar variables de entorno** (ver siguiente sección).\n\n4. **Arrancar en desarrollo:**\n\n   ```bash\n   npm run dev\n   ```\n\n   La app queda disponible en **http://localhost:3000** (el servidor escucha en `0.0.0.0` para acceder desde la red local si hace falta).\n\n---\n\n## API keys y configuración\n\n### Google Gemini (`GEMINI_API_KEY`)\n\n- **Qué es:** clave de la API de Gemini para texto e imágenes cuando eliges Gemini como proveedor.\n- **Dónde obtenerla:** [Google AI Studio](https://aistudio.google.com/apikey) (crear clave de API).\n- **Cómo configurarla en local:**\n  1. Copia el archivo de ejemplo:\n\n     ```bash\n     cp .env.example .env.local\n     ```\n\n  2. Edita **`.env.local`** y asigna tu clave:\n\n     ```env\n     GEMINI_API_KEY=tu_clave_aqui\n     ```\n\n  3. Reinicia `npm run dev` si ya estaba corriendo.\n\n- **Notas:**\n  - **`.env.local` no se sube a Git** (está en `.gitignore`). No lo compartas ni lo subas al repositorio.\n  - En tiempo de compilación, Vite inyecta esta variable en el cliente como respaldo.\n  - También puedes guardar la clave de Gemini **desde la propia app** (ajustes de API); en ese caso tiene prioridad lo guardado en el navegador sobre el valor de `.env.local`.\n\n### OpenAI\n\n- **Qué es:** clave de API de OpenAI para cuando eliges OpenAI como proveedor de texto o imagen.\n- **Dónde obtenerla:** [OpenAI API keys](https://platform.openai.com/api-keys).\n- **Cómo configurarla:** solo desde la **interfaz de la aplicación** (sección de claves / ajustes). Se guarda en el **almacenamiento local del navegador** (`localStorage`), no en `.env.local`.\n\n### Firebase (proyecto, Firestore, Storage)\n\n- **Qué es:** el cliente web usa la configuración pública de Firebase definida en **`firebase-applet-config.json`** (proyecto, `apiKey` web, buckets, etc.).\n- **Uso:** no hace falta tocar este archivo para un desarrollo normal si ya apunta al proyecto correcto.\n- **Seguridad:** las reglas de acceso a datos están en **`firestore.rules`** y **`storage.rules`**. Despliega reglas cuando las cambies (ver scripts más abajo).\n\n---\n\n## Scripts disponibles\n\n| Comando | Descripción |\n|---------|-------------|\n| `npm run dev` | Servidor de desarrollo (puerto **3000**). |\n| `npm run build` | Compilación de producción en la carpeta `dist/`. |\n| `npm run preview` | Sirve el build localmente para probar el resultado de `build`. |\n| `npm run lint` | Comprobación de tipos con TypeScript (`tsc --noEmit`). |\n| `npm run clean` | Elimina la carpeta `dist/`. |\n| `npm run deploy:rules` | Despliega solo reglas de **Firestore** y **Storage** con Firebase CLI (`firebase deploy --only firestore,storage`). Requiere CLI de Firebase y proyecto configurado. |\n\n---\n\n## Flujo típico de trabajo\n\n1. Configurar al menos **Gemini** (`.env.local` y/o clave en la app) u **OpenAI** (en la app).\n2. En la aplicación, elegir proveedor y modelos según la tarea (texto / imagen).\n3. Los datos de proyecto se sincronizan según las reglas de Firebase configuradas en el backend.\n\n---\n\n## Build de producción\n\n```bash\nnpm run build\n```\n\nLos archivos estáticos quedan en **`dist/`**. Puedes servirlos con cualquier hosting estático o con `npm run preview` para una prueba local.\n\n\u003e **Variables en build:** si despliegas en un servicio que inyecta variables en el **momento del build**, define `GEMINI_API_KEY` allí si quieres que el valor quede embebido en el bundle (es un patrón típico de frontends con `VITE_*` o equivalentes; aquí el proyecto usa `GEMINI_API_KEY` vía `vite.config` y `loadEnv`). Valida la política de secretos de tu plataforma: las claves en el cliente son visibles en el navegador.\n\n---\n\n## Enlaces útiles\n\n- **[Releases — descarga para Windows / macOS](https://github.com/Mazalucas/VisionaryStudio/releases)**\n- [Documentación de Vite](https://vite.dev/)\n- [Google AI Studio – API keys](https://aistudio.google.com/apikey)\n- [Firebase – consola](https://console.firebase.google.com/)\n\n---\n\n## Repositorio y versión\n\n- Versión actual del paquete: ver el campo **`version`** en `package.json`.\n- Código fuente: [github.com/Mazalucas/VisionaryStudio](https://github.com/Mazalucas/VisionaryStudio)\n- **Instaladores / paquetes desktop:** [página de Releases](https://github.com/Mazalucas/VisionaryStudio/releases) (se generan al publicar un tag `v*`; ver [`docs/RELEASE.md`](docs/RELEASE.md)).\n\nSi el proyecto se originó como plantilla de AI Studio, la integración con [Google AI Studio](https://ai.studio) puede seguir siendo relevante para el flujo de edición; la app se ejecuta de forma independiente con los pasos de esta guía.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmazalucas%2Fvisionarystudio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmazalucas%2Fvisionarystudio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmazalucas%2Fvisionarystudio/lists"}