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

Plan and create content for a complete social media campaign

Social Media Campaign: GreenHaven Living Launch - Content Calendar

This document outlines a comprehensive, detailed content calendar for the "GreenHaven Living" social media launch campaign. This calendar is designed to build brand awareness, educate the target audience on sustainable living, showcase our eco-friendly product line, and drive initial engagement and sales.


Campaign Overview

  • Campaign Title: GreenHaven Living: Sustainable Style for a Brighter Home
  • Campaign Goal: To successfully launch the "GreenHaven Living" brand and its inaugural line of eco-friendly home goods. Objectives include:

* Generating significant brand awareness and recognition.

* Educating the audience on the benefits of sustainable living and our product's role.

* Driving traffic to the GreenHaven Living website/e-commerce store.

* Achieving initial sales targets and building a loyal customer base.

* Fostering a community around sustainable living practices.

  • Target Audience:

* Environmentally conscious consumers (25-45 years old)

* Homeowners and renters interested in home decor and lifestyle upgrades.

* Individuals seeking high-quality, durable, and ethically produced goods.

* People who value transparency in product sourcing and manufacturing.

  • Key Themes/Content Pillars:

1. Sustainability & Eco-friendliness: Highlighting natural materials, ethical sourcing, zero-waste principles, and positive environmental impact.

2. Product Showcase & Benefits: Detailed features, practical uses, aesthetic appeal, and long-term value of GreenHaven Living products.

3. Lifestyle & Inspiration: Demonstrating how GreenHaven Living products integrate into a beautiful, mindful, and modern home.

4. Community & Education: Engaging the audience with tips for sustainable living, behind-the-scenes content, and interactive discussions.

  • Platform Strategy:

* Instagram: Visual storytelling, product showcases, lifestyle inspiration, Reels (short videos), Stories (interactive content, polls, Q&A). Ideal for brand building and product discovery.

* Facebook: Community building, longer-form educational content, event promotion (e.g., live Q&A), sharing blog posts, engaging discussions.

* Pinterest: Visual discovery, product pinning, mood boards, DIY eco-friendly tips, driving traffic to product pages and blog.

* Twitter: News updates, quick tips, engaging with environmental conversations, responding to trends, driving traffic to blog/website with concise messages.


Content Calendar: GreenHaven Living Launch (2-Week Schedule)

Campaign Start Date: Monday, October 23rd, 2023


Week 1: Build Anticipation & Introduce the Brand

Day 1: Monday, October 23rd - "The GreenHaven Living Awaits"

  • Post 1:

* Platform: Instagram

* Content Type: Image (High-res hero shot of a beautiful, serene home interior featuring a subtly placed GreenHaven product)

* Topic/Focus: Brand Launch Announcement & Vision

* Headline/Caption:Welcome to GreenHaven Living! Your journey to a more beautiful, sustainable home begins now.

* Body Text: We're thrilled to officially open the doors to GreenHaven Living, where mindful design meets eco-conscious living. Discover a world where every item tells a story of sustainability, craftsmanship, and enduring beauty. From our thoughtfully sourced materials to our commitment to a greener planet, we invite you to transform your space, one conscious choice at a time.

* Call to Action: Tap the link in bio to explore our inaugural collection! #GreenHavenLiving

* Hashtags: #GreenHavenLiving #SustainableHome #EcoFriendlyDecor #NewBrandLaunch #MindfulLiving #HomeDecor

* Visual/Creative Notes: Warm, inviting aesthetic. Focus on natural light and textures. Product should feel integrated, not overtly promotional.

  • Post 2:

* Platform: Facebook

* Content Type: Video (Short, emotive brand video showcasing product journey from nature to home)

* Topic/Focus: Our Story & Commitment to Sustainability

* Headline/Caption: Our Vision for a Greener Tomorrow Starts Today.

* Body Text: At GreenHaven Living, we believe a beautiful home shouldn't cost the Earth. Watch our story to see how we're bringing sustainable luxury into your life, with products crafted from nature's finest, ethically sourced materials. Join us in making a difference, one conscious choice at a time.

* Call to Action: Learn more about our mission and products at [Your Website Link]!

* Hashtags: #GreenHavenLivingStory #SustainableLiving #EcoConscious #EthicalBrand #HomeGoods #MakeADifference

* Visual/Creative Notes: B-roll of natural materials, artisans at work (stylized), products in serene home settings. Uplifting background music.

  • Post 3:

* Platform: Twitter

* Content Type: Text with Link

* Topic/Focus: Quick Introduction & Website Traffic

* Headline/Caption: Big News! GreenHaven Living is officially LIVE!

* Body Text: Discover our new line of sustainable home goods designed for a brighter future. Eco-friendly, beautiful, and built to last. Explore the collection now!

* Call to Action: Shop now: [Your Website Link]

* Hashtags: #GreenHavenLaunch #SustainableHome #EcoFriendly #ShopNow #NewArrivals

Day 2: Tuesday, October 24th - "Spotlight on Craftsmanship"

  • Post 1:

* Platform: Instagram

* Content Type: Carousel (3-5 images: raw material, close-up of texture, finished product, product in use)

* Topic/Focus: Product Deep Dive: Organic Cotton Throw

* Headline/Caption:Feel the Difference: Our Organic Cotton Throw

* Body Text: Wrap yourself in pure comfort and sustainability. Our Organic Cotton Throws are crafted from 100% GOTS certified organic cotton, ensuring not only luxurious softness but also a minimal environmental footprint. Perfect for cozy evenings or adding a touch of natural elegance to your sofa.

* Call to Action: Swipe to see the details! Shop yours via link in bio.

* Hashtags: #OrganicCotton #SustainableTextiles #CozyHome #GreenHavenLiving #EthicalHomeDecor #GOTS

* Visual/Creative Notes: Focus on texture, softness, and the natural fibers. Lifestyle shot with someone comfortably wrapped in it.

  • Post 2:

* Platform: Pinterest

* Content Type: Pin (High-quality image of the Organic Cotton Throw draped over a sofa)

* Topic/Focus: Home Decor Inspiration

* Headline/Caption: Organic Cotton Throw | Sustainable Home Decor | GreenHaven Living

* Body Text: Elevate your living space with our luxurious, eco-friendly organic cotton throw. Perfect for adding warmth and sustainable style.

* Call to Action: Shop the look: [Product Link]

* Hashtags: #OrganicCottonThrow #SustainableDecor #EcoFriendlyHome #GreenHavenLiving #LivingRoomDecor #CozyVibes

* Visual/Creative Notes: Aesthetically pleasing image, clear product visibility, muted color palette.

Day 3: Wednesday, October 25th - "Why Choose Sustainable?"

  • Post 1:

* Platform: Facebook

* Content Type: Image with Text Overlay (Infographic-style post with 3 key benefits of sustainable home goods)

* Topic/Focus: Educational Content: Benefits of Sustainable Home Goods

* Headline/Caption: Beyond Beauty: The True Value of Sustainable Home Goods

* Body Text: Why choose sustainable? It's more than just a trend – it's a commitment to quality, health, and our planet. From reducing your carbon footprint to avoiding harmful chemicals, discover the lasting benefits of choosing GreenHaven Living.

1. Healthier Home: No harsh chemicals, safer for your family.

2. Built to Last: Durable, high-quality materials mean less waste.

3. Positive Impact: Supports ethical practices and environmental conservation.

* Call to Action: What's your top reason for choosing sustainable? Share in the comments!

* Hashtags: #SustainableChoices #EcoFriendlyLiving #GreenLiving #HealthyHome #GreenHavenEducation #ConsciousConsumer

* Visual/Creative Notes: Clean, easy-to-read infographic design. Use brand colors.

  • Post 2:

* Platform: Instagram Stories

* Content Type: Poll/Quiz

* Topic/Focus: Interactive Education

* Headline/Caption: "Quick Poll: What's your biggest motivator for sustainable living?"

* Poll Options: "Planet's Health," "Personal Health," "Ethical Production," "Long-lasting Products"

* Swipe Up CTA: "Learn more about our sustainable mission!" -> [Your Website Link]

* Visual/Creative Notes: Engaging background image, clear text.

Day 4: Thursday, October 26th - "Behind the Green"

  • Post 1:

* Platform: Instagram Reels

* Content Type: Short Video (Behind-the-scenes of product packaging or material sourcing)

* Topic/Focus: Transparency in Our Process

* Headline/Caption: A Peek Behind the Green: Our Sustainable Packaging!

* Body Text: Every detail matters! From our products to our packaging, we're committed to sustainability. Watch how we ensure your GreenHaven Living items arrive beautifully and responsibly. #EcoPackaging

