Social Media Campaign
Run ID: 69cc83a83e7fb09ff16a28c32026-04-01Marketing
PantheraHive BOS
BOS Dashboard

Plan and create content for a complete social media campaign

Social Media Campaign: Content Calendar - Evergreen Home "Harvest Collection" Launch

Executive Summary:

This document outlines a comprehensive 4-week social media content calendar for Evergreen Home's "Harvest Collection" launch. The strategy focuses on building anticipation, educating the audience about the new sustainable kitchenware line, fostering engagement, and driving conversions. Each post is crafted with professional, engaging content, including headlines, body text, and clear calls to action, tailored for key platforms. This calendar provides a ready-to-publish framework to maximize reach and impact for the campaign.


1. Campaign Overview

  • Campaign Name: Evergreen Home: Harvest Collection Launch
  • Overall Objective: To successfully launch the new "Harvest Collection" of sustainable kitchenware, generate brand awareness, drive traffic to the product pages, and achieve initial sales/pre-orders.
  • Target Audience:

* Environmentally conscious consumers (25-55)

* Home cooks and culinary enthusiasts

* Individuals interested in sustainable living and ethical consumption

* Home decor and lifestyle influencers

  • Key Message Pillars:

1. Sustainable Craftsmanship: Emphasizing eco-friendly materials, ethical production, and durability.

2. Functional Beauty: Highlighting the aesthetic appeal and practical utility of the products.

3. Healthy Living: Connecting sustainable kitchenware to a healthier home and lifestyle.

4. Community & Connection: Fostering a sense of shared values around sustainability.

  • Key Performance Indicators (KPIs):

* Website Traffic (New Visitors to Product Pages)

* Engagement Rate (Likes, Comments, Shares, Saves)

* Reach & Impressions

* Follower Growth

* Click-Through Rate (CTR) to Product Pages

* Conversion Rate (Pre-orders/Sales)


2. Platform Strategy

Each platform will be utilized strategically to leverage its unique strengths:

  • Instagram (Feed, Stories, Reels):

* Focus: Visual storytelling, product aesthetics, lifestyle integration, behind-the-scenes, short video content, influencer collaborations.

* Content: High-quality photos, short engaging reels demonstrating product use, interactive stories (polls, Q&A), carousel posts for product details.

  • Facebook (Posts, Stories, Groups, Ads):

* Focus: Community building, detailed information, blog post sharing, customer testimonials, event promotion (e.g., live Q&A), targeted advertising.

* Content: Engaging questions, longer-form captions, links to blog posts, customer spotlights, event announcements.

  • Twitter (Tweets, Threads):

* Focus: Real-time updates, quick facts, sustainability tips, engaging with relevant conversations, linking to articles/news.

* Content: Short, impactful statements, questions, links to product pages, retweeting relevant eco-news.

  • Pinterest (Pins, Idea Pins):

* Focus: Inspiration, product discovery, lifestyle mood boards, linking directly to product pages.

* Content: Beautiful product shots, lifestyle images, infographics on sustainability, recipe ideas using the kitchenware.


3. Content Calendar - Detailed 4-Week Plan

This calendar provides a sample of 4 weeks. Dates are placeholders (Day 1, Day 2, etc.) and should be adjusted to align with the actual launch schedule.


Week 1: The Tease & Build-Up (Building Intrigue & Brand Values)

Theme: Hinting at something new, emphasizing Evergreen Home's commitment to sustainability and craftsmanship without revealing the full product line.

| Day | Platform | Content Type | Headline/Caption Hook | Body Text

sharper4k Output

Social Media Campaign: Image Generation Specifications

This document outlines the detailed specifications and creative briefs for image generation, forming the visual core of your social media campaign. The goal is to produce high-quality, engaging, and brand-consistent visuals that resonate with your target audience and support your campaign objectives.


1. Campaign & Brand Visual Overview

Campaign Objective: To launch [_Insert Specific Product/Service Name Here, e.g., "EcoCharge Portable Solar Charger"_], driving brand awareness, engagement, and initial pre-orders/sales by highlighting its innovative features, sustainability benefits, and seamless user experience.

Target Audience: Environmentally conscious individuals, tech enthusiasts, outdoor adventurers, and early adopters aged 25-45, primarily active on Instagram, Facebook, and Twitter.

Brand Aesthetic & Tone:

  • Modern & Clean: Sleek design, uncluttered compositions.
  • Aspirational & Empowering: Showcasing users living their best lives, making positive choices.
  • Authentic & Relatable: Avoiding overly staged or artificial scenarios.
  • Sustainable & Eco-friendly: Emphasizing natural elements, responsible consumption.
  • Optimistic & Forward-thinking: Highlighting innovation and positive impact.

