Social Media Content Blast
Run ID: 69ccc9533e7fb09ff16a507e2026-04-01Marketing
PantheraHive BOS
BOS Dashboard

Generate a full week of social media posts with captions, hashtags, and image prompt briefs

Social Media Content Blast

Step 1 of 2: Generate Content Calendar

This deliverable provides a comprehensive, ready-to-publish social media content calendar for one full week (7 days). Each day includes a distinct theme, engaging post copy (headline, body, call to action), relevant hashtags, and a detailed image prompt brief to guide visual content creation. This content is designed to be versatile across major social media platforms (e.g., Instagram, Facebook, LinkedIn, X, Pinterest).

Assumed Brand Context:

For the purpose of this content calendar, we are operating under the hypothetical brand EcoThrive Solutions. EcoThrive Solutions is a company dedicated to promoting sustainable living through eco-friendly products, educational resources, and community engagement. Their mission is to empower individuals to make conscious choices for a healthier planet.


Content Calendar: Week 1


Day 1: Monday Motivation - Kickstart Your Sustainable Week!

  • Post Focus: Inspire followers to start their week with small, impactful sustainable actions.
  • Headline: 🌍 Monday Mantra: Small Steps, Big Impact!
  • Body Text:

Happy Monday, EcoThrivers! A new week brings new opportunities to make a positive difference. We believe that sustainability isn't about perfection, but about progress. What's one small eco-friendly habit you're committing to this week?

Whether it's bringing your reusable coffee cup, planning plant-based meals, or simply unplugging electronics when not in use, every action counts! Let's inspire each other to thrive sustainably.

  • Call to Action: Share your Monday eco-pledge in the comments below! πŸ‘‡
  • Relevant Hashtags:

#MondayMotivation #EcoThriveSolutions #SustainableLiving #EcoFriendly #GreenLiving #MakeADifference #SmallChangesBigImpact #NewWeekNewGoals #SustainableHabits #GoGreen

  • Image Prompt Brief:

A bright, clean, and inspiring image featuring a hand holding a small, vibrant green sprout emerging from rich soil, with a blurred background of a modern, minimalist home interior bathed in natural light. Incorporate subtle elements like a reusable coffee cup or a notebook with a leaf design. The overall feel should be hopeful and fresh.


Day 2: Tip Tuesday - Waste Less, Live More!

  • Post Focus: Provide a practical tip on reducing food waste, a common household challenge.
  • Headline: 🍎 Tip Tuesday: Revolutionize Your Fridge & Reduce Food Waste!
  • Body Text:

Did you know that an average family throws away 25% of the food they buy? That's money and resources wasted! This #TipTuesday, let's tackle food waste together.

Pro Tip: Master the art of "first in, first out" (FIFO) in your fridge and pantry. Organize older items to the front so they get used first. Plan your meals, repurpose leftovers creatively, and compost what you can't eat. It's simpler than you think and makes a huge difference!

  • Call to Action: What's your go-to trick for minimizing food waste at home? Share your wisdom!
  • Relevant Hashtags:

#FoodWasteReduction #SustainableKitchen #EcoFriendlyTips #ZeroWasteLiving #ReduceReuseRecycle #EcoThriveSolutions #KitchenHacks #SustainableHome #LiveMoreWasteLess #TipTuesday

  • Image Prompt Brief:

A vibrant flat lay image showcasing a neatly organized refrigerator shelf with colorful, fresh produce (e.g., bell peppers, berries, leafy greens) in reusable silicone bags and glass containers. A small handwritten label or a "Use First" sign is visible. The lighting should be bright and natural, emphasizing freshness and organization.


Day 3: Mid-Week Myth Buster - The Truth About Recycling!

  • Post Focus: Address a common misconception about recycling to encourage more effective practices.
  • Headline: ♻️ Myth Buster Wednesday: Is All Plastic Recyclable? The Truth!
  • Body Text:

Ever wonder if everything with a recycling symbol actually gets recycled? Let's bust a common myth! While the chasing arrows symbol (Mobius loop) indicates an item can be recycled, it doesn't mean it will be in your local facility. Recycling rules vary widely by municipality!

