Social Media Campaign
Run ID: 69cc0c2304066a6c4a168d0a2026-03-31Marketing
PantheraHive BOS
BOS Dashboard

Plan and create content for a complete social media campaign

This document outlines a comprehensive social media content calendar for your upcoming campaign, designed to engage your audience, build anticipation, and drive action. This calendar provides a two-week framework for content creation and distribution, focusing on a hypothetical product launch: the "Zenith AuraFlow Smart Diffuser." All content is crafted to be professional, engaging, and ready for publishing, complete with headlines, body text, visual ideas, and calls to action.


Social Media Campaign: Content Calendar - Zenith AuraFlow Smart Diffuser Launch

1. Campaign Overview

Campaign Title: Unveiling Zenith AuraFlow: Elevate Your Everyday

Campaign Goal: To generate excitement, educate the target audience about the unique features and benefits of the Zenith AuraFlow Smart Diffuser, and drive pre-orders/initial sales upon launch.

Target Audience:

  • Tech-savvy individuals interested in smart home devices.
  • Wellness enthusiasts seeking to enhance their home environment.
  • Individuals looking for stress relief, improved focus, or better sleep.
  • Design-conscious consumers appreciative of aesthetic and functional products.

Key Messages:

  • Innovation Meets Wellness: Zenith AuraFlow seamlessly integrates smart technology with holistic well-being.
  • Personalized Ambiance: Customize your environment with intelligent aromatherapy, ambient lighting, and soothing soundscapes.
  • Effortless Control: Manage your AuraFlow experience with intuitive app control and voice commands.
  • Transform Your Space: Create a sanctuary of calm, focus, or rejuvenation in any room.

Primary Platforms:

  • Instagram: Visual storytelling, Reels, Stories, Carousels for product showcase and lifestyle integration.
  • Facebook: Community engagement, longer-form content, event promotion, link sharing.
  • X (formerly Twitter): Quick updates, announcements, trending topics, direct engagement.
  • TikTok: Short, engaging videos, product demonstrations, behind-the-scenes, creative trends.

Campaign Duration: 2 Weeks (Pre-Launch Tease & Launch Week)


2. Content Pillars

To ensure a diverse and engaging content stream, our campaign will focus on the following pillars:

  1. Anticipation & Tease: Building curiosity and excitement before the full reveal.
  2. Problem/Solution: Highlighting common environmental challenges and how AuraFlow provides a seamless solution.
  3. Feature Spotlight: Deep-diving into specific technological innovations and design elements.
  4. Benefit & Lifestyle Integration: Showcasing how AuraFlow enhances daily life, mood, and well-being.
  5. Behind-the-Scenes/Brand Story: Offering a glimpse into the creation and values behind Zenith.
  6. Call to Action (CTA): Guiding the audience towards pre-orders, website visits, or engagement.
  7. Community Engagement: Fostering interaction through Q&A, polls, and user-generated content prompts.

3. Detailed Content Calendar: Zenith AuraFlow Launch

Campaign Start Date: Monday, [Insert Desired Start Date Here]

Week 1: Anticipation & Education

| Date | Platform(s) | Content Type | Content Pillar | Headline/Caption (Ready for Publishing)

sharper4k Output

Social Media Campaign: Image Generation Deliverables

This document outlines the detailed image concepts and prompts for your social media campaign, "Unlock Your Potential: Experience the Future with PantheraTech." These descriptions are designed to be comprehensive and actionable, serving as direct inputs for an AI image generation tool or clear briefs for a graphic designer, ensuring visual consistency and impact across all platforms.


Campaign Overview

Campaign Title: Unlock Your Potential: Experience the Future with PantheraTech

Goal: Increase brand awareness, drive engagement, and highlight PantheraTech's commitment to innovation, user experience, and forward-thinking solutions.

Target Audience: Professionals, tech enthusiasts, creative individuals, and businesses seeking advanced, intuitive technology.

Brand Aesthetic: Modern, minimalist, sophisticated, high-tech, user-centric, inspiring.


Image Generation Strategy

The image strategy focuses on creating a diverse set of visuals that resonate with the campaign's theme and brand aesthetic. We aim for a mix of aspirational, product-focused, and lifestyle imagery to capture attention and convey the core message effectively. All images will maintain a consistent visual style, utilizing a sophisticated color palette (e.g., deep blues, sleek grays, vibrant accents of teal or purple) and clean compositions.