Core Visual Elements:

  • Color Palette: Primarily natural tones (greens, blues, earthy browns), balanced with clean whites, grays, and a touch of [_Insert Brand Accent Color, e.g., "vibrant teal"_] for highlighting key features.
  • Lighting: Often natural, soft, and inviting, or bright and crisp for product showcases.
  • Composition: Dynamic yet balanced, often utilizing rule of thirds, leading lines, and negative space.
  • Focus: Clear subject matter, minimal distractions.

2. General Image Generation Requirements

To ensure consistency and platform optimization, all generated images must adhere to the following technical and creative standards:

  • Resolution: Minimum 2000px on the shortest side (e.g., 2000x2000 for square, 2000x3000 for portrait). Aim for 300 DPI for potential print or high-res display use.
  • Aspect Ratios:

* Square (1:1): Ideal for Instagram feed, versatile across platforms.

* Vertical (4:5 or 9:16): Excellent for Instagram feed/Reels covers, Stories, Pinterest.

* Horizontal (16:9 or 3:2): Suitable for Facebook posts, Twitter, blog headers, website banners.

  • File Format: High-quality JPG or PNG (PNG preferred for images with text or sharp edges).
  • Brand Integration: Ensure the [_Insert Product/Service Name_] is clearly visible, identifiable, and presented in a positive light. Subtle branding elements (e.g., logo on product, consistent color scheme) should be present.
  • Diversity & Inclusivity: Images should feature diverse individuals in terms of age, gender, ethnicity, and lifestyle where applicable.
  • No Text Overlays (Initial Generation): Generate images without text overlays. Text will be added by the design team during the content creation phase to allow for flexibility and localization.

3. Content Pillars & Detailed Image Prompts

Below are the core content pillars for your campaign, each with specific image briefs and actionable prompts for the sharper4k image generation tool.

Pillar 1: Product Showcase & Innovation

Objective: Highlight the sleek design, key features, and innovative technology of [_Insert Product Name_].

Visual Theme: Clean, modern, high-tech, precise.

Prompt Examples:

  1. Subject: A high-fidelity, studio-quality product shot of the [_Insert Product Name, e.g., "EcoCharge Portable Solar Charger"_] in its primary color (e.g., "matte charcoal grey"). The device is positioned at a slight angle, showcasing its sleek profile and the texture of its sustainable materials.

* Style: Hyper-realistic, product photography.

* Composition: Centered, with ample negative space.

* Lighting: Soft, diffused studio lighting creating subtle shadows to emphasize form.

* Background: Seamless, minimalist light grey or white background.

* Mood: Sophisticated, precise, innovative.

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

* Prompt Keywords: high-fidelity product photography, EcoCharge Portable Solar Charger, matte charcoal grey, sleek design, sustainable materials texture, studio lighting, soft shadows, minimalist background, precise, innovative, 300 DPI

  1. Subject: A close-up shot highlighting a specific innovative feature of the [_Insert Product Name, e.g., "EcoCharge's integrated flexible solar panel"_] or its unique charging ports. Show the detail and quality of the engineering.

* Style: Macro photography, highly detailed.

* Composition: Tight crop, focusing on the feature.

* Lighting: Bright, crisp directional light to emphasize texture and detail.

* Background: Shallow depth of field, blurred background matching the product's environment (e.g., a modern desk, natural wood surface).

* Mood: Detailed, advanced, quality.

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

* Prompt Keywords: macro photography, EcoCharge integrated flexible solar panel, intricate detail, high-quality engineering, crisp directional lighting, shallow depth of field, modern desk background, advanced technology, professional, 300 DPI

Pillar 2: Lifestyle & User Experience

Objective: Depict individuals seamlessly integrating [_Insert Product Name_] into their daily lives and adventures, emphasizing convenience, freedom, and enjoyment.

Visual Theme: Aspirational, authentic, active, natural.

Prompt Examples:

  1. Subject: A diverse group of friends (2-3 people, mixed genders, diverse ethnicities) enjoying a sunny picnic in a lush park. One person is casually using the [_Insert Product Name, e.g., "EcoCharge Portable Solar Charger"_] to charge a smartphone, with the device subtly placed on a picnic blanket or nearby rock, hinting at its outdoor utility.

* Style: Candid, realistic lifestyle photography.

* Composition: Natural, dynamic grouping, showing interaction and relaxation.

* Lighting: Warm, natural sunlight, slightly golden hour effect.

* Background: Blurred green trees, blue sky, soft park environment.

* Mood: Joyful, relaxed, connected, sustainable living.

* Aspect Ratio: 4:5 or 16:9.