The Truth: Always check your local waste management guidelines for specific accepted materials. "Wishcycling" (tossing items you hope are recyclable) can contaminate entire batches. When in doubt, leave it out!

  • Call to Action: What's one recycling rule that surprised you? Let us know!
  • Relevant Hashtags:

#RecyclingFacts #MythBuster #SustainableChoices #EcoEducation #KnowYourRecycling #EcoThriveSolutions #WasteManagement #GreenLivingTips #EnvironmentalAwareness #ReduceContamination

  • Image Prompt Brief:

A visually engaging graphic with a bold "MYTH BUSTED" overlay. The background features a split image: one side shows a clean, organized recycling bin with clearly separated materials (plastics, paper, glass), and the other side shows a confused person looking at a plastic container with a tiny, unclear recycling symbol, surrounded by question marks. Use a clean, infographic-style aesthetic.


Day 4: Throwback Thursday - Our Impact Journey!

  • Post Focus: Highlight past achievements or the brand's journey in sustainability, fostering a sense of shared progress.
  • Headline: 🌱 #TBT: Celebrating Our Collective Impact Journey!
  • Body Text:

Throwback to our beginnings and the incredible journey we've been on with you, our amazing community! At EcoThrive Solutions, our mission has always been to make sustainable living accessible and impactful.

From our first zero-waste starter kit to expanding our range of ethically sourced products, every step has been fueled by your passion for a greener planet. We're so proud of the collective difference we're making! What's been your favorite sustainable discovery or achievement with us?

  • Call to Action: Share your favorite sustainable memory or product from EcoThrive Solutions!
  • Relevant Hashtags:

#ThrowbackThursday #EcoThriveJourney #SustainableProgress #CommunityImpact #EcoFriendlyProducts #EcoThriveSolutions #GreenBusiness #MakingADifference #SustainableLiving #OurStory

  • Image Prompt Brief:

A collage or split image showcasing the evolution of EcoThrive Solutions. One side could feature an older, perhaps slightly rustic image of an early product or a small community event. The other side should be a more polished, contemporary image reflecting current offerings or a vibrant community gathering. Use warm, authentic tones to convey growth and heritage.


Day 5: Eco-Friendly Friday - Weekend Adventure Prep!

  • Post Focus: Encourage sustainable choices for weekend activities and relaxation.
  • Headline: 🌲 Eco-Friendly Friday: Your Sustainable Weekend Adventure Guide!
  • Body Text:

The weekend is almost here! Time to recharge and reconnect, perhaps with nature? This #EcoFriendlyFriday, let's plan for adventures that are kind to the planet.

Whether you're hiking, picnicking, or simply enjoying your local park, remember your reusable water bottle, pack snacks in reusable containers, and "leave no trace." Even better, discover local farmers' markets for fresh, seasonal produce to fuel your fun!

  • Call to Action: What sustainable plans do you have for the weekend? Inspire us!
  • Relevant Hashtags:

#SustainableWeekend #EcoAdventure #LeaveNoTrace #GreenWeekend #FarmersMarketFinds #EcoThriveSolutions #OutdoorAdventures #SustainableTravel #EcoFriendlyLiving #WeekendVibes

  • Image Prompt Brief:

An inviting outdoor scene featuring a diverse group of friends or a family enjoying a sustainable weekend activity. Examples include hiking a nature trail with reusable water bottles and backpacks, or having a picnic with food in reusable containers on a blanket in a park. The lighting should be bright and natural, conveying joy and connection with nature.


Day 6: Saturday Spotlight - Community & Connection!

  • Post Focus: Feature user-generated content or encourage community interaction around a sustainable theme.
  • Headline: ✨ Saturday Spotlight: You Inspire Us! Share Your Eco-Spaces!
  • Body Text:

Happy Saturday, EcoThrivers! Today, we're shining a spotlight on you – our incredible community. We're constantly inspired by the creative ways you integrate sustainable living into your homes and lives.

Show us your favorite "eco-space" at home! Is it your thriving indoor plant corner, your meticulously organized recycling station, or your cozy reading nook filled with natural light? Tag us @EcoThriveSolutions and use #MyEcoSpace for a chance to be featured next week!

  • Call to Action: Tag us & use #MyEcoSpace to share your sustainable havens!
  • Relevant Hashtags:

