Product Description Writer
Run ID: 69cb8f7561b1021a29a8a2b12026-03-31E-commerce
PantheraHive BOS
BOS Dashboard

Step 1 of 3: Research Topic - Product Description Writer

Overview of "Product Description Writer"

A Product Description Writer is a professional responsible for crafting compelling and informative text that describes a product and its benefits to potential customers. The primary goal is to persuade the reader to make a purchase by highlighting the product's features, advantages, and solutions it offers. In today's digital landscape, this role often involves not just creative writing but also an understanding of search engine optimization (SEO), brand voice, and consumer psychology.

This research aims to provide a comprehensive understanding of what constitutes an effective product description, the strategies involved in writing them, and how modern tools, particularly AI, can augment this process.

Core Components of an Effective Product Description

An effective product description goes beyond merely listing features; it tells a story, addresses customer pain points, and inspires action. Key components include:

  • Target Audience Focus: Understanding who the product is for (demographics, psychographics) is crucial. The language, tone, and emphasis on benefits must resonate directly with this audience.
  • Features vs. Benefits:

Features: What the product is* (e.g., "12-megapixel camera").

Benefits: What the product does for the customer* (e.g., "Capture stunning, high-resolution photos that preserve your precious memories"). Effective descriptions always translate features into tangible benefits.

  • Unique Selling Proposition (USP): Clearly articulating what makes the product stand out from competitors. Why should a customer choose this product over another?
  • Brand Voice and Tone: Maintaining consistency with the overall brand identity. Is the brand playful, professional, luxurious, approachable? The description should reflect this.
  • Clarity and Conciseness: While detailed, descriptions should be easy to read and understand. Avoid jargon where possible, or explain it simply. Get straight to the point.
  • Emotional Appeal: Tapping into customer desires, aspirations, or pain points. How will the product make their life better, easier, or more enjoyable?
  • Call to Action (CTA): While not always explicit in the description itself, the overall text should guide the customer towards the next step (e.g., "Add to Cart," "Learn More," "Shop Now").
  • Search Engine Optimization (SEO): Integrating relevant keywords naturally throughout the description helps the product rank higher in search results, increasing visibility and organic traffic.
  • Storytelling: Weaving a narrative around the product can make it more memorable and relatable. How does the product fit into the customer's life or solve a problem they face?

Strategic Approaches to Product Description Writing

Successful product descriptions often employ a blend of these strategies:

  1. AIDA (Attention, Interest, Desire, Action): A classic marketing framework.

* Attention: Hook the reader immediately.

* Interest: Provide compelling information about the product.

* Desire: Connect features to benefits that appeal to emotions and needs.

* Action: Guide them to purchase.

  1. Problem-Solution: Identify a common customer problem and position the product as the ideal solution.
  2. Sensory Language: Use words that appeal to the five senses to create a vivid image and immersive experience for the reader.
  3. Social Proof: Briefly mention awards, high ratings, or testimonials (if space permits or link out).
  4. Scannability: Use bullet points, short paragraphs, bold text, and subheadings to make the description easy to skim and digest, especially on mobile devices.

The Role of AI in Product Description Writing

Artificial Intelligence (AI) tools, like Gemini, are revolutionizing product description writing by offering unprecedented efficiency, scalability, and insight.

  • Rapid Generation: AI can generate multiple variations of product descriptions in seconds, significantly reducing the time-to-market for new products.
  • Scalability: For businesses with large product catalogs, AI can produce descriptions for hundreds or thousands of products, a task that would be impossible for human writers alone.
  • SEO Optimization: AI can analyze keywords, search trends, and competitor descriptions to suggest and integrate highly effective SEO terms, improving discoverability.
  • Brand Voice Consistency: With proper training and prompting, AI can adhere to specific brand guidelines, ensuring a consistent tone and style across all product descriptions.
  • A/B Testing & Optimization: AI can generate diverse descriptions that can be A/B tested to determine which resonate most effectively with customers, leading to data-driven optimization.
  • Multilingual Support: AI can translate and localize product descriptions for international markets, maintaining cultural relevance and nuance.
  • Idea Generation & Brainstorming: AI can act as a creative partner, providing fresh angles, benefit statements, and headline ideas that human writers might not immediately consider.