* Prompt Keywords: diverse friends, sunny park picnic, EcoCharge Portable Solar Charger, casual smartphone charging, warm natural sunlight, golden hour, lush green park background, joyful, relaxed, sustainable lifestyle, authentic, 300 DPI

  1. Subject: A young professional (e.g., female, 30s) working remotely from a stylish co-working space or modern cafe. The [_Insert Product Name_] is visibly but unobtrusively powering her laptop or tablet, blending into the sophisticated work environment.

* Style: Modern, clean, professional lifestyle.

* Composition: Over-the-shoulder shot or slightly wide, showing the environment and user.

* Lighting: Bright, even indoor lighting, possibly with natural light from a window.

* Background: Blurred modern co-working space, minimalist decor, plants.

* Mood: Productive, efficient, modern, flexible.

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

* Prompt Keywords: young professional, remote work, modern cafe, stylish co-working space, EcoCharge Portable Solar Charger powering laptop, bright even lighting, minimalist decor, productive, efficient, modern lifestyle, 300 DPI

Pillar 3: Sustainability & Impact

Objective: Visually communicate the environmental benefits and eco-friendly nature of [_Insert Product Name_].

Visual Theme: Natural, responsible, impactful, hopeful.

Prompt Examples:

  1. Subject: The [_Insert Product Name, e.g., "EcoCharge Portable Solar Charger"_] placed gently on a bed of vibrant green moss or smooth river stones in a pristine natural environment (e.g., next to a clear stream or amidst forest foliage). Sunbeams are subtly catching its surface.

* Style: Nature-inspired, serene, symbolic.

* Composition: Close-up, emphasizing the product's connection to nature.

* Lighting: Soft, dappled sunlight filtering through leaves.

* Background: Shallow depth of field, blurred natural elements (water, trees, rocks).

* Mood: Peaceful, harmonious, eco-conscious, natural.

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

* Prompt Keywords: EcoCharge Portable Solar Charger, vibrant green moss, smooth river stones, pristine natural environment, clear stream, dappled sunlight, shallow depth of field, eco-conscious, harmonious, nature connection, 300 DPI

  1. Subject: A stylized, clean visual representing the positive environmental impact. This could be a subtly integrated graphic element (e.g., a leaf icon or a clean energy symbol) emanating from the [_Insert Product Name_], or a visual metaphor.

* Style: Minimalist, symbolic, graphic design aesthetic.

* Composition: Product centered, with abstract elements around it.

* Lighting: Bright, clean, even lighting.

* Background: Solid, calming background color (e.g., soft sky blue or gentle green).

* Mood: Hopeful, impactful, clear, innovative sustainability.

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

* Prompt Keywords: EcoCharge Portable Solar Charger, minimalist graphic design, subtle leaf icon emanating, clean energy symbol, solid sky blue background, hopeful, impactful, innovative sustainability, symbolic, 300 DPI


4. Next Steps & Quality Assurance

Once these images are generated using sharper4k, the following steps will be taken:

  1. Initial Review: A preliminary review will be conducted to ensure images meet technical specifications and align with the general creative brief.
  2. Selection & Refinement: The best performing images from each prompt will be selected. Minor adjustments (e.g., color correction, cropping) may be applied.
  3. Text Overlay & Branding: The design team will add campaign-specific text, calls-to-action, and subtle branding elements to prepare images for various social media platforms.
  4. A/B Testing (Optional but Recommended): For key campaign phases, different visual variations may be tested to optimize engagement.

This detailed brief provides the foundation for generating compelling visuals that will power your social media campaign. We look forward to seeing the creative output from sharper4k!

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
"); 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' import ReactDOM from 'react-dom/client' import App from './App' import './index.css' ReactDOM.createRoot(document.getElementById('root')!).render( ) "); 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' import './App.css' function App(){ return(

"+slugTitle(pn)+"