#CommunitySpotlight #MyEcoSpace #SustainableHome #EcoFriendlyDecor #GreenLivingSpaces #EcoThriveSolutions #UserGeneratedContent #SaturdayVibes #SustainableCommunity #HomeInspiration

  • Image Prompt Brief:

A warm, inviting photo of a beautifully curated "eco-space" within a home. This could be a sunlit corner with various indoor plants, a cozy reading nook with natural fiber textiles and a cup of tea, or a stylishly organized kitchen with reusable containers and natural wood elements. The focus should be on comfort, sustainability, and personal touch.


Day 7: Sunday Reflection - Planning for a Greener Future!

  • Post Focus: Encourage reflection on the past week and planning for future sustainable actions.
  • Headline: 🌿 Sunday Reflection: Nurturing Our Planet & Ourselves!
  • Body Text:

As the week winds down, let's take a moment for #SundayReflection. How did your sustainable pledges go this week? What small victories did you achieve?

This is also a great time to plan for the week ahead. Consider simple ways to reduce your environmental footprint – perhaps try a meatless Monday, walk instead of drive, or commit to a new zero-waste swap. Nurturing our planet goes hand-in-hand with nurturing ourselves.

  • Call to Action: What's one sustainable goal you're setting for the upcoming week?
  • Relevant Hashtags:

#SundayReflections #SustainableGoals #MindfulLiving #EcoThriveSolutions #GreenFuture #SelfCareSunday #EnvironmentalStewardship #PlanForGreen #SustainableLifestyle #WeeklyGoals

  • Image Prompt Brief:

A serene and contemplative image. This could be a person (from behind or in silhouette) looking out a window at a peaceful natural landscape (e.g., a forest, a calm lake) with a journal and a pen beside them, suggesting reflection and planning. Alternatively, a close-up of hands gently holding a small, smooth river stone or a single green leaf, conveying peace and connection. Use soft, natural lighting.


This content calendar provides a robust foundation for your social media presence, designed to engage your audience, educate them on sustainable practices, and reinforce your brand's commitment to a greener future.

Next Steps:

This content calendar will now proceed to Step 2, where the image prompts will be used to generate visual assets, and the full package will be prepared for final review and scheduling.

sharper4k Output

This deliverable represents Step 2 of 2 in your "Social Media Content Blast" workflow, focusing on generating detailed image prompt briefs for a full week of social media posts. These prompts are designed for AI image generation tools (e.g., Midjourney, DALL-E, Stable Diffusion) to produce high-quality, professional visuals that complement your social media content.


Social Media Content Blast: Weekly Image Prompt Briefs

This section provides a comprehensive set of image prompt briefs, one for each day of the week, tailored to support a diverse range of social media content. Each prompt is designed to be detailed and actionable, enabling you to generate striking visuals that enhance engagement and convey your brand's message effectively.

General Guidelines for Using Image Prompts

  • Customization is Key: While these prompts are detailed, feel free to modify them to better align with your specific brand aesthetics, campaign themes, or the exact nuance of your written content.
  • Aspect Ratio: We've suggested common aspect ratios (1:1 for square, 16:9 for landscape, 9:16 for stories/reels). Adjust based on the primary platform you're targeting.
  • AI Tool Variation: Different AI image generators may interpret prompts slightly differently. Experiment with minor wording changes if the initial results aren't exactly what you envision.
  • Iterate and Refine: Don't hesitate to generate multiple variations and select the best one. AI generation is an iterative process.
  • Brand Colors/Logos: For brand consistency, you may consider adding your brand's specific hex codes or requesting a space for logo placement in some prompts if your AI tool supports it.

Weekly Social Media Image Prompt Briefs

Monday: "Motivation & Productivity"

  • Theme: Kickstarting the week with inspiration, focus, and productivity.
  • Image Prompt: "A bright, minimalist, and modern workspace bathed in natural sunlight. A sleek laptop displaying a clean analytics dashboard, a neatly organized notebook, a high-quality pen, and a steaming cup of coffee. A subtle green plant in the background adds a touch of life. Emphasize a sense of calm productivity and new beginnings. Professional, inspiring, clean aesthetic. Soft, golden hour lighting. High resolution, sharp focus. Aspect ratio: 16:9 or 1:1."
  • Keywords: modern workspace, productivity, minimalist, sunlit, clean desk, inspiration, professional, golden hour, high resolution

