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

Social Media Campaign: Image Generation Plan (sharper4k)

This document outlines the detailed plan for generating compelling visual content for your social media campaign, leveraging the sharper4k image generation tool. Our goal is to create high-quality, engaging images that resonate with your target audience and effectively communicate your campaign message.


1. Campaign Context & Visual Strategy Overview

Campaign Theme: "Elevate Your Everyday: Experience [Product/Service Name] - Smarter, Healthier, Happier."

(Note: For this example, we'll assume the campaign is for a new, innovative, eco-friendly smart home device called "AuraFlow" - a sleek air purifier and humidifier.)

Overall Visual Strategy:

The visual strategy for this campaign will focus on modernity, wellness, sophistication, and environmental consciousness. Images will evoke feelings of calm, comfort, health, and effortless luxury. We aim for a clean, aspirational aesthetic that showcases the product's benefits and integrates seamlessly into a desirable lifestyle.

Key Visual Elements & Mood:


2. General Image Generation Guidelines (sharper4k)

To ensure consistency and quality across all generated images, please adhere to the following guidelines:


3. Detailed Image Concepts & AI Prompt Suggestions

Here are the specific image concepts for the campaign, complete with detailed descriptions, suggested AI prompts, and intended use cases.


Image Concept 1: The Hero Product Shot - "Sleek Integration"

* AuraFlow device: Prominently featured, clean design, subtle interface glow.

* Background: Blurred, upscale, minimalist interior (light wood, white walls, soft textures).

* Lighting: Bright, natural, soft, diffused.

* Colors: Predominantly whites, creams, light grays, with a touch of natural green from a plant.

text • 566 chars
    "A sleek, futuristic, matte white and silver smart air purifier (AuraFlow) with a subtle, soft blue LED glow, elegantly placed on a light oak minimalist side table in a bright, modern, minimalist living room. Natural sunlight streams through a large window, creating soft shadows. A small, healthy green plant (like a snake plant) sits beside it. The background is softly blurred, showing a clean, upscale interior with white walls and subtle textures. High-definition, realistic photography, soft focus, aspirational, professional product shot, sharper4k."
    
Sandboxed live preview

This output details a comprehensive 4-week social media content calendar for your campaign, focusing on the AI-powered productivity tool, "FlowGenius." This plan is designed to increase brand awareness, drive engagement, and encourage sign-ups/downloads by showcasing FlowGenius's unique value proposition.


Social Media Campaign: Content Calendar - FlowGenius

Workflow Step: socialmedia → generate_content_calendar

Campaign Title: Unlock Your Genius with FlowGenius: Streamline Your Workflow. Unleash Your Potential.

Campaign Duration: 4 Weeks

1. Campaign Overview

This content calendar outlines a strategic 4-week social media campaign for "FlowGenius," an AI-powered productivity assistant.

  • Core Objective:

* Generate brand awareness and excitement for FlowGenius.

* Educate the target audience about key features and benefits.

* Drive traffic to the FlowGenius website for sign-ups, demos, or downloads.

* Establish FlowGenius as a thought leader in productivity and AI innovation.

  • Target Audience: Professionals, entrepreneurs, small business owners, remote teams, and anyone seeking to optimize their time, enhance focus, and improve overall productivity.
  • Key Platforms: LinkedIn, Instagram, X (Twitter), Facebook
  • General Tone & Voice: Professional, insightful, empowering, solution-oriented, and subtly innovative.
  • Key Content Pillars:

1. Product Features & Benefits: Highlighting what FlowGenius does and how it solves pain points.

2. Productivity Tips & Tricks: General advice, positioning FlowGenius as an ultimate solution.

3. User Testimonials/Success Stories: Building trust and social proof.

4. Thought Leadership: Industry insights, future of work, AI's role in productivity.

5. Engagement & Q&A: Interactive content to foster community.

2. General Campaign Guidelines

  • Adaptation is Key: While content is provided, always adapt specific phrasing, visual styles, and hashtag usage to each platform's best practices and character limits.
  • Visual-First Approach: High-quality, engaging visuals (graphics, short videos, GIFs) are crucial for every post.
  • Consistent Branding: Ensure all visuals and copy align with the FlowGenius brand identity (colors, fonts, tone).
  • Community Engagement: Actively monitor comments, messages, and mentions. Respond promptly and authentically.
  • Link Tracking: Use UTM parameters for all links to accurately track traffic and conversions from each platform.
  • A/B Testing: Experiment with different headlines, visuals, and CTAs to see what resonates best with your audience.

3. Social Media Content Calendar (4 Weeks)

This calendar provides detailed content ideas, headlines, body text, visual descriptions, calls to action, and hashtags for a strategic mix of posts across key platforms.


Week 1: Introduction & Problem/Solution Focus

Weekly Theme: Introducing FlowGenius as the ultimate solution to modern productivity challenges (distraction, overwhelm, time management).

| Date (Example) | Platform(s) | Content Type | Content Pillar | Headline/Caption (Ready for Publishing) | Visual Description | Call to Action (CTA) | Suggested Hashtags |

| :------------- | :---------- | :----------- | :------------- | :-------------------------------------- | :----------------- | :------------------- | :----------------- |

| Day 1 | All | Image/Short Video | Product Launch/Problem-Solution | LinkedIn/Facebook: "Tired of Juggling Tasks? Introducing FlowGenius: Your AI-Powered Productivity Partner!" <br> Body: "In today's fast-paced world, staying focused and productive is a constant challenge. We're thrilled to announce FlowGenius, the revolutionary AI assistant designed to streamline your workflow, minimize distractions, and unlock your true potential. Say goodbye to overwhelm and hello to effortless productivity. Discover how FlowGenius can transform your workday." <br> Instagram: "👋 Meet FlowGenius! Your new secret weapon for ultimate productivity." <br> Body: "Ever wish you had an AI brain to sort your tasks and banish distractions? ✨ Wish granted! Introducing FlowGenius – the smart way to work, focus, and achieve more. Get ready to transform your day! #LinkInBio to learn more!" <br> X: "Struggling with focus? Meet #FlowGenius – your new AI productivity partner! 🚀 Streamline tasks, beat distractions, unleash potential. #AI #Productivity" | Sleek graphic with FlowGenius logo, tagline, and a visual representation of a streamlined workflow (e.g., abstract gears turning smoothly, a person looking focused at a clean desk). | "Learn More & Get Started Today!" (Link to website) | #FlowGenius #AIPowered #ProductivityTools #WorkSmarter #FutureOfWork #TechLaunch #Innovation |

| Day 3 | LinkedIn, Facebook | Text Post with Graphic | Productivity Tips | "The Hidden Cost of Multitasking: Why Focus is Your Superpower" <br> Body: "We often believe multitasking makes us more efficient, but studies show it can reduce productivity by up to 40%. True success comes from deep focus. FlowGenius helps you achieve this by intelligently prioritizing tasks and minimizing distractions. What's your biggest struggle with focus?" | Infographic highlighting stats on multitasking vs. single-tasking, or a serene image of a person deeply focused. | "Share your biggest productivity challenge in the comments!" / "Read our latest blog post on deep work." (Link) | #ProductivityTips #DeepWork #Focus #TimeManagement #WorkLifeBalance #FlowGeniusInsights |

| Day 5 | Instagram, X | Reel/Short Video | Product Feature: Distraction Blocker | Instagram: "🤯 Ever get lost in endless tabs? FlowGenius's AI-powered distraction blocker is here to save your day (and your sanity)! See how it works!" <br> X: "Beat the scroll! 🛑 FlowGenius's intelligent distraction blocker keeps you focused on what matters. Say goodbye to digital noise. #ProductivityHack" | A quick, engaging video demonstrating the distraction blocker in action (e.g., tabs closing, notifications silenced, user focused). | "Watch the full demo!" (Link in Bio/Website) | #FlowGeniusFeatures #DistractionFree #FocusMode #TechForProductivity #AIHelper #WorkSmart |


Week 2: Deep Dive into Features & Benefits

Weekly Theme: Showcasing specific, powerful features of FlowGenius and their direct benefits to the user.

| Date (Example) | Platform(s) | Content Type | Content Pillar | Headline/Caption (Ready for Publishing) | Visual Description | Call to Action (CTA) | Suggested Hashtags |

| :------------- | :---------- | :----------- | :------------- | :-------------------------------------- | :----------------- | :------------------- | :----------------- |

| Day 8 | LinkedIn, Facebook | Carousel Post | Product Feature: Smart Task Prioritization | "Beyond To-Do Lists: How FlowGenius Intelligently Prioritizes Your Day" <br> Body: "Stop guessing what's important. FlowGenius uses AI to analyze your tasks, deadlines, and work patterns, suggesting the optimal sequence for maximum impact. Swipe to see how it transforms your task management!" | Carousel: 1st slide: Catchy title. Subsequent slides: Screenshots/graphics illustrating the AI prioritization interface, showing tasks being reordered, deadlines highlighted, etc. | "Discover intelligent task management. Try FlowGenius free!" (Link) | #TaskManagement #AIPriority #SmartWorkflow #Efficiency #ProductivitySoftware #FlowGeniusBenefits |

| Day 10 | X, Instagram | Infographic/Quote Graphic | Productivity Tips | X: "Your brain isn't a storage unit, it's a processing unit. 🧠 Offload tasks, use tools like FlowGenius, and free up mental space for creativity. #Mindfulness #ProductivityQuote" <br> Instagram: "✨ 'Your mind is for having ideas, not holding them.' - David Allen. We couldn't agree more! FlowGenius helps you clear the mental clutter so you can innovate. What's your favorite productivity quote?" | A visually appealing quote graphic with a minimalist design, featuring the quote. | "What helps you clear your mind? Share below!" | #ProductivityQuotes #MentalClarity #Innovation #BrainPower #FlowGeniusTips #WorkSmarterLiveBetter |

| Day 12 | LinkedIn | Blog Post Link | Thought Leadership | "The Rise of AI in Productivity: How Smart Tools Are Reshaping the Modern Workplace" <br> Body: "AI isn't just about automation; it's about augmentation. Explore how artificial intelligence, exemplified by tools like FlowGenius, is empowering professionals to achieve unprecedented levels of efficiency and strategic focus. Dive into our latest insights." | High-quality header image from the blog post, showing a person interacting with a smart interface or a futuristic workspace. | "Read the full article on our blog." (Link to blog) | #AIInWork #FutureOfWork #DigitalTransformation #ThoughtLeadership #FlowGeniusInsights #WorkplaceInnovation |


Week 3: Social Proof & User Stories

Weekly Theme: Building trust and credibility through testimonials, success stories, and demonstrating real-world impact.

| Date (Example) | Platform(s) | Content Type | Content Pillar | Headline/Caption (Ready for Publishing) | Visual Description | Call to Action (CTA) | Suggested Hashtags |

| :------------- | :---------- | :----------- | :------------- | :-------------------------------------- | :----------------- | :------------------- | :----------------- |

| Day 15 | All | Testimonial Graphic/Video | User Testimonials |


4. Technical Specifications & Deliverables

  • File Format: PNG (for transparency and quality) or High-Quality JPG.
  • Color Profile: sRGB.
  • Naming Convention: [CampaignName]-[ConceptNumber]-[Description].png (e.g., AuraFlow-01-HeroShot.png)
  • Deliverables: A minimum of 2-3 variations for each image concept to allow for selection and A/B testing.

5. Review & Iteration Process

  1. Initial Generation: We will use the provided prompts and guidelines to generate the first batch of images.
  2. Client Review: The generated images will be presented to you for review. Please provide feedback on:

* Alignment with campaign vision and brand identity.

* Visual appeal and impact.

* Specific elements you like or wish to change.

* Any technical issues (e.g., resolution, artifacts).

  1. Refinement: Based on your feedback, we will make necessary adjustments and generate revised versions. This iterative process ensures the final images perfectly meet your campaign needs.

This detailed plan will guide the sharper4k image generation process, ensuring we produce impactful and effective visuals for your "Social Media Campaign." We look forward to bringing your vision to life!

social_media_campaign.txt
Download source file
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);}});}