Built with PantheraHive BOS

) } export default App "); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box} body{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e} .app{min-height:100vh;display:flex;flex-direction:column} .app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px} h1{font-size:2.5rem;font-weight:700} "); 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)+" Generated by PantheraHive BOS. ## Setup ```bash npm install npm run dev ``` ## Build ```bash npm run build ``` ## Open in IDE Open the project folder in VS Code or WebStorm. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local "); } /* --- 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",'{ "name": "'+pn+'", "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vue-tsc -b && vite build", "preview": "vite preview" }, "dependencies": { "vue": "^3.5.13", "vue-router": "^4.4.5", "pinia": "^2.3.0", "axios": "^1.7.9" }, "devDependencies": { "@vitejs/plugin-vue": "^5.2.1", "typescript": "~5.7.3", "vite": "^6.0.5", "vue-tsc": "^2.2.0" } } '); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import { resolve } from 'path' export default defineConfig({ plugins: [vue()], resolve: { alias: { '@': resolve(__dirname,'src') } } }) "); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]} '); zip.file(folder+"tsconfig.app.json",'{ "compilerOptions":{ "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"], "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true, "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue", "strict":true,"paths":{"@/*":["./src/*"]} }, "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"] } '); zip.file(folder+"env.d.ts","/// "); zip.file(folder+"index.html"," "+slugTitle(pn)+"
"); 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' import { createPinia } from 'pinia' import App from './App.vue' import './assets/main.css' const app = createApp(App) app.use(createPinia()) app.mount('#app') "); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue"," "); 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} "); 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)+" Generated by PantheraHive BOS. ## Setup ```bash npm install npm run dev ``` ## Build ```bash npm run build ``` Open in VS Code or WebStorm. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local "); } /* --- 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",'{ "name": "'+pn+'", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test" }, "dependencies": { "@angular/animations": "^19.0.0", "@angular/common": "^19.0.0", "@angular/compiler": "^19.0.0", "@angular/core": "^19.0.0", "@angular/forms": "^19.0.0", "@angular/platform-browser": "^19.0.0", "@angular/platform-browser-dynamic": "^19.0.0", "@angular/router": "^19.0.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" }, "devDependencies": { "@angular-devkit/build-angular": "^19.0.0", "@angular/cli": "^19.0.0", "@angular/compiler-cli": "^19.0.0", "typescript": "~5.6.0" } } '); zip.file(folder+"angular.json",'{ "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", "projects": { "'+pn+'": { "projectType": "application", "root": "", "sourceRoot": "src", "prefix": "app", "architect": { "build": { "builder": "@angular-devkit/build-angular:application", "options": { "outputPath": "dist/'+pn+'", "index": "src/index.html", "browser": "src/main.ts", "tsConfig": "tsconfig.app.json", "styles": ["src/styles.css"], "scripts": [] } }, "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"} } } } } '); zip.file(folder+"tsconfig.json",'{ "compileOnSave": false, "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"]}, "references":[{"path":"./tsconfig.app.json"}] } '); zip.file(folder+"tsconfig.app.json",'{ "extends":"./tsconfig.json", "compilerOptions":{"outDir":"./dist/out-tsc","types":[]}, "files":["src/main.ts"], "include":["src/**/*.d.ts"] } '); zip.file(folder+"src/index.html"," "+slugTitle(pn)+" "); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser'; import { appConfig } from './app/app.config'; import { AppComponent } from './app/app.component'; bootstrapApplication(AppComponent, appConfig) .catch(err => console.error(err)); "); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; } "); 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'; import { RouterOutlet } from '@angular/router'; @Component({ selector: 'app-root', standalone: true, imports: [RouterOutlet], templateUrl: './app.component.html', styleUrl: './app.component.css' }) export class AppComponent { title = '"+pn+"'; } "); zip.file(folder+"src/app/app.component.html","

"+slugTitle(pn)+"

Built with PantheraHive BOS

"); 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} "); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; export const appConfig: ApplicationConfig = { providers: [ provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes) ] }; "); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router'; export const routes: Routes = []; "); 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)+" Generated by PantheraHive BOS. ## Setup ```bash npm install ng serve # or: npm start ``` ## Build ```bash ng build ``` Open in VS Code with Angular Language Service extension. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local .angular/ "); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^```[w]* ?/m,"").replace(/ ?```$/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(" "):"# add dependencies here "; zip.file(folder+"main.py",src||"# "+title+" # Generated by PantheraHive BOS print(title+" loaded") "); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables "); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Setup ```bash python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` ## Run ```bash python main.py ``` "); zip.file(folder+".gitignore",".venv/ __pycache__/ *.pyc .env .DS_Store "); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^```[w]* ?/m,"").replace(/ ?```$/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)+" "; zip.file(folder+"package.json",pkgJson); var fallback="const express=require("express"); const app=express(); app.use(express.json()); app.get("/",(req,res)=>{ res.json({message:""+title+" API"}); }); const PORT=process.env.PORT||3000; app.listen(PORT,()=>console.log("Server on port "+PORT)); "; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000 "); zip.file(folder+".gitignore","node_modules/ .env .DS_Store "); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Setup ```bash npm install ``` ## Run ```bash npm run dev ``` "); } /* --- 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:" "+title+" "+code+" "; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */ *{margin:0;padding:0;box-sizing:border-box} body{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e} "); zip.file(folder+"script.js","/* "+title+" — scripts */ "); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Open Double-click `index.html` in your browser. Or serve locally: ```bash npx serve . # or python3 -m http.server 3000 ``` "); zip.file(folder+".gitignore",".DS_Store node_modules/ .env "); } /* ===== 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(/ {2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. Files: - "+app+".md (Markdown) - "+app+".html (styled HTML) "); } 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);}});}