Compliance Policy Generator
Run ID: 69ccf95f3e7fb09ff16a6ce42026-04-01Business
PantheraHive BOS
BOS Dashboard

Generate regulatory compliance policies including privacy policy, terms of service, cookie policy, DMCA policy, and accessibility statement.

Marketing Strategy for "Compliance Policy Generator"

This document outlines a comprehensive marketing strategy for the "Compliance Policy Generator," focusing on target audience analysis, recommended channels, a robust messaging framework, and key performance indicators (KPIs) to measure success.


1. Target Audience Analysis

Understanding who needs compliance policies and their specific pain points is crucial for effective marketing. Our primary target audience segments include:

  • Small to Medium-sized Businesses (SMBs) & Startups:

* Profile: E-commerce stores, SaaS companies, digital agencies, professional services, content creators, and local businesses with an online presence. Often have limited legal budgets and in-house expertise.

* Pain Points:

* High cost of traditional legal counsel for policy drafting.

* Lack of legal knowledge, leading to uncertainty about required policies.

* Time-consuming process of researching and drafting policies manually.

* Fear of non-compliance fines (e.g., GDPR, CCPA, ADA) and legal repercussions.

* Difficulty in keeping policies updated with evolving regulations.

* Desire for professional, trustworthy policies to build customer confidence.

* Needs: Affordable, easy-to-use, quick, and reliable solutions for generating legally sound policies.

  • Web Developers & Digital Agencies:

* Profile: Freelance developers, web design agencies, marketing agencies building websites or applications for clients.

* Pain Points:

* Need to provide comprehensive solutions to clients, including legal compliance.

* Time pressure to deliver projects quickly.

* Desire to add value to their services without becoming legal experts.

* Needs: A tool that allows them to quickly generate compliant policies for multiple clients, enhancing their service offering and efficiency.

  • Online Platforms & SaaS Providers (as potential partners/resellers):

* Profile: E-commerce platforms (Shopify, WooCommerce), website builders (Wix, Squarespace), web hosting providers, business incubators.

* Pain Points:

* Want to offer value-added services to their user base.

* Ensure their users are compliant, reducing platform-related legal risks.

* Needs: A reliable, easy-to-integrate policy generation solution to offer their customers, potentially through partnerships or integrations.

Key Demographics/Firmographics:

  • Business Size: 1-500 employees (primary focus).
  • Industry: E-commerce, SaaS, Technology, Digital Media, Consulting, Professional Services.
  • Geographic Focus: Initially, markets with stringent data privacy laws (EU, US, UK, Canada, Australia), with potential for global expansion.

2. Channel Recommendations

A multi-channel approach combining inbound and outbound strategies will be most effective in reaching our target audiences.

  • 2.1. Search Engine Optimization (SEO) & Content Marketing:

* Strategy: Create high-quality, informative content addressing common compliance questions and solutions. Target keywords related to specific policies and regulatory requirements.

* Examples:

* Blog Posts: "GDPR Compliance Checklist for Small Businesses," "How to Write a Privacy Policy for Your E-commerce Store," "Understanding DMCA: What Every Online Business Needs to Know."

* Guides & Templates: Free downloadable guides on various compliance topics, basic policy templates (as lead magnets).

* Keyword Targeting: "privacy policy generator," "terms of service template," "cookie policy example," "website accessibility statement," "DMCA policy generator."

* Why it works: Captures users actively searching for solutions to their compliance needs. Builds authority and trust.

  • 2.2. Paid Search (SEM/PPC):

* Strategy: Run targeted Google Ads campaigns for high-intent keywords.

* Examples: Bid on keywords like "generate privacy policy," "legal policy creation tool," "online terms of service."

* Why it works: Provides immediate visibility to users with urgent compliance needs. Allows for precise targeting and budget control.

  • 2.3. Social Media Marketing (Organic & Paid):

* Strategy: Engage on platforms where our target audience congregates.

* Platforms:

* LinkedIn: Ideal for B2B targeting (SMB owners, startup founders, legal tech professionals). Share industry news, compliance updates, thought leadership. Run targeted ads for business owners.

* Facebook/Instagram: Effective for reaching SMBs, e-commerce owners, and content creators. Use interest-based targeting (e.g., "small business owner," "e-commerce," "online marketing").

* Twitter: Engage with tech startup communities, legal tech discussions, and small business trends.

* Content: Infographics on compliance facts, short videos explaining policy importance, testimonials, links to blog content.

  • 2.4. Partnerships & Integrations:

* Strategy: Collaborate with complementary platforms and service providers.

* Examples:

* E-commerce Platforms: Partner with Shopify, WooCommerce, BigCommerce to offer the policy generator as an app or integrated service.

* Website Builders: Integrate with Wix, Squarespace, WordPress (via plugins).

* Web Hosting Providers: Offer the tool as a value-add for their customers.

* Business Accelerators/Incubators: Provide compliance workshops and offer the tool to their startups.