Detailed Image Concepts

Below are the detailed image concepts, each with a title, purpose, a comprehensive prompt/description, and relevant keywords.

1. Hero Image: "The Gateway to Innovation"

  • Purpose: To serve as the primary visual for the campaign launch, establishing a sense of awe, possibility, and technological advancement. Ideal for campaign banners, main posts, and website hero sections.
  • Detailed Prompt/Description:

A futuristic, minimalist scene depicting a glowing, abstract portal or gateway made of sleek, interconnected geometric light patterns (e.g., hexagons, flowing lines) in deep blues and electric purples. The portal emanates a soft, inviting light. Through the portal, a blurred, aspirational vision of a vibrant, technologically advanced cityscape or a serene, futuristic workspace is faintly visible, symbolizing future possibilities. The foreground should be clean and uncluttered, with a subtle texture of brushed metal or polished glass.

* Composition: Central focus on the portal, leading the eye towards the future vision.

* Lighting: Soft, ambient glow from the portal contrasting with a darker, sophisticated background.

* Color Palette: Dominant deep blues, electric purples, hints of teal, with subtle silver/grey accents.

* Style: Futuristic, minimalist, abstract, high-tech, clean.

* Mood: Inspiring, mysterious, hopeful, cutting-edge.

* Aspect Ratio: Versatile (16:9 for banners, 4:5 for Instagram, 1:1 for general posts).

  • Keywords/Tags: #FutureTech #Innovation #PantheraTech #Gateway #DigitalTransformation #AbstractArt #SciFi #ModernDesign #Aspiration #TechVision

2. Product Showcase: "Seamless Integration"

  • Purpose: To highlight the sleek design and user-friendly interface of a hypothetical PantheraTech product/software, emphasizing its seamless integration into a modern workflow.
  • Detailed Prompt/Description:

A close-up, high-angle shot of a sleek, minimalist digital device (e.g., a tablet, laptop, or a custom PantheraTech interface) displaying a clean, intuitive UI with data visualizations or creative software. The device is placed on a modern, uncluttered desk surface (e.g., light wood, concrete, or white marble) with subtle reflections. A human hand (diverse, professional-looking) is gently interacting with the touchscreen or trackpad, conveying ease of use. The background is softly blurred, hinting at a modern office or creative studio environment.

* Composition: Rule of thirds, focusing on the device and interaction point.

* Lighting: Soft, natural daylight from a window, creating subtle shadows and highlights on the device.

* Color Palette: Neutral grays, whites, and wood tones, with the UI displaying a clean interface using PantheraTech's accent colors (teal/purple).

* Style: Product photography, clean, minimalist, realistic, professional.

* Mood: Efficient, productive, sophisticated, user-friendly.

* Aspect Ratio: 4:5 or 1:1, ideal for Instagram and LinkedIn.

  • Keywords/Tags: #PantheraTechProduct #UIUX #TechGadget #Productivity #ModernWorkspace #SeamlessExperience #DigitalTools #CleanDesign #InnovationInAction #WorkSmart

3. Lifestyle Image: "Empowered Creativity"

  • Purpose: To showcase an individual thriving and being creative, empowered by PantheraTech's solutions, appealing to a professional and creative audience.
  • Detailed Prompt/Description:

A medium shot of a diverse young professional (e.g., a female graphic designer or male architect) intensely focused yet relaxed, working on a PantheraTech-branded device (e.g., a laptop or large monitor) in a bright, modern co-working space or a stylish home office. They are smiling subtly, engaged in their work. Creative elements like design sketches, a cup of coffee, or a plant are subtly visible in the background, which is softly blurred. The overall impression should be one of comfort, focus, and inspired productivity.

* Composition: Subject slightly off-center, leading lines towards the device.

* Lighting: Bright, inviting natural light, with soft fill light to eliminate harsh shadows.

* Color Palette: Warm, inviting neutrals with pops of color from the environment and screen.

* Style: Lifestyle photography, authentic, professional, aspirational.

* Mood: Empowered, creative, focused, successful, contemporary.