Tuesday: "Tip & Education"

  • Theme: Sharing valuable insights, tips, or educational content.
  • Image Prompt: "An abstract, professional infographic-style illustration depicting interconnected digital data points or a seamless workflow. Use a vibrant yet harmonious color palette of blues, greens, and subtle purples. Incorporate clean, modern icons representing concepts like 'data security,' 'efficiency,' or 'innovation.' The composition should feel dynamic and visually informative, conveying clarity and expertise. High-tech, sophisticated, and easy-to-understand. Aspect ratio: 1:1."
  • Keywords: infographic, abstract data, digital flow, workflow, innovation, education, clean icons, professional, high-tech, vibrant

Wednesday: "Mid-Week Wisdom & Reflection"

  • Theme: Thought-provoking content, strategic thinking, or reflective insights.
  • Image Prompt: "A diverse individual (e.g., professional, thoughtful expression) looking contemplatively out a large, modern office window at a blurred, bustling city skyline during dusk. The person is holding a tablet or notebook, deep in thought. Soft, ambient lighting creates an introspective and strategic mood. Focus on intellectual depth and forward-thinking. Professional, sophisticated, and slightly artistic. Aspect ratio: 16:9."
  • Keywords: reflection, strategic thinking, contemplation, city skyline, dusk light, professional, intellectual, modern office, thoughtful

Thursday: "Throwback & Community"

  • Theme: Highlighting past achievements, team culture, or community engagement.
  • Image Prompt: "A candid, authentic photo of a diverse team (3-5 people) collaborating and laughing around a whiteboard or a large conference table. They are actively engaged, pointing at ideas, and smiling. Use a warm, slightly vintage filter to evoke a sense of history and camaraderie. Emphasize teamwork, shared success, and positive relationships. Soft, natural indoor lighting. Aspect ratio: 1:1."
  • Keywords: teamwork, collaboration, community, throwback, authentic, candid, vintage filter, shared success, diverse team, warm lighting

Friday: "Weekend Prep & Achievement"

  • Theme: Celebrating week's end achievements, looking forward to the weekend, or work-life balance.
  • Image Prompt: "A dynamic, optimistic image of a hand reaching out to successfully 'check off' a task on a digital to-do list displayed on a tablet, with a blurred background of a relaxed, modern home office or a vibrant outdoor scene. Alternatively, a person enjoying a moment of relaxation (e.g., reading outdoors, a light hobby) to signify work-life balance. Bright, inviting colors. Emphasize accomplishment and the transition to leisure. Aspect ratio: 16:9 or 1:1."
  • Keywords: achievement, weekend vibes, work-life balance, accomplishment, to-do list, relaxation, optimistic, dynamic, bright colors

Saturday: "Engagement & Lifestyle"

  • Theme: Engaging the audience with lifestyle content, questions, or soft promotions.
  • Image Prompt: "A stylish flat lay image featuring elements of a relaxing but productive weekend: a steaming cup of artisan coffee, an open book or magazine, a tablet displaying a social media feed, and a small, aesthetically pleasing succulent plant. The setting is cozy, perhaps on a wooden table or a textured blanket. Soft, diffused natural light from a window creates an inviting and aspirational mood. Aspect ratio: 1:1."
  • Keywords: flat lay, weekend lifestyle, cozy, coffee, reading, social media, relaxation, natural light, aesthetic, engagement

Sunday: "Reflection & Planning"

  • Theme: Encouraging reflection on the past week and preparation for the upcoming one.
  • Image Prompt: "A serene, minimalist image of an open notebook with a pen poised over a blank page, set on a clean, light-colored desk. A subtle, blurred background of a calm indoor space or a gentle outdoor scene (e.g., distant trees) enhances the tranquil mood. Focus on planning, goal setting, and quiet contemplation. Soft, diffused ambient lighting. Clean, professional, and inspiring. Aspect ratio: 16:9 or 1:1."
  • Keywords: reflection, planning, goal setting, minimalist, notebook, serene, contemplation, clean desk, soft light, inspiration

This comprehensive set of image prompts will empower you to generate visually compelling content for your social media channels throughout the week, ensuring a consistent and professional brand presence.

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