* Legal Tech Blogs/Influencers: Sponsored content or reviews.

* Why it works: Leverages existing user bases, builds credibility, and creates new distribution channels.

  • 2.5. Email Marketing:

* Strategy: Build an email list through content downloads, free trials, and lead magnets. Nurture leads with valuable content and convert them into customers.

* Examples: Welcome sequences for new sign-ups, newsletters with compliance updates, special offers, case studies.

* Why it works: Direct communication channel for nurturing leads and retaining customers.

  • 2.6. Public Relations (PR) & Media Outreach:

* Strategy: Secure features in relevant tech, business, and legal publications.

* Examples: Pitch stories about the importance of compliance, features on "best tools for startups," expert commentary on new regulations.

* Why it works: Builds brand awareness, credibility, and can generate significant organic traffic and backlinks.


3. Messaging Framework

Our messaging will emphasize ease, affordability, professionalism, and risk mitigation, directly addressing the pain points of our target audience.

3.1. Core Value Proposition:

"Generate professional, legally sound compliance policies in minutes, not days. Protect your business, build customer trust, and avoid costly fines with our comprehensive, easy-to-use policy generator."

3.2. Key Message Pillars:

  • Simplify Compliance:

* "Effortless Policy Generation: No legal jargon, no complex forms. Just quick, intuitive policy creation."

* "From Blank Page to Full Compliance: Get all essential policies – Privacy, ToS, Cookie, DMCA, Accessibility – in one place."

* "Stay Ahead of Regulations: Policies regularly updated to reflect the latest legal requirements."

  • Protect Your Business & Mitigate Risk:

* "Avoid Costly Fines: Ensure your business meets legal obligations like GDPR, CCPA, and ADA."

* "Legal Peace of Mind: Focus on growing your business, knowing your policies are professionally crafted."

* "Reduce Liability: Clear, comprehensive policies help protect your business from potential legal challenges."

  • Build Trust & Professionalism:

* "Instill Customer Confidence: Transparent and accessible policies demonstrate your commitment to user data and rights."

* "Project a Professional Image: High-quality, polished policies enhance your brand's credibility."

* "Show You Care: Demonstrate respect for user privacy and accessibility."

  • Save Time & Money:

* "Affordable Legal Solutions: A fraction of the cost of traditional legal services, without compromising quality."

* "Time is Money: Generate policies in minutes, freeing up valuable time for core business activities."

3.3. Call to Action (CTA) Examples:

  • "Generate Your Policies Now"
  • "Start Your Free Policy Scan" (if applicable)
  • "Get Compliant Today"
  • "Build Trust with Professional Policies"
  • "Learn More About Essential Business Policies"

4. Key Performance Indicators (KPIs)

Measuring the effectiveness of our marketing efforts is crucial for continuous optimization.

  • 4.1. Website Performance:

* Unique Visitors: Total number of distinct users visiting the website.

* Traffic Sources: Percentage of traffic from organic search, paid ads, social media, referrals, direct.

* Bounce Rate: Percentage of visitors who leave the site after viewing only one page.

* Time on Page: Average time users spend on key pages (e.g., pricing, features, policy generation tool).

* Pages Per Session: Average number of pages viewed during a session.

  • 4.2. Lead Generation & Conversion:

* Policy Generations: Number of policies generated (including free trials/basic versions).

* Trial Sign-ups: Number of users who sign up for a free trial or freemium tier.

* Paid Subscriptions/Purchases: Number of paying customers for the policy generator.

* Conversion Rate: Percentage of visitors who complete a desired action (e.g., trial sign-up, policy generation, purchase).

* Cost Per Lead (CPL): Total marketing cost divided by the number of leads generated.

* Customer Acquisition Cost (CAC): Total marketing and sales cost divided by the number of new paying customers.

  • 4.3. Marketing Channel Performance:

* SEO Rankings: Position in search results for target keywords.

* Organic Search Visibility: Percentage of impressions for organic search queries.

* Paid Ad ROI: Return on investment for PPC campaigns.

* Social Media Engagement: Likes, shares, comments, click-through rates on posts.

* Email Open & Click-Through Rates: For newsletters and promotional emails.

* Partner Referrals: Number of leads/customers acquired through partnerships.

  • 4.4. Brand Awareness & Authority:

* Brand Mentions: Number of times the brand is mentioned online (social media, news, blogs).

* Direct Traffic: Users who type the website URL directly.

* Search Volume for Brand Name: Trends in branded search queries.

* Backlinks: Number and quality of inbound links to the website.

  • 4.5. Customer Satisfaction & Retention:

* Net Promoter Score (NPS): Measures customer loyalty and willingness to recommend.

* Customer Reviews/Testimonials: Feedback from users on external platforms and the website.

* Churn Rate: Percentage of customers who stop using the service over a given period.

* Customer Lifetime Value (CLTV): Estimated total revenue a

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