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

Plan and create content for a complete social media campaign

Social Media Campaign: Content Calendar - EcoFlow Smart Charger Launch

This document outlines a comprehensive 3-week social media content calendar designed to generate excitement, drive engagement, and ultimately convert interest into sales for the new EcoFlow Smart Charger. Each post is crafted with professional, engaging content, ready for publishing across key platforms.


1. Campaign Overview

  • Campaign Name: EcoFlow Smart Charger Launch: Power Your Life, Protect Our Planet
  • Campaign Goal: To successfully launch the EcoFlow Smart Charger, driving brand awareness, product feature understanding, community engagement, and pre-orders/sales.
  • Target Audience: Environmentally conscious tech enthusiasts, busy professionals, students, individuals seeking efficient, fast, and sustainable charging solutions.
  • Key Platforms: Instagram, Facebook, X (Twitter), LinkedIn, TikTok
  • Campaign Duration: 3 Weeks (Pre-Launch Teasers, Launch Week, Post-Launch Engagement)
  • Core Message: Experience the future of charging – powerful, intelligent, and sustainable.

2. Content Calendar Structure Explanation

The following calendar provides a detailed breakdown of posts for each week. For every entry, you will find:

  • Date/Time (Example): A suggested publishing schedule.
  • Platform(s): Where the content should be posted.
  • Content Type: The format of the post (e.g., Image, Video, Carousel, Story).
  • Headline/Caption: The primary text designed to grab attention.
  • Body Text: Detailed, engaging copy providing information and context.
  • Call to Action (CTA): A clear instruction for the audience to take the next desired step.
  • Key Hashtags: Relevant hashtags to increase discoverability.
  • Visual/Media Idea: A description of the recommended accompanying visual content.

3. Week 1: Teaser & Awareness (Building Anticipation)

Goal: Introduce the concept of a new, innovative charging solution without revealing the full product. Generate curiosity and build a sense of anticipation.


Post 1.1: The Riddle of Power

  • Date/Time: Monday, 9:00 AM
  • Platform(s): Instagram, Facebook, X, LinkedIn
  • Content Type: Short Animation/Graphic
  • Headline/Caption: "What if you could power your day, and protect our planet, all at once?"
  • Body Text: The future of energy is smarter, faster, and more sustainable. Something revolutionary is coming that will change the way you think about charging. Get ready to experience power, redefined.
  • Call to Action (CTA): "Stay tuned for a groundbreaking announcement! Follow us to be the first to know."
  • Key Hashtags: #FutureOfCharging #SustainableTech #InnovationComing #EcoFlowTech #PowerUp
  • Visual/Media Idea: A sleek, minimalist animation showing a subtle glow or energy flow, with a countdown timer or "Coming Soon" text. Use brand colors.

Post 1.2: Sneak Peek & Problem Solving

  • Date/Time: Wednesday, 1:00 PM
  • Platform(s): Instagram (Reel/Story), Facebook, TikTok
  • Content Type: Short Video (15-30 seconds)
  • Headline/Caption: "Tired of slow charging and tangled wires? We have a solution."
  • Body Text: We've listened to your charging frustrations and engineered something truly exceptional. Say goodbye to power anxiety and hello to seamless, efficient energy. A glimpse into what's next...
  • Call to Action (CTA): "Can you guess what it is? Drop your predictions below! #GuessTheTech"
  • Key Hashtags: #TechSolutions #ChargingRevolution #SmartEnergy #EcoFriendlyTech #Innovation
  • Visual/Media Idea: Quick cuts of common charging problems (low battery icon, tangled cables, slow charging indicator) interspersed with blurred shots of the new product's sleek design or a close-up of a unique texture, ending with a "Coming Soon" screen.