* Aspect Ratio: 1:1 or 4:5.

  • Keywords/Tags: #CreativePro #WorkLife #EmpoweredByTech #PantheraTechLife #ProductivityHacks #ModernProfessional #InnovationDriven #DigitalNomad #AchieveMore #Inspiration

4. Abstract Concept: "The Flow of Ideas"

  • Purpose: To visually represent the abstract concept of connectivity, data flow, and the seamless generation of ideas that PantheraTech facilitates.
  • Detailed Prompt/Description:

An abstract, artistic representation of interconnectedness and data flow. Imagine glowing, ethereal lines and particles in shades of electric blue, purple, and soft white, flowing dynamically across a dark, sophisticated background. The lines form intricate, organic networks that subtly hint at a brain or a complex digital system. There should be a sense of motion and energy, with some elements appearing sharper and others softer, creating depth.

* Composition: Dynamic and flowing, with a sense of movement across the frame.

* Lighting: Luminous glow from the lines and particles, contrasting with deep shadows.

* Color Palette: Predominantly electric blue, vibrant purple, and white, against a dark navy or charcoal background.

* Style: Abstract, futuristic, energetic, digital art.

* Mood: Dynamic, intelligent, interconnected, innovative, forward-thinking.

* Aspect Ratio: 1:1 or 9:16 (for stories).

  • Keywords/Tags: #DataFlow #Connectivity #Ideas #DigitalBrain #InnovationArt #PantheraTechVision #AbstractTech #FutureThinking #NetworkedWorld #SmartSolutions

5. Call to Action (CTA): "Ready to Transform?"

  • Purpose: To create a compelling visual that encourages users to take the next step, such as learning more or visiting the website.
  • Detailed Prompt/Description:

A visually striking, minimalist image featuring a prominent, glowing circular or hexagonal button-like element in PantheraTech's accent color (e.g., vibrant teal or purple). The element should be centered or slightly off-center on a clean, soft-gradient background (from a lighter blue/grey to a darker shade). Subtle, abstract geometric patterns or light rays emanate from behind the button, creating depth and drawing attention. No text on the button itself, as text will be overlaid in social media posts.

* Composition: Strong central focus on the CTA element.

* Lighting: Soft, ethereal glow from the CTA element and subtle background illumination.

* Color Palette: Gradient of deep blues/grays with a vibrant teal or purple accent.

* Style: Minimalist, clean, modern, graphic design-oriented.

* Mood: Inviting, clear, forward-moving, action-oriented.

* Aspect Ratio: 1:1, suitable for all platforms.

  • Keywords/Tags: #CallToAction #LearnMore #PantheraTech #ExploreNow #FutureIsHere #GetStarted #DigitalTransformation #InnovationJourney #NextStep #TechSolutions

General Image Guidelines

  • Brand Consistency: All images should align with PantheraTech's modern, sleek, and sophisticated brand identity.
  • Color Palette: Prioritize deep blues, sleek grays, whites, and strategic accents of vibrant teal or purple. Avoid clashing colors or overly busy compositions.
  • Resolution: Generate images in high resolution suitable for various social media platforms (minimum 1080px on the shortest side).
  • Text Overlay Consideration: Leave sufficient negative space or areas with lower visual complexity for potential text overlays (e.g., campaign slogans, hashtags, CTAs) by the social media manager.
  • Diversity & Inclusivity: When depicting people, ensure representation across various demographics.
  • Subtle Branding: Avoid overt logos within the generated images unless explicitly requested for specific campaign assets. The brand essence should be conveyed through style and aesthetic.

Next Steps

These detailed image concepts are ready for generation. Once generated, the images will be reviewed for alignment with the campaign goals and brand guidelines. We recommend generating a few variations for each concept to allow for selection of the most impactful visual.