Challenges in Product Description Writing (and how AI helps)

| Challenge | How AI Helps |

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

| Writer's Block/Lack of Inspiration | Generates initial drafts, outlines, and diverse creative angles. |

| Time Constraints | Drastically reduces writing time from hours to minutes, enabling rapid deployment. |

| Maintaining Consistency | Enforces brand guidelines, tone, and style across a large volume of descriptions. |

| SEO Complexity | Identifies and integrates relevant keywords, analyzes search intent, and optimizes for ranking. |

| Scalability for Large Catalogs | Automates the creation of descriptions for thousands of products, overcoming human capacity limitations. |

| Translating Features to Benefits | Excellently reframes technical features into clear, customer-centric benefits. |

| Avoiding Repetition | Can generate unique phrasing and descriptions even for similar products, preventing monotony. |

Actionable Recommendations for Workflow Execution

Based on this research, the next steps in your "Product Description Writer" workflow should focus on leveraging this understanding and AI capabilities:

  1. Define Product Details & Target Audience: Before using any tool, clearly outline the product's core features, benefits, USP, and the specific target audience.
  2. Establish Brand Guidelines: Provide clear instructions on desired tone, style, and any specific language to use or avoid.
  3. Keyword Research (Initial Phase): Identify primary and secondary keywords relevant to the product and its category.
  4. Prompt Engineering: Formulate detailed and specific prompts for the AI, incorporating all the above elements to guide its output effectively.
  5. Iterate and Refine: Understand that AI-generated content is a starting point. Human oversight is crucial for ensuring accuracy, brand alignment, and emotional resonance.

This comprehensive understanding of product description writing, combined with the strategic application of AI, will enable the generation of highly effective and professional product descriptions in the subsequent steps of this workflow.

gemini Output

As a professional AI assistant, I have generated comprehensive and engaging content for the "Product Description Writer" based on your input. This output is designed to be ready for publishing, featuring clear headlines, body text, and calls to action, structured for maximum impact.


Unleash Your Products' Potential: Introducing the Ultimate AI Product Description Writer

Craft Compelling, High-Converting Product Descriptions in Minutes.

In today's competitive digital marketplace, your product descriptions are more than just text – they are your 24/7 sales force. They inform, persuade, and ultimately drive purchasing decisions. But crafting engaging, SEO-optimized, and brand-consistent descriptions for every single product can be a daunting, time-consuming, and often expensive task.

Imagine a world where captivating product stories write themselves.

Our AI-Powered Product Description Writer transforms this vision into reality. Leveraging advanced artificial intelligence, this powerful tool empowers businesses of all sizes to generate high-quality, unique, and persuasive product descriptions with unparalleled speed and efficiency. Say goodbye to writer's block, inconsistent messaging, and endless editing cycles.


Key Features Designed for Your Success

Our Product Description Writer is built with a suite of intelligent features to ensure your products shine.

  • AI-Driven Content Generation: Powered by sophisticated large language models like Gemini, our tool understands your product's core attributes and target audience to generate unique, persuasive descriptions that resonate.
  • Customizable Templates & Styles: Choose from a diverse library of industry-specific templates or define your own. Tailor the output to match your brand's voice – whether it's playful, professional, luxurious, or technical.
  • Integrated SEO Optimization: Automatically incorporates relevant keywords, LSI terms, and semantic structures to improve your product's visibility on search engines, driving more organic traffic to your listings.
  • Multi-Tone & Language Support: Effortlessly switch between different tones (e.g., informative, exciting, problem-solving) and generate descriptions in multiple languages to reach a global audience.
  • Batch Generation & Editing: Create hundreds of descriptions simultaneously for entire product catalogs. Our intuitive editor allows for quick refinements and personalized touches before publishing.
  • Feature-Benefit Transformation: Input raw product features, and our AI will expertly transform them into compelling benefits that highlight value and speak directly to customer needs.
  • Seamless Platform Integration (Optional): Designed to integrate with popular e-commerce platforms and content management systems for a streamlined workflow (specific integrations may vary).