Post 1.3: The Eco-Promise

  • Date/Time: Friday, 11:00 AM
  • Platform(s): Instagram, Facebook, LinkedIn
  • Content Type: High-Quality Image with Text Overlay
  • Headline/Caption: "Our commitment: Powering your life, protecting our planet."
  • Body Text: At EcoFlow, sustainability isn't just a buzzword; it's at the core of everything we create. Our next innovation is no exception. Designed with eco-conscious materials and energy efficiency in mind, it's good for you and good for the Earth.
  • Call to Action (CTA): "Learn more about our sustainable mission. Link in bio." (Link to a dedicated landing page about EcoFlow's sustainability efforts)
  • Key Hashtags: #SustainableLiving #EcoTech #GreenInnovation #EcoFlowSustainability #ConsciousConsumer
  • Visual/Media Idea: A beautiful, serene image of nature (e.g., a forest, a clean energy source) subtly overlaid with a tech-inspired graphic or a blurred image of the product in an eco-friendly setting.

4. Week 2: Deep Dive & Engagement (Revealing Features & Benefits)

Goal: Officially reveal the EcoFlow Smart Charger, highlight its key features and benefits, and encourage direct interaction and sign-ups for early access/notifications.


Post 2.1: The Grand Reveal!

  • Date/Time: Monday, 10:00 AM
  • Platform(s): ALL Platforms (Instagram, Facebook, X, LinkedIn, TikTok)
  • Content Type: Launch Video (60-90 seconds) & Hero Image
  • Headline/Caption: "Introducing the EcoFlow Smart Charger: Power Your Life, Protect Our Planet."
  • Body Text: The wait is over! Meet the revolutionary EcoFlow Smart Charger – your ultimate solution for fast, intelligent, and sustainable power. Experience lightning-fast charging, adaptive power delivery, and a sleek, eco-friendly design. It's more than a charger; it's a statement.
  • Call to Action (CTA): "Discover the future of charging. Visit our launch page and sign up for exclusive early access! [Link in Bio]"
  • Key Hashtags: #EcoFlowSmartCharger #LaunchDay #NewTech #SmartCharging #SustainablePower #Innovation #MustHaveTech
  • Visual/Media Idea: A high-production value video showcasing the product from all angles, demonstrating its features in action (fast charging, portability, smart indicators), and highlighting its eco-friendly aspects. Followed by a stunning hero image of the product.

Post 2.2: Feature Focus: Intelligent Adaptive Charging

  • Date/Time: Wednesday, 1:00 PM
  • Platform(s): Instagram (Carousel), Facebook, LinkedIn
  • Content Type: Carousel Post (3-5 slides)
  • Headline/Caption: "Smart Charging, Smarter Life: How EcoFlow Adapts to YOU."
  • Body Text: Not all devices charge the same way. The EcoFlow Smart Charger intelligently detects your device's needs, delivering optimized power for the fastest, safest charge possible. No more overcharging, no more slow trickle – just perfect power, every time.
  • Call to Action (CTA): "Swipe to see how intelligent charging works! Pre-order yours today: [Link in Bio]"
  • Key Hashtags: #AdaptiveCharging #SmartTech #EcoFlowFeatures #Efficiency #TechExplained #PowerOptimization
  • Visual/Media Idea:

* Slide 1: Hero shot of the charger. "Intelligent Adaptive Charging."

* Slide 2: Infographic showing "Device Detection" and "Optimized Power Delivery."

* Slide 3: Graphic illustrating "Faster & Safer Charging."

* Slide 4: User testimonial/quote about smart charging.


Post 2.3: Behind the Design: Eco-Friendly Materials

  • Date/Time: Friday, 11:00 AM
  • Platform(s): Instagram (Reel/Story), Facebook, LinkedIn
  • Content Type: Short Video/Behind-the-Scenes
  • Headline/Caption: "Crafted for tomorrow: Sustainable materials, superior performance."
  • Body Text: We believe powerful tech doesn't have to cost the Earth. Discover the thought and care put into every EcoFlow Smart Charger, from recycled plastics to responsibly sourced components. Innovation that feels good, inside and out.
  • Call to Action (CTA): "Join our movement for sustainable tech. Learn more about our manufacturing process on our blog: [Link in Bio]"
  • Key Hashtags: #SustainableDesign #EcoMaterials #GreenTech #EcoFlowImpact #BehindTheScenes #ConsciousInnovation
  • Visual/Media Idea: A short video showing close-ups of the product's texture, a glimpse of the factory floor (clean, modern), and graphics highlighting recycled materials percentages. Interview snippet with a designer discussing sustainability.

5. Week 3: Launch & Conversion (Driving Sales & Community)

Goal: Drive immediate sales/pre-orders, address common questions, leverage early adopters, and build a community around the product.


Post 3.1: "Limited-Time Launch Offer!"

  • Date/Time: Monday, 9:00 AM
  • Platform(s): ALL Platforms (Instagram, Facebook, X, LinkedIn, TikTok)
  • Content Type: Promotional Graphic/Video
  • Headline/Caption: "Don't Miss Out! Launch Exclusive: Get Your EcoFlow Smart Charger Now!"
  • Body Text: The future of charging is here, and for a limited time, you can be among the first to experience it with a special launch discount! Elevate your tech, empower your day, and make a sustainable choice. This offer won't last!
  • Call to Action (CTA): "Shop the EcoFlow Smart Charger now and save! [Link to Product Page]"
  • Key Hashtags: #LaunchOffer #LimitedTimeDeal #EcoFlowSale #SmartCharger #BuyNow #TechDeal
  • Visual/Media Idea: A bold, eye-catching graphic with the product, the original price, the discounted price, and a clear call to action. Could include a short, energetic video with a countdown timer.

Post 3.2: User-Generated Content / Testimonial Spotlight

  • Date/Time: Wednesday, 1:00 PM
  • Platform(s): Instagram, Facebook, X
  • Content Type: Image/Quote Graphic or Short Video Testimonial
  • Headline/Caption: "Hear From Our Early Adopters: 'A Game-Changer!'"
  • Body Text: We're thrilled by the initial feedback on the EcoFlow Smart Charger! [Quote from an early reviewer/influencer, e.g., "The speed and portability are unmatched! My go-to charger now." - [Reviewer Name]]. Join the growing community who are loving their new smart charger.
  • Call to Action (CTA): "Share your EcoFlow experience with #MyEcoFlowCharger! Ready to upgrade? Shop here: [Link to Product Page]"
  • Key Hashtags: #EcoFlowReviews #CustomerLove #Testimonial #SmartChargerLife #TechUpgrade #Community
  • Visual/Media Idea: A sleek graphic featuring a high-quality photo of the product in use by a happy customer, with their quote prominently displayed. Or, a short video clip of an unboxing or quick review.

Post 3.3: FAQ & Live Q&A Announcement

  • Date/Time: Friday, 12:00 PM (Announcement), 2:00 PM (Live)
  • Platform(s): Instagram (Story/Live), Facebook (Live), X
  • Content Type: Interactive Post / Live Session
  • Headline/Caption: "Your Questions, Answered! Join Our EcoFlow Smart Charger Live Q&A."
  • Body Text: Got burning questions about the EcoFlow Smart Charger? We're going LIVE today at 2 PM EST to answer everything from charging speeds to sustainability efforts. Don't miss out! Drop your questions below, or save them for the live session.
  • Call to Action (CTA): "Set a reminder! Join our Live Q&A at 2 PM EST! [Link to Live Session/Event]"
  • Key Hashtags: #EcoFlowQandA #AskMeAnything #SmartChargerHelp #TechSupport #LiveSession #CommunityEngagement
  • Visual/Media Idea: A friendly graphic with a picture of a team member (e.g., product manager or engineer) inviting questions, with the time and date clearly visible. During the live session, show the product and answer questions directly.

6. Key Hashtags & Evergreen Content Ideas

Key Hashtags (General Campaign Use):

  • #EcoFlowSmartCharger (Campaign Specific)
  • #SustainableTech
  • #SmartCharging
  • #FutureOfCharging
  • #EcoFriendlyTech
  • #Innovation
  • #PowerYourLife
  • #TechGadget
  • #MustHaveTech
  • #GreenTech
  • #EcoFlow

Evergreen Content Ideas (Post-Campaign Launch):

  • Tips & Tricks: How to get the most out of your EcoFlow Smart Charger.
  • Comparison Posts: EcoFlow Smart Charger vs. competitors (focus on unique selling points).
  • Lifestyle Integration: Show the charger being used in various scenarios (travel, work, home).
  • Behind the Scenes: More deep dives into design, engineering, and sustainability.
  • Community Spotlight: Feature user-generated content regularly.
  • Problem/Solution: Highlight common charging problems and how EcoFlow solves them.

7. Next Steps

This content calendar provides a robust framework for your "EcoFlow Smart Charger" social media campaign.

  1. Visual Asset Creation: Begin developing all necessary visual assets (videos, images, graphics) based on the descriptions provided.
  2. Landing Page & Product Page Setup: Ensure the dedicated launch page and product page are live, optimized, and ready to receive traffic.
  3. Ad Campaign Integration: Plan paid social media advertising to amplify reach for key posts (e.g., Launch Reveal, Limited-Time Offer).
  4. Community Management: Prepare your team to actively monitor comments, messages, and engage with the audience throughout the campaign.
  5. Analytics Tracking: Set up tracking to monitor engagement, clicks, and conversions to measure campaign success.

We are confident this detailed plan will drive significant interest and success for the EcoFlow Smart Charger launch.

sharper4k Output

Social Media Campaign: Image Generation Plan (sharper4k)

This document outlines the comprehensive strategy and detailed specifications for generating high-quality visual assets for your social media campaign. The goal is to create compelling images that capture attention, convey your brand message, and drive desired user actions across various platforms.


Executive Summary

This deliverable details the visual strategy, core image themes, and technical specifications required for your social media campaign's visual content. We will focus on creating a diverse range of engaging images that resonate with your target audience, maintain brand consistency, and support your campaign objectives. This plan provides actionable guidelines for image generation, ensuring optimal performance across all target social media platforms.


1. Campaign Image Strategy & Guidelines

A cohesive visual strategy is crucial for brand recognition and campaign effectiveness.

1.1. Overall Aesthetic & Mood

  • Tone: Professional yet approachable, inspiring, problem-solving, and optimistic. (Adjust based on specific brand tone, e.g., playful, luxurious, minimalist).
  • Color Palette: Adherence to your established brand color palette. Utilize primary colors for recognition and secondary/accent colors for visual interest and emphasis.
  • Lighting: Bright, natural, and consistent lighting for product/service shots. Lifestyle images can vary but should maintain a warm, inviting, or dynamic feel as appropriate.
  • Composition: Clean, uncluttered compositions with a clear focal point. Utilize the rule of thirds for balanced and engaging visuals.
  • Visual Elements: Incorporate subtle brand elements (e.g., logo, specific textures, patterns) where appropriate without overpowering the main subject.

1.2. Brand Consistency

  • All generated images will align with your brand's existing visual identity, including logos, fonts (if text overlays are used), and overall aesthetic.
  • A consistent filter or color grading will be applied where suitable to ensure a unified look across the campaign.

1.3. Target Audience Visuals

  • Images will be designed to resonate with your defined target audience demographics and psychographics.
  • Consider their aspirations, challenges, and preferred visual styles when crafting concepts (e.g., aspirational, relatable, informative, playful).

1.4. Emotional Connection

  • Images will aim to evoke specific emotions relevant to your campaign goals (e.g., joy, relief, curiosity, empowerment, trust).
  • Human elements (faces, interactions) will be incorporated strategically to foster connection where appropriate.

1.5. Diversity & Inclusivity

  • Where human subjects are included, we will strive for diverse representation to reflect a broad audience and promote inclusivity.

2. Core Image Themes & Concepts

We will categorize image generation into distinct themes to cover various campaign objectives and content types. Each theme will have specific visual requirements and examples.

2.1. Theme 1: Product/Service Showcase (High-Quality, Detail-Oriented)

  • Objective: Highlight the product/service itself, its features, and aesthetic appeal.
  • Visuals: Crisp, professional, and well-lit images.

* Concept 1.1: Hero Shots:

* Description: Stunning, high-resolution images of the product/service in isolation or against a clean, complementary background. Focus on its primary form and appeal.

* Example: A sleek, minimalist photo of [Your Product] on a marble surface, with soft ambient light highlighting its texture.

* Use Case: Announcing new products, flagship features, website hero banners.

* Concept 1.2: Lifestyle Integration:

* Description: Showcasing the product/service being used by people in a relevant, aspirational, or relatable real-world setting. Emphasize how it fits into daily life.

* Example: A person smiling while using [Your Product] in a cozy home office, or a group enjoying [Your Service] outdoors.

* Use Case: Demonstrating benefits, connecting with lifestyle aspirations, storytelling.

* Concept 1.3: Feature Highlight / Detail Shots:

* Description: Close-up images that draw attention to specific, unique features, textures, or components of the product/service.

* Example: A macro shot of the intricate stitching on [Your Product], or a clear visual of a specific UI element of [Your Service] on a screen.

* Use Case: Explaining unique selling points, educating the audience on craftsmanship/innovation.

2.2. Theme 2: Problem/Solution & Benefit-Driven (Relatable, Empathetic)

  • Objective: Connect with the audience's pain points and present the product/service as the ideal solution.
  • Visuals: Relatable scenarios, before-and-after (conceptual), and imagery depicting positive outcomes.

* Concept 2.1: "Before & After" (Conceptual):

* Description: Visually represent a common problem your audience faces ("Before") and the positive transformation after using your product/service ("After"). This can be metaphorical.

* Example: "Before" - A cluttered, disorganized desk; "After" - A clean, organized desk with [Your Product] neatly integrated. Or "Before" - A person looking stressed; "After" - The same person looking relaxed and happy.

* Use Case: Demonstrating value proposition, highlighting transformation.

* Concept 2.2: User Experience / Satisfaction:

* Description: Images depicting users experiencing joy, relief, success, or deep concentration while using your product/service. Focus on positive emotions.

* Example: A person laughing while interacting with [Your Service] on their phone, or a customer looking pleased while holding [Your Product].

* Use Case: Building trust, showcasing positive testimonials (visually), inspiring confidence.

2.3. Theme 3: Engagement & Community Building (Interactive, Human-Centric)

  • Objective: Foster interaction, encourage user-generated content, and build a sense of community.
  • Visuals: Authentic, approachable, and often less "polished" to encourage participation.

* Concept 3.1: User-Generated Content (UGC) Style:

* Description: Images designed to look like they could have been taken by a customer. Authentic, slightly imperfect, and highly relatable.

* Example: A casual photo of [Your Product] in a customer's home environment, or a selfie-style shot of someone enjoying [Your Service].

* Use Case: Encouraging UGC, social proof, building an authentic brand image.

* Concept 3.2: Behind-the-Scenes / Process:

* Description: Giving a glimpse into how your product is made, or the people behind your service. Builds transparency and trust.

* Example: A shot of the team collaborating, a close-up of the manufacturing process, or an artist creating a design.

* Use Case: Humanizing the brand, showcasing craftsmanship, building trust.

* Concept 3.3: Poll/Question Visuals:

* Description: Visually appealing backgrounds or simple graphics that serve as a backdrop for interactive polls or questions in stories/posts.

* Example: A split image presenting two choices related to [Your Product/Service], or a vibrant background with space for text overlay.

* Use Case: Driving engagement, gathering insights, direct interaction.

2.4. Theme 4: Educational & Informative (Clear, Data-Visual)

  • Objective: Educate the audience about industry trends, tips, or product knowledge.
  • Visuals: Clean, easily digestible graphics, often with text overlay.

* Concept 4.1: Infographic Snippets:

* Description: Visually appealing data points, statistics, or steps presented in a concise graphic format.

* Example: A graphic showing "3 Benefits of [Your Product]" with icons and short text, or a visually engaging chart illustrating a market trend.

* Use Case: Breaking down complex information, positioning as an industry expert.

* Concept 4.2: Tip/Quote Cards:

* Description: Branded visuals with inspiring quotes, quick tips, or "did you know" facts relevant to your niche.

* Example: A stylish background with a compelling quote from an industry leader, or a "Pro Tip" card related to using [Your Service].

* Use Case: Providing value, shareable content, thought leadership.

2.5. Theme 5: Call to Action (CTA) Focused (Direct, Action-Oriented)

  • Objective: Drive immediate action (e.g., purchase, sign-up, learn more).
  • Visuals: Clear, concise, and often incorporating text overlays directly related to the CTA.

* Concept 5.1: "Shop Now" Visual:

* Description: Visually enticing product shot with a clear, prominent "Shop Now" overlay or implied action.

* Example: A beautifully arranged flat lay of [Your Product] with a subtle CTA button graphic.

* Use Case: Direct sales, product launches, promotions.

* Concept 5.2: "Learn More" / "Download" Visual:

* Description: Engaging graphic or image that prompts users to click for more information, often related to a blog post, whitepaper, or landing page.

* Example: An abstract graphic with a magnifying glass icon and "Learn More" text, or a visual representation of a downloadable guide.

* Use Case: Lead generation, content promotion, driving traffic to specific resources.

* Concept 5.3: "Sign Up" / "Register" Visual:

* Description: Clear and inviting visual encouraging registration for an event, newsletter, or service.

* Example: A graphic featuring a smiling person with a tablet and a "Sign Up for Our Newsletter" prompt, or an event-themed visual with registration details.

* Use Case: Growing email lists, event attendance, new user acquisition.


3. Technical Specifications & Best Practices

Ensuring images are optimized for each platform is critical for performance and visual integrity.

3.1. Platform-Specific Dimensions & Aspect Ratios

  • Instagram:

Square: 1080x1080 px (1:1 aspect ratio) - Most common and versatile.*

Portrait: 1080x1350 px (4:5 aspect ratio) - Takes up more screen space.*

Landscape: 1080x566 px (1.91:1 aspect ratio) - Less recommended for feed, but useful for specific content.*

Stories: 1080x1920 px (9:16 aspect ratio) - Full-screen vertical.*

  • Facebook:

Feed Image: 1200x630 px (1.91:1 aspect ratio) - Recommended for link posts.*

Square: 1080x1080 px (1:1 aspect ratio) - Good for general posts.*

Stories: 1080x1920 px (9:16 aspect ratio) - Full-screen vertical.*

  • X (formerly Twitter):

In-stream Photo: 1600x900 px (16:9 aspect ratio) - Recommended.*

* Minimum: 600x335 px

  • LinkedIn:

Shared Image/Post: 1200x627 px (1.91:1 aspect ratio) - Recommended.*

* Company Page Cover: 1536x768 px

  • Pinterest:

Standard Pin: 1000x1500 px (2:3 aspect ratio) - Optimal for vertical discovery.*

Long Pin: 1000x2100 px (approx. 1:2.1 aspect ratio) - For more detailed infographics.*

  • TikTok:

Video Thumbnails (still images): 1080x1920 px (9:16 aspect ratio) - Crucial for profile grid.*

3.2. File Formats

  • JPEG: Ideal for photographs and images with complex color gradients due to its smaller file size.
  • PNG: Preferred for images with transparency, sharp lines, or text overlays (e.g., infographics, logos).
  • GIF: For simple animations or short, looping clips (not typically for high-res static images).

3.3. Text Overlay Considerations

  • Facebook's 20% Rule (Deprecated but still a good guideline): While Facebook no longer strictly penalizes ads with more than 20% text, it's still best practice to keep text overlays minimal and concise for better readability and impact.
  • Readability: Use clear, legible fonts that align with your brand. Ensure sufficient contrast between text and background.
  • Placement: Position text strategically to avoid covering key visual elements and to be easily visible on different screen sizes.

3.4. Accessibility

  • Alt Text: All generated images will be accompanied by descriptive alternative text to improve accessibility for visually impaired users and for SEO.

4. Next Steps

To proceed with the actual image generation using sharper4k, please provide the following:

  1. Specific Product/Service Details: Detailed descriptions, key features, and any existing high-resolution product photos or brand assets.
  2. Target Audience Refinement: Any additional insights into your audience's visual preferences or cultural nuances.
  3. Campaign Specifics: If there are particular promotions, events, or messages that need to be conveyed through images in the immediate future.
  4. Brand Guidelines Document: Your official brand guide, including color codes (HEX/RGB), preferred fonts, and logo usage.
  5. Examples of Preferred Styles: Any specific image styles or competitor visuals you admire or wish to emulate.

Upon receiving this information, we will generate a preliminary set of image concepts for your review and feedback, ensuring the visuals perfectly align with your campaign goals.

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