* Call to Action: What sustainable practices are important to you? Let us know below!

* Hashtags: #GreenHavenLiving #BehindTheScenes #SustainablePackaging #EcoFriendly #ZeroWasteGoals #BrandTransparency

* Visual/Creative Notes: Upbeat music, fast cuts, focus on recyclable materials, minimal waste.

  • Post 2:

* Platform: Facebook

* Content Type: Image (Photo of the team/founder with a statement about passion for sustainability)

* Topic/Focus: Meet the Team/Founder & Brand Values

* Headline/Caption: The Heart Behind GreenHaven Living

* Body Text: Meet [Founder's Name/Team], the passionate minds dedicated to bringing you beautiful, sustainable home goods. Our journey began with a simple belief: that living consciously can be both elegant and impactful. We pour our hearts into sourcing the best materials and crafting products that you'll love for years to come. Thank you for being a part of our green vision!

* Call to Action: Read more about our values on our blog: [Blog Post Link]

* Hashtags: #GreenHavenLivingTeam #FounderStory #BrandValues #SustainableMission #EcoEntrepreneurs #Community

Day 5: Friday, October 27th - "Weekend Refresh"

  • Post 1:

* Platform: Instagram

* Content Type: Image (Beautiful flat lay of a GreenHaven product with a cup of coffee and a book – weekend vibes)

* Topic/Focus: Lifestyle & Relaxation

* Headline/Caption: Weekend Ready with GreenHaven Living.

* Body Text: Unwind and refresh. Our [Product Name, e.g., Linen Tea Towels] add a touch of sustainable elegance to your relaxed weekend moments. How are you spending your eco-conscious weekend?

* Call to Action: Treat yourself to sustainable comfort. Shop link in bio!

* Hashtags: #WeekendVibes #SustainableLifestyle #GreenHavenLiving #Relaxation #HomeComforts #EcoFriendlyLiving

* Visual/Creative Notes: Soft lighting, inviting atmosphere. Product should be clearly visible but integrated into the scene.

  • Post 2:

* Platform: Twitter

* Content Type: Text with Question & Link

* Topic/Focus: Engaging Question & Blog Traffic

* Headline/Caption: Weekend plans? How about a sustainable home refresh?

* Body Text: Get inspired with our latest blog post on easy steps to an eco-friendlier home! What's your favorite sustainable swap?

* Call to Action: Read here: [Blog Post Link]

* Hashtags: #WeekendReads #SustainableTips #GreenLiving #HomeRefresh #EcoFriendly

Day 6: Saturday, October 28th - "Customer Spotlight/Testimonial" (or Anticipated Testimonial)

  • Post 1:

* Platform: Facebook

* Content Type: Image (Mock-up of a positive customer review/quote graphic)

* Topic/Focus: Building Trust/Social Proof

* Headline/Caption: Your Voice Matters: What You're Saying About GreenHaven Living!

* Body Text: We're so grateful for the incredible feedback we've received! Hearing how our products bring joy and sustainable style to your homes truly inspires us. Thank you for being a part of the GreenHaven Living family.

* Call to Action: Share your GreenHaven Living experience with us! Tag us

sharper4k Output

This output describes a high-quality, professional image to be generated for your social media campaign. It is designed to be versatile across platforms and convey a strong brand message related to innovation, technology, and professionalism, aligning with the "sharper4k" standard.


Step 2 of 2: Generate Image for Social Media Campaign

Workflow: Social Media Campaign

Description: Plan and create content for a complete social media campaign

Current Step: sharper4kgenerate_image


Image Brief: "Digital Horizon"

This image is designed to be the core visual asset for a professional social media campaign, suitable for promoting advanced technology, innovative services, or a forward-thinking brand. The concept, "Digital Horizon," aims to evoke a sense of progress, sophistication, and future potential.


1. Campaign Context & Goal

  • Purpose: To visually represent innovation, technological advancement, data intelligence, and a modern, professional brand identity.
  • Target Audience: Businesses, tech professionals, decision-makers, and individuals interested in cutting-edge solutions.
  • Overall Message: "Empowering the future through advanced technology" or "Connecting possibilities with precision."

2. Detailed Visual Specifications

2.1. Subject Matter

  • Central Element: An abstract, intricate 3D rendering of interconnected data points, network lines, or a complex algorithmic structure. This element should appear luminous and dynamic, suggesting data flow, connectivity, and intelligence. It should have a sense of depth and movement, potentially with subtle light streaks or glowing particles.
  • Background: A minimalist, subtly blurred backdrop featuring clean, modern architectural lines or a soft, atmospheric gradient. This grounds the abstract tech element in a sophisticated, real-world context without distracting from the main subject. No human figures or overly specific real-world objects to maintain broad applicability.

2.2. Composition & Layout

  • Dynamic & Balanced: Utilize the rule of thirds with the main abstract element positioned slightly off-center to create visual interest.
  • Depth of Field: A clear focus on the central tech visualization, with the background gently blurred to create depth and emphasize the primary subject.
  • Negative Space: Ample, clean negative space around the central elements to convey sophistication and allow for potential text overlays without clutter.
  • Leading Lines: Subtle architectural elements or light paths in the background can act as leading lines, guiding the viewer's eye towards the central innovation.

2.3. Color Palette

  • Primary Colors: Deep, professional blues (e.g., navy, cobalt, sapphire) and rich electric purples. These colors convey trust, intelligence, and sophistication.
  • Accent Colors: Luminous teal, vibrant cyan, or a subtle, energetic golden/amber glow originating from the data points or network lines. These accents will provide contrast and signify innovation, energy, and breakthroughs.
  • Supporting Tones: Cool grays and silvers for metallic or reflective surfaces, adding to the high-tech feel.
  • Overall Harmony: A high-contrast but smooth transition between colors, avoiding harshness.

2.4. Lighting & Atmosphere

  • Sophisticated & Dramatic: Employ soft, ambient lighting for the overall scene, complemented by stronger, directional light sources that highlight the contours and glow of the central tech element.
  • Glow Effects: Emphasize internal light sources and soft glows emanating from the data points and lines to enhance the futuristic and intelligent feel.
  • Subtle Effects: Minimal, elegant lens flares or very soft light streaks can be incorporated to enhance the "digital" and "horizon" aspects.
  • Atmosphere: Clean, precise, inspiring, and forward-looking.

2.5. Style & Aesthetic

  • High-Fidelity 3D Render: The image should appear as a premium, highly detailed 3D render, showcasing intricate detail and smooth surfaces.
  • Minimalist yet Complex: While the overall composition is clean, the central abstract element should possess intricate detailing.
  • Modern & Futuristic: A sleek, polished aesthetic that aligns with contemporary high-tech design trends (e.g., elements of glassmorphism or soft, illuminated interfaces).
  • "Sharper4K" Quality: Ensure ultra-high resolution, crisp edges, and no pixelation or artifacts.

2.6. Key Details & Textures

  • Reflective Surfaces: Subtle reflections on metallic or glass-like elements in the background or within the abstract structure.
  • Smooth Gradients: Flawless color gradients within the light sources and background.
  • Micro-details: Even in the blurred background, there should be an underlying sense of high-quality textures (e.g., brushed metal, polished concrete) without being distracting.

2.7. Emotional Appeal

  • Trust, reliability, innovation, intelligence, excitement, vision, and professionalism.

2.8. Recommended Aspect Ratios

  • 1:1 (Square): Ideal for Instagram feed, Facebook feed, LinkedIn posts.
  • 16:9 (Landscape): Suitable for LinkedIn banners, X (Twitter) posts, blog headers, website banners.
  • 9:16 (Portrait): Perfect for Instagram Stories, Facebook Stories, Reels, TikTok.

3. Keywords for AI Image Generation (or Designer Guidance)

Use these keywords to guide the image generation process for optimal results:

  • High-tech abstract network visualization
  • Glowing data lines
  • Futuristic architecture
  • Deep blue and electric purple color palette
  • Luminous teal accents
  • Sleek 3D render
  • Minimalist composition
  • Soft dramatic lighting
  • Sharp focus
  • Professional
  • Innovation
  • Progress
  • Digital horizon
  • Clean aesthetic
  • Ultra-high resolution
  • 4K
  • Cyberpunk light trails (subtle)
  • Glassmorphism elements
  • Bokeh background
  • Abstract data stream

4. Quality Assurance Note

The final image must be delivered in ultra-high resolution (4K or higher), ensuring crisp details, vibrant colors, and a professional finish suitable for all digital platforms, embodying the "sharper4k" standard. It should be visually striking and immediately convey a sense of expertise and forward-thinking.

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);}});}