Transform Your Product Listings – The Benefits You'll Experience

Adopting our AI Product Description Writer isn't just about saving time; it's about elevating your entire e-commerce strategy.

  • Boost Sales & Conversions: High-quality, engaging descriptions directly translate into increased customer interest and higher conversion rates.
  • Save Time & Resources: Drastically reduce the hours spent on manual writing, editing, and optimizing, freeing up your team for other critical tasks.
  • Enhance Brand Consistency: Ensure every product description aligns with your brand's unique voice and messaging, building trust and recognition.
  • Improve Search Engine Rankings: Leverage built-in SEO capabilities to rank higher in search results, attracting more qualified leads to your products.
  • Eliminate Writer's Block: Never struggle for the right words again. Our AI provides instant inspiration and ready-to-use content.
  • Scale Your Business with Ease: Generate descriptions for new products or entire collections in a fraction of the time, supporting rapid business growth.

How It Works: Simple Steps to Stunning Descriptions

Getting started with our Product Description Writer is intuitive and efficient.

  1. Input Product Details: Provide key information like product name, features, target audience, and any specific keywords.
  2. Choose Style & Tone: Select your desired writing style, tone, and preferred description length.
  3. Generate & Refine: Our AI instantly crafts multiple description options. Review, make any final edits, and publish with confidence!

Who Can Benefit?

This powerful tool is indispensable for anyone looking to optimize their product content strategy:

  • E-commerce Businesses: Online retailers of all sizes, from startups to established brands.
  • Marketing Agencies: Generate compelling content for clients across various industries.
  • Small Business Owners: Create professional-grade descriptions without the need for a dedicated copywriter.
  • Product Managers: Ensure consistent and effective communication of product value.
  • Content Creators: Streamline content production for catalogs, marketplaces, and websites.

Ready to Revolutionize Your Product Content?

Stop wasting time and start selling more. Our AI Product Description Writer is the intelligent solution you need to captivate your audience and drive unparalleled growth.

Don't just list your products – tell their story.

👉 Get Started Today and Transform Your Product Descriptions!

📞 Contact Us for a Personalized Demo!

gemini Output

Product Description Writer: Polished & Formatted Output

This output represents the final, polished, and professionally formatted product descriptions generated through the "Product Description Writer" workflow. Our goal in this polish_and_format step is to ensure the descriptions are not only compelling and informative but also optimized for readability, SEO, and conversion, making them ready for immediate use on your e-commerce platform, website, or marketing materials.


1. Understanding the Polishing & Formatting Process

The polish_and_format step takes the raw descriptions generated by the AI (e.g., Gemini) and refines them by:

  • Enhancing Readability: Improving sentence structure, flow, and paragraph breaks.
  • Optimizing for SEO: Incorporating relevant keywords naturally and strategically.
  • Highlighting Key Benefits: Rephrasing features into clear customer benefits.
  • Adding Persuasive Language: Using power words and calls to action.
  • Ensuring Brand Voice Consistency: Aligning the tone with your brand's identity (where specified in initial prompts).
  • Formatting for Web: Using bullet points, bolding, and short paragraphs for scannability.
  • Error Correction: Proofreading for grammar, spelling, and punctuation.

2. Your Polished Product Descriptions

Below are examples of professionally polished and formatted product descriptions. Please note that for optimal results, specific product details and target audience information provided in your initial prompt are crucial.


Example 1: "ZenithFlow Smart Water Bottle"