social_media_campaign.md
Download as Markdown
Copy all content
Full output as text
Download ZIP
IDE-ready project ZIP
Copy share link
Permanent URL for this run
Get Embed Code
Embed this result on any website
Print / Save PDF
Use browser print dialog
\n\n\n"); var hasSrcMain=Object.keys(extracted).some(function(k){return k.indexOf("src/main")>=0;}); if(!hasSrcMain) zip.file(folder+"src/main."+ext,"import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n \n \n \n)\n"); var hasSrcApp=Object.keys(extracted).some(function(k){return k==="src/App."+ext||k==="App."+ext;}); if(!hasSrcApp) zip.file(folder+"src/App."+ext,"import React from 'react'\nimport './App.css'\n\nfunction App(){\n return(\n
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n
\n )\n}\nexport default App\n"); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e}\n.app{min-height:100vh;display:flex;flex-direction:column}\n.app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px}\nh1{font-size:2.5rem;font-weight:700}\n"); zip.file(folder+"src/App.css",""); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/pages/.gitkeep",""); zip.file(folder+"src/hooks/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\n## Open in IDE\nOpen the project folder in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Vue (Vite + Composition API + TypeScript) --- */ function buildVue(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "type": "module",\n "scripts": {\n "dev": "vite",\n "build": "vue-tsc -b && vite build",\n "preview": "vite preview"\n },\n "dependencies": {\n "vue": "^3.5.13",\n "vue-router": "^4.4.5",\n "pinia": "^2.3.0",\n "axios": "^1.7.9"\n },\n "devDependencies": {\n "@vitejs/plugin-vue": "^5.2.1",\n "typescript": "~5.7.3",\n "vite": "^6.0.5",\n "vue-tsc": "^2.2.0"\n }\n}\n'); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport { resolve } from 'path'\n\nexport default defineConfig({\n plugins: [vue()],\n resolve: { alias: { '@': resolve(__dirname,'src') } }\n})\n"); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]}\n'); zip.file(folder+"tsconfig.app.json",'{\n "compilerOptions":{\n "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],\n "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true,\n "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue",\n "strict":true,"paths":{"@/*":["./src/*"]}\n },\n "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"]\n}\n'); zip.file(folder+"env.d.ts","/// \n"); zip.file(folder+"index.html","\n\n\n \n \n "+slugTitle(pn)+"\n\n\n
\n \n\n\n"); var hasMain=Object.keys(extracted).some(function(k){return k==="src/main.ts"||k==="main.ts";}); if(!hasMain) zip.file(folder+"src/main.ts","import { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport App from './App.vue'\nimport './assets/main.css'\n\nconst app = createApp(App)\napp.use(createPinia())\napp.mount('#app')\n"); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue","\n\n\n\n\n"); zip.file(folder+"src/assets/main.css","*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,sans-serif;background:#fff;color:#213547}\n"); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/views/.gitkeep",""); zip.file(folder+"src/stores/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\nOpen in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Angular (v19 standalone) --- */ function buildAngular(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var sel=pn.replace(/_/g,"-"); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "scripts": {\n "ng": "ng",\n "start": "ng serve",\n "build": "ng build",\n "test": "ng test"\n },\n "dependencies": {\n "@angular/animations": "^19.0.0",\n "@angular/common": "^19.0.0",\n "@angular/compiler": "^19.0.0",\n "@angular/core": "^19.0.0",\n "@angular/forms": "^19.0.0",\n "@angular/platform-browser": "^19.0.0",\n "@angular/platform-browser-dynamic": "^19.0.0",\n "@angular/router": "^19.0.0",\n "rxjs": "~7.8.0",\n "tslib": "^2.3.0",\n "zone.js": "~0.15.0"\n },\n "devDependencies": {\n "@angular-devkit/build-angular": "^19.0.0",\n "@angular/cli": "^19.0.0",\n "@angular/compiler-cli": "^19.0.0",\n "typescript": "~5.6.0"\n }\n}\n'); zip.file(folder+"angular.json",'{\n "$schema": "./node_modules/@angular/cli/lib/config/schema.json",\n "version": 1,\n "newProjectRoot": "projects",\n "projects": {\n "'+pn+'": {\n "projectType": "application",\n "root": "",\n "sourceRoot": "src",\n "prefix": "app",\n "architect": {\n "build": {\n "builder": "@angular-devkit/build-angular:application",\n "options": {\n "outputPath": "dist/'+pn+'",\n "index": "src/index.html",\n "browser": "src/main.ts",\n "tsConfig": "tsconfig.app.json",\n "styles": ["src/styles.css"],\n "scripts": []\n }\n },\n "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"}\n }\n }\n }\n}\n'); zip.file(folder+"tsconfig.json",'{\n "compileOnSave": false,\n "compilerOptions": {"baseUrl":"./","outDir":"./dist/out-tsc","forceConsistentCasingInFileNames":true,"strict":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true,"paths":{"@/*":["src/*"]},"skipLibCheck":true,"esModuleInterop":true,"sourceMap":true,"declaration":false,"experimentalDecorators":true,"moduleResolution":"bundler","importHelpers":true,"target":"ES2022","module":"ES2022","useDefineForClassFields":false,"lib":["ES2022","dom"]},\n "references":[{"path":"./tsconfig.app.json"}]\n}\n'); zip.file(folder+"tsconfig.app.json",'{\n "extends":"./tsconfig.json",\n "compilerOptions":{"outDir":"./dist/out-tsc","types":[]},\n "files":["src/main.ts"],\n "include":["src/**/*.d.ts"]\n}\n'); zip.file(folder+"src/index.html","\n\n\n \n "+slugTitle(pn)+"\n \n \n \n\n\n \n\n\n"); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser';\nimport { appConfig } from './app/app.config';\nimport { AppComponent } from './app/app.component';\n\nbootstrapApplication(AppComponent, appConfig)\n .catch(err => console.error(err));\n"); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; }\nbody { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; }\n"); var hasComp=Object.keys(extracted).some(function(k){return k.indexOf("app.component")>=0;}); if(!hasComp){ zip.file(folder+"src/app/app.component.ts","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n standalone: true,\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.css'\n})\nexport class AppComponent {\n title = '"+pn+"';\n}\n"); zip.file(folder+"src/app/app.component.html","
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n \n
\n"); zip.file(folder+"src/app/app.component.css",".app-header{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}h1{font-size:2.5rem;font-weight:700;color:#6366f1}\n"); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { routes } from './app.routes';\n\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideZoneChangeDetection({ eventCoalescing: true }),\n provideRouter(routes)\n ]\n};\n"); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router';\n\nexport const routes: Routes = [];\n"); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nng serve\n# or: npm start\n\`\`\`\n\n## Build\n\`\`\`bash\nng build\n\`\`\`\n\nOpen in VS Code with Angular Language Service extension.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n.angular/\n"); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var reqMap={"numpy":"numpy","pandas":"pandas","sklearn":"scikit-learn","tensorflow":"tensorflow","torch":"torch","flask":"flask","fastapi":"fastapi","uvicorn":"uvicorn","requests":"requests","sqlalchemy":"sqlalchemy","pydantic":"pydantic","dotenv":"python-dotenv","PIL":"Pillow","cv2":"opencv-python","matplotlib":"matplotlib","seaborn":"seaborn","scipy":"scipy"}; var reqs=[]; Object.keys(reqMap).forEach(function(k){if(src.indexOf("import "+k)>=0||src.indexOf("from "+k)>=0)reqs.push(reqMap[k]);}); var reqsTxt=reqs.length?reqs.join("\n"):"# add dependencies here\n"; zip.file(folder+"main.py",src||"# "+title+"\n# Generated by PantheraHive BOS\n\nprint(title+\" loaded\")\n"); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n\`\`\`\n\n## Run\n\`\`\`bash\npython main.py\n\`\`\`\n"); zip.file(folder+".gitignore",".venv/\n__pycache__/\n*.pyc\n.env\n.DS_Store\n"); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var depMap={"mongoose":"^8.0.0","dotenv":"^16.4.5","axios":"^1.7.9","cors":"^2.8.5","bcryptjs":"^2.4.3","jsonwebtoken":"^9.0.2","socket.io":"^4.7.4","uuid":"^9.0.1","zod":"^3.22.4","express":"^4.18.2"}; var deps={}; Object.keys(depMap).forEach(function(k){if(src.indexOf(k)>=0)deps[k]=depMap[k];}); if(!deps["express"])deps["express"]="^4.18.2"; var pkgJson=JSON.stringify({"name":pn,"version":"1.0.0","main":"src/index.js","scripts":{"start":"node src/index.js","dev":"nodemon src/index.js"},"dependencies":deps,"devDependencies":{"nodemon":"^3.0.3"}},null,2)+"\n"; zip.file(folder+"package.json",pkgJson); var fallback="const express=require(\"express\");\nconst app=express();\napp.use(express.json());\n\napp.get(\"/\",(req,res)=>{\n res.json({message:\""+title+" API\"});\n});\n\nconst PORT=process.env.PORT||3000;\napp.listen(PORT,()=>console.log(\"Server on port \"+PORT));\n"; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000\n"); zip.file(folder+".gitignore","node_modules/\n.env\n.DS_Store\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\n\`\`\`\n\n## Run\n\`\`\`bash\nnpm run dev\n\`\`\`\n"); } /* --- Vanilla HTML --- */ function buildVanillaHtml(zip,folder,app,code){ var title=slugTitle(app); var isFullDoc=code.trim().toLowerCase().indexOf("=0||code.trim().toLowerCase().indexOf("=0; var indexHtml=isFullDoc?code:"\n\n\n\n\n"+title+"\n\n\n\n"+code+"\n\n\n\n"; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */\n*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e}\n"); zip.file(folder+"script.js","/* "+title+" — scripts */\n"); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Open\nDouble-click \`index.html\` in your browser.\n\nOr serve locally:\n\`\`\`bash\nnpx serve .\n# or\npython3 -m http.server 3000\n\`\`\`\n"); zip.file(folder+".gitignore",".DS_Store\nnode_modules/\n.env\n"); } /* ===== MAIN ===== */ var sc=document.createElement("script"); sc.src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"; sc.onerror=function(){ if(lbl)lbl.textContent="Download ZIP"; alert("JSZip load failed — check connection."); }; sc.onload=function(){ var zip=new JSZip(); var base=(_phFname||"output").replace(/\.[^.]+$/,""); var app=base.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"my_app"; var folder=app+"/"; var vc=document.getElementById("panel-content"); var panelTxt=vc?(vc.innerText||vc.textContent||""):""; var lang=detectLang(_phCode,panelTxt); if(_phIsHtml){ buildVanillaHtml(zip,folder,app,_phCode); } else if(lang==="flutter"){ buildFlutter(zip,folder,app,_phCode,panelTxt); } else if(lang==="react-native"){ buildReactNative(zip,folder,app,_phCode,panelTxt); } else if(lang==="swift"){ buildSwift(zip,folder,app,_phCode,panelTxt); } else if(lang==="kotlin"){ buildKotlin(zip,folder,app,_phCode,panelTxt); } else if(lang==="react"){ buildReact(zip,folder,app,_phCode,panelTxt); } else if(lang==="vue"){ buildVue(zip,folder,app,_phCode,panelTxt); } else if(lang==="angular"){ buildAngular(zip,folder,app,_phCode,panelTxt); } else if(lang==="python"){ buildPython(zip,folder,app,_phCode); } else if(lang==="node"){ buildNode(zip,folder,app,_phCode); } else { /* Document/content workflow */ var title=app.replace(/_/g," "); var md=_phAll||_phCode||panelTxt||"No content"; zip.file(folder+app+".md",md); var h=""+title+""; h+="

"+title+"

"; var hc=md.replace(/&/g,"&").replace(//g,">"); hc=hc.replace(/^### (.+)$/gm,"

$1

"); hc=hc.replace(/^## (.+)$/gm,"

$1

"); hc=hc.replace(/^# (.+)$/gm,"

$1

"); hc=hc.replace(/\*\*(.+?)\*\*/g,"$1"); hc=hc.replace(/\n{2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\nFiles:\n- "+app+".md (Markdown)\n- "+app+".html (styled HTML)\n"); } zip.generateAsync({type:"blob"}).then(function(blob){ var a=document.createElement("a"); a.href=URL.createObjectURL(blob); a.download=app+".zip"; a.click(); URL.revokeObjectURL(a.href); if(lbl)lbl.textContent="Download ZIP"; }); }; document.head.appendChild(sc); } function phShare(){navigator.clipboard.writeText(window.location.href).then(function(){var el=document.getElementById("ph-share-lbl");if(el){el.textContent="Link copied!";setTimeout(function(){el.textContent="Copy share link";},2500);}});}function phEmbed(){var runId=window.location.pathname.split("/").pop().replace(".html","");var embedUrl="https://pantherahive.com/embed/"+runId;var code='';navigator.clipboard.writeText(code).then(function(){var el=document.getElementById("ph-embed-lbl");if(el){el.textContent="Embed code copied!";setTimeout(function(){el.textContent="Get Embed Code";},2500);}});}