Product Name: ZenithFlow™ Smart Hydration Bottle (500ml)

Headline: Stay Perfectly Hydrated, Effortlessly. Introducing the ZenithFlow™ Smart Bottle.

Description:

Elevate your daily hydration with the revolutionary ZenithFlow™ Smart Hydration Bottle. Designed for the modern individual, this sleek 500ml bottle seamlessly integrates into your active lifestyle, ensuring you meet your hydration goals with unparalleled ease and intelligence. Forget guesswork – ZenithFlow™ is your personal hydration coach, reminding you when to sip and tracking your intake with precision.

Key Features & Benefits:

  • Intelligent Hydration Tracking: Built-in sensor and companion app monitor your water intake in real-time, providing personalized insights.
  • Gentle Hydration Reminders: Soft glowing base or subtle app notifications prompt you to drink, keeping you on track without disruption.
  • Temperature Retention: Double-walled, vacuum-insulated stainless steel keeps your drinks cold for 24 hours or hot for 12 hours.
  • Leak-Proof & Durable Design: Crafted from premium, food-grade materials with a secure, spill-proof lid, perfect for gym, office, or travel.
  • Sleek & Ergonomic: Modern aesthetic with a comfortable grip, available in multiple sophisticated colors to match your style.
  • Long-Lasting Battery: Enjoy weeks of smart functionality on a single charge.

Why Choose ZenithFlow™?

Transform your health and energy levels by making consistent hydration a habit. The ZenithFlow™ Smart Hydration Bottle isn't just a bottle; it's a commitment to a healthier, more vibrant you.

Call to Action: Hydrate Smarter. Live Better. Get Your ZenithFlow™ Today!


Example 2: "AuraGlow Anti-Aging Serum"

Product Name: AuraGlow™ Revitalizing Anti-Aging Serum (30ml)

Headline: Unveil Timeless Beauty: Experience the AuraGlow™ Difference.

Description:

Reclaim your skin's youthful radiance with AuraGlow™ Revitalizing Anti-Aging Serum. This luxurious, potent formula is meticulously crafted to combat the visible signs of aging, leaving your skin feeling firmer, smoother, and incredibly luminous. Infused with cutting-edge science and nature's finest ingredients, AuraGlow™ is your secret to a visibly younger, more vibrant complexion.

Key Benefits & Ingredients:

  • Visibly Reduces Fine Lines & Wrinkles: Powered by a unique blend of Peptides and Hyaluronic Acid, plumping skin and minimizing lines.
  • Boosts Collagen Production: Stimulates natural collagen synthesis for enhanced firmness and elasticity.
  • Deep Hydration & Radiance: Squalane and Vitamin E deeply moisturize, restoring a healthy, dewy glow.
  • Evens Skin Tone: Targets dark spots and discoloration, promoting a more uniform and bright complexion.
  • Lightweight & Fast-Absorbing: Non-greasy formula penetrates quickly, making it perfect for daily use under makeup or alone.
  • Dermatologist-Tested: Gentle yet effective, suitable for all skin types, including sensitive skin. Paraben-free, sulfate-free.

How to Use:

Apply 2-3 drops to a clean face and neck every morning and evening before moisturizing. Gently massage until fully absorbed.

Experience the Transformation:

With consistent use, AuraGlow™ helps you defy age gracefully, revealing skin that feels incredibly soft, looks remarkably youthful, and truly glows from within.

Call to Action: Illuminate Your Skin. Discover AuraGlow™ Now!


Example 3: "EcoPaws Biodegradable Dog Waste Bags"

Product Name: EcoPaws™ Premium Biodegradable Dog Waste Bags (240 Count)

Headline: Walk Your Dog Responsibly. Choose EcoPaws™ Biodegradable Bags.

Description:

Make every walk an eco-friendly one with EcoPaws™ Premium Biodegradable Dog Waste Bags. Designed for conscious pet parents, these durable, leak-proof bags offer a responsible solution for pet waste, breaking down naturally to minimize your environmental paw print. Strong, reliable, and Earth-friendly – because caring for your pet shouldn't compromise the planet.

Why EcoPaws™ is the Smart Choice:

  • 100% Biodegradable & Compostable: Certified to break down in compost environments, reducing landfill waste.
  • Extra Thick & Leak-Proof: Superior strength ensures no rips, tears, or unpleasant surprises.
  • Large & Easy to Open: Generous size (9 x 13 inches) accommodates waste from all dog breeds, with an easy-tear perforation.
  • Unscented for Sensitive Noses: Free from artificial fragrances, ideal for both pets and owners.
  • Convenient Roll Format: Fits standard leash dispensers, making them perfect for walks and travel.
  • Bulk Pack Value: 240 bags across 16 rolls provide long-lasting supply, reducing frequent repurchases.

Pawsitive Impact:

Join the growing community of pet owners who choose sustainability without sacrificing quality. With EcoPaws™, you're not just cleaning up after your pet; you're contributing to a healthier planet for everyone.

Call to Action: Be a Responsible Pet Parent. Add EcoPaws™ to Your Cart Today!


3. Key Elements for Optimal Product Descriptions

To ensure your product descriptions are always top-tier, consider these essential components:

  1. Compelling Headline: Grab attention immediately, highlighting a key benefit or unique selling proposition.
  2. Engaging Introduction: Set the stage, connect with the customer's needs or desires, and introduce the product's core value.
  3. Detailed Features & Benefits:

Features: What the product is or has*.

Benefits: What the feature does for the customer*. Always translate features into benefits. Use bullet points for readability.

  1. Problem/Solution Narrative (Optional but Powerful): Address a common pain point and position your product as the ideal solution.
  2. Brand Story/Ethos (Optional): Infuse your brand's values, mission, or unique selling philosophy.
  3. Call to Action (CTA): Clearly tell the customer what to do next (e.g., "Add to Cart," "Learn More," "Shop Now").
  4. SEO Keywords: Naturally integrate relevant keywords that your target audience might use to search for your product.
  5. Technical Specifications (If Applicable): For electronics, machinery, etc., provide precise measurements, materials, compatibility, etc., typically in a separate section or bullet list.
  6. Social Proof/Testimonials (Consider integrating or placing nearby): While not part of the description itself, user reviews and ratings heavily influence purchasing decisions.

4. Actionable Advice for Maximizing Your Output

To get the most out of the "Product Description Writer" workflow:

  • Provide Detailed Input: The quality of the output directly correlates with the quality of your input. Be specific about:

* Product Name & Type: (e.g., "Organic Green Tea Blend," "Ergonomic Office Chair")

* Key Features: (e.g., "Made with 100% organic matcha," "Adjustable lumbar support")

* Target Audience: (e.g., "Health-conscious millennials," "Remote workers seeking comfort")

* Unique Selling Points (USPs): What makes your product different or better?

* Desired Tone: (e.g., "Luxurious," "Informative," "Playful," "Professional")

* Keywords: Any specific terms you want to include for SEO.

* Length Preference: (e.g., "Short & concise," "Detailed & comprehensive")

* Call to Action (Optional): If you have a specific CTA in mind.

  • Review and Refine: While the output is polished, always review it to ensure it perfectly aligns with your brand voice, product specifics, and current marketing campaigns. Minor tweaks for emphasis or personalization are always encouraged.
  • A/B Test: Consider testing different versions of your product descriptions on your e-commerce platform to see which performs best in terms of conversion rates.
  • Integrate Visuals: Remember that product descriptions work best in conjunction with high-quality product images and videos.

We are confident that these polished and formatted product descriptions will significantly enhance your product listings and engage your customers more effectively. Should you require further iterations or have specific customization requests, please provide updated input, and we will refine the descriptions accordingly.

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