Event Planning Toolkit
Run ID: 69cbaf7261b1021a29a8b6292026-03-31Business
PantheraHive BOS
BOS Dashboard

Complete event planning package with timeline, vendor checklist, budget tracker, marketing plan, run-of-show document, and post-event survey.

Marketing Strategy for the "Event Planning Toolkit"

This document outlines a comprehensive marketing strategy for the "Event Planning Toolkit," focusing on identifying the target audience, recommending effective channels, crafting compelling messages, and defining key performance indicators for success.


1. Target Audience Analysis

Understanding who benefits most from the "Event Planning Toolkit" is crucial for effective marketing. We've identified primary and secondary target segments based on their needs, pain points, and goals.

Primary Target Audience:

  • Individuals & First-Time Event Organizers:

* Description: People planning significant personal events (weddings, large birthday parties, family reunions) or their first corporate/community event (fundraiser, product launch, team-building).

* Pain Points: Overwhelm, lack of experience, fear of forgetting critical details, budget mismanagement, stress, desire for a professional outcome without professional help.

* Goals: A smooth, successful, and memorable event; feeling organized and in control; saving time and avoiding costly mistakes.

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

* Description: Companies without a dedicated in-house event planning team, where marketing managers, operations staff, or executive assistants are tasked with organizing corporate events (launches, conferences, holiday parties).

* Pain Points: Limited resources (time, budget, staff), need for standardization, desire to maintain brand professionalism, ensuring ROI on events.

* Goals: Efficiently planned and executed corporate events that align with business objectives; professional representation; maximizing event impact with limited resources.

  • Non-Profit Organizations:

* Description: Organizations relying on volunteers or small teams to plan fundraising galas, awareness campaigns, community events, and donor appreciation events.

* Pain Points: Budget constraints, reliance on volunteer efforts, need for clear communication and delegation, maximizing impact for their cause.

* Goals: Successful fundraising and awareness events; efficient use of resources; engaging volunteers and donors effectively.

  • Freelance Event Coordinators & Aspiring Planners:

* Description: Individuals building their event planning business or looking for a robust, ready-to-use system to professionalize their services and streamline client projects.

* Pain Points: Need for a reliable, comprehensive system; desire to impress clients; managing multiple projects efficiently.

* Goals: Professionalize their offerings; save time on administrative tasks; deliver consistent, high-quality service to clients.

Secondary Target Audience:

  • Educational Institutions: For students in hospitality or event management programs looking for practical tools.
  • Large Corporations: For specific departmental events or as a training resource for new staff involved in event coordination.

2. Channel Recommendations

To effectively reach the identified target audiences, a multi-channel approach combining digital and strategic partnerships is recommended.

Digital Marketing Channels:

  1. Content Marketing (Blog & Guides):

* Strategy: Create valuable, SEO-optimized blog posts and downloadable guides addressing common event planning challenges.

* Examples: "The Ultimate Event Planning Checklist for Beginners," "How to Create a Realistic Event Budget," "Vendor Management Best Practices for Corporate Events," "Marketing Your Non-Profit Event: A Step-by-Step Guide."

* Purpose: Attract organic traffic, establish authority, provide value, and capture leads.

  1. Search Engine Optimization (SEO):

* Strategy: Optimize website content for keywords related to event planning tools, templates, and solutions.

* Keywords: "event planning toolkit," "event management templates," "corporate event checklist," "wedding planning guide," "non-profit event budget tracker," "run of show document."

* Purpose: Ensure high visibility in search results when users actively seek event planning resources.

  1. Social Media Marketing:

* LinkedIn: (Primary for B2B, SMBs, Non-Profits, Freelancers) Share professional tips, success stories, and toolkit features. Target by job title (Marketing Manager, Operations Director) and company size.

* Facebook/Instagram: (Primary for Individuals, SMBs, Non-Profits) Use visually appealing content, short video tutorials, testimonials. Target based on interests (event planning, small business ownership, wedding planning).

* Pinterest: (Primary for Individuals, Freelancers) Create visually rich pins showcasing templates, checklists, and aesthetic event inspiration linking back to the toolkit.

* Purpose: Build community, drive traffic, and engage with different segments.

  1. Paid Advertising (PPC & Social Ads):

* Google Search Ads: Target high-intent keywords (e.g., "buy event planning toolkit," "event budget template download").

* LinkedIn Ads: Target specific job roles, industries, and company sizes (e.g., "Marketing Managers in the Tech Industry").

* Facebook/Instagram Ads: Leverage interest-based targeting (e.g., "wedding planning," "small business owner," "non-profit fundraising"). Use lookalike audiences based on website visitors or email lists.

* Purpose: Generate immediate traffic and conversions from highly qualified leads.

  1. Email Marketing:

* Strategy: Build an email list through lead magnets (e.g., free sample checklist, mini-guide).

* Content: Nurture sequences introducing the toolkit's features, benefits, case studies, testimonials, and special offers.

* Purpose: Nurture leads, drive repeat purchases/referrals, and build long-term customer relationships.

  1. Webinars & Online Workshops:

* Strategy: Host free or low-cost webinars demonstrating how to use the toolkit effectively for specific event types (e.g., "Plan Your First Corporate Event in 5 Steps," "Mastering Your Wedding Budget with Our Toolkit").

* Purpose: Showcase value, build trust, generate leads, and position the toolkit as an essential solution.

Partnership & Outreach Channels:

  1. Affiliate Marketing: Partner with event planning bloggers, industry influencers, and complementary service providers (e.g., event decor companies, catering services) to promote the toolkit for a commission.
  2. Industry Publications & Blogs: Seek opportunities for guest posts, sponsored content, or product reviews in reputable event planning and small business publications.
  3. B2B Outreach: Directly contact HR departments, marketing teams, or non-profit directors with tailored proposals for bulk licenses or customized toolkit versions.

3. Messaging Framework

The messaging framework will highlight the core value proposition while tailoring the language to resonate with each target audience's specific needs and aspirations.

Core Value Proposition:

"The Event Planning Toolkit: Your comprehensive, stress-free blueprint for flawlessly executed events, saving you time, money, and worry."

Key Messaging Themes:

  • Simplicity & Ease: "Effortlessly plan any event, big or small." "All-in-one solution for organized success."
  • Professionalism & Quality: "Elevate your event execution to a professional standard." "Deliver polished, memorable experiences."
  • Time & Cost Efficiency: "Save countless hours of planning time." "Avoid budget overruns and costly mistakes."
  • Completeness & Control: "Everything you need from concept to post-event analysis." "Stay organized and confidently in control."
  • Confidence & Peace of Mind: "Plan with confidence, knowing every detail is covered." "Reduce stress and enjoy the process."

Audience-Specific Messaging Examples:

  • For Individuals/First-Time Planners:

* "Don't know where to start? Our toolkit guides you step-by-step, making your dream event a reality without the stress."

* "Your wedding, your way – perfectly organized with our intuitive templates."

  • For SMBs & Startups:

* "Maximize your corporate event's impact with a streamlined, professional planning system that fits your budget and resources."

* "Ensure brand consistency and efficiency across all your company events."

  • For Non-Profit Organizations:

* "Amplify your mission with impeccably planned fundraising events. Our toolkit helps you maximize resources and impact."

* "Empower your volunteers with clear, actionable tools for successful events."

  • For Freelance Event Coordinators:

* "Enhance your client offerings and streamline your workflow with a proven, professional event planning system."

* "Deliver consistent excellence and impress every client with our comprehensive toolkit."

Call to Action (CTA) Examples:

  • "Download Your Toolkit Now"
  • "Get Started Today"
  • "Learn More & See What's Inside"
  • "Plan Your Best Event Yet"
  • "Request a Free Sample Checklist"

4. Key Performance Indicators (KPIs)

Measuring the success of the marketing strategy requires tracking specific metrics across various stages of the customer journey.

Website & Traffic Performance:

  • Unique Website Visitors: Number of distinct individuals visiting the toolkit's landing pages.
  • Page Views: Total views on product pages, features, and blog posts related to the toolkit.
  • Bounce Rate: Percentage of visitors who leave the site after viewing only one page.
  • Time on Page: Average time spent on key product and content pages.
  • Organic Search Rankings: Position of target keywords in search engine results.

Lead Generation & Conversion:

  • Lead Capture Rate: Percentage of website visitors who convert into leads (e.g., by downloading a free sample, signing up for a webinar).
  • Cost Per Lead (CPL): Total marketing spend divided by the number of leads generated.
  • Lead-to-Customer Conversion Rate: Percentage of leads that ultimately purchase the toolkit.
  • Email List Growth: Number of new subscribers to the email marketing list.

Sales & Revenue:

  • Number of Toolkits Sold: Total units of the "Event Planning Toolkit" purchased.
  • Total Revenue Generated: Gross revenue from toolkit sales.
  • Average Order Value (AOV): Average revenue per toolkit purchase (if different packages are offered).
  • Customer Acquisition Cost (CAC): Total sales and marketing spend divided by the number of new customers acquired.
  • Return on Investment (ROI): Profitability of marketing efforts relative to spend.

Marketing Channel Performance:

  • Click-Through Rate (CTR): For ads, email campaigns, and social media posts.
  • Conversion Rate by Channel: Which marketing channels are most effective at driving purchases.
  • Social Media Engagement: Likes, shares, comments, and follower growth.
  • Email Open Rate: Percentage of recipients who open marketing emails.
  • Affiliate Sales: Number of sales attributed to affiliate partners.

Customer Satisfaction & Retention (Post-Purchase):

  • Customer Reviews & Testimonials: Quantity and quality of feedback.
  • Net Promoter Score (NPS): (If a post-purchase survey is implemented) Measures customer loyalty and willingness to recommend.
  • Repeat Purchases/Referrals: (If applicable, e.g., for updated versions or related products).

By consistently monitoring these KPIs, the marketing strategy can be optimized to maximize reach, engagement, and ultimately, sales of the "Event Planning Toolkit."

gemini Output

Event Planning Toolkit: Comprehensive Guide & Resources

This Event Planning Toolkit provides a complete set of professional documents and templates designed to streamline your event planning process from conception to post-event analysis. Each component is crafted to ensure meticulous organization, effective communication, and successful execution of your event.


1. Event Planning Timeline

A detailed timeline is crucial for managing tasks, dependencies, and deadlines effectively. This template outlines key milestones and actions across different planning phases.

Event Title: [Insert Event Name]

Event Date(s): [Insert Date(s)]

Event Goal(s): [e.g., Increase brand awareness by 20%, Generate 100 leads, Raise $50,000 for charity]

| Phase | Estimated Timeframe | Key Tasks | Status | Responsible Party | Notes |

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

| Phase 1: Concept & Strategy | 9-12 Months Out | - Define event goals, objectives, and target audience.<br>- Establish preliminary budget and funding sources.<br>- Brainstorm event theme, format, and core content.<br>- Identify key stakeholders and form planning committee.<br>- Research potential dates to avoid conflicts.<br>- Draft initial project plan. | | | |

| Phase 2: Foundation & Venue | 6-9 Months Out | - Finalize event date(s) and secure primary venue.<br>- Develop detailed budget.<br>- Create event branding and initial marketing materials (logo, style guide).<br>- Identify key speakers/presenters/entertainers.<br>- Begin vendor research (catering, AV, photography, rentals).<br>- Establish registration platform/ticketing strategy.<br>- Draft initial sponsorship packages (if applicable). | | | |

| Phase 3: Detailed Planning | 3-6 Months Out | - Contract all major vendors (catering, AV, entertainment, photography/videography, security, rentals).<br>- Finalize speaker/performer agreements and content.<br>- Develop event agenda/program.<br>- Launch event website/registration.<br>- Initiate marketing and PR campaign.<br>- Secure necessary permits and insurance.<br>- Outline volunteer needs and recruitment plan.<br>- Design event layout and floor plans. | | | |

| Phase 4: Pre-Event Logistics | 1-3 Months Out | - Confirm all vendor logistics and delivery schedules.<br>- Finalize run-of-show document.<br>- Conduct site visits with key vendors.<br>- Train staff/volunteers.<br>- Send speaker/vendor information packets.<br>- Finalize catering menus and beverage orders.<br>- Order promotional materials (signage, badges, giveaways).<br>- Implement final marketing pushes.<br>- Conduct a walk-through rehearsal (if applicable). | | | |

| Phase 5: Final Preparations | 1-4 Weeks Out | - Finalize guest list and dietary requirements.<br>- Confirm all RSVPs and send final event reminders.<br>- Prepare registration packets (badges, programs).<br>- Confirm AV needs and test all equipment.<br>- Brief all staff and volunteers on their roles.<br>- Distribute event schedule/contact list to key personnel.<br>- Arrange for on-site emergency contacts and procedures.<br>- Confirm final counts with catering. | | | |

| Phase 6: Event Execution | Day-Of Event | - On-site setup and vendor coordination.<br>- Registration and guest check-in.<br>- Manage event flow according to run-of-show.<br>- Troubleshoot any issues promptly.<br>- Oversee speaker/performer transitions.<br>- Manage staff and volunteer teams.<br>- Document event with photos/videos. | | | Ensure clear communication with all teams. |

| Phase 7: Post-Event | 1 Day - 1 Month Post-Event | - Oversee venue breakdown and cleanup.<br>- Send thank-you notes to speakers, sponsors, vendors, volunteers, and attendees.<br>- Distribute post-event survey.<br>- Conduct post-event debrief with planning committee.<br>- Analyze survey results and feedback.<br>- Reconcile final budget.<br>- Share event highlights/photos on social media/website.<br>- Prepare final event report. | | | Gather all feedback for future improvements. |


2. Vendor Management Checklist

Managing multiple vendors requires a structured approach. This checklist helps track all essential vendor details and their status.

Event Title: [Insert Event Name]

Event Date(s): [Insert Date(s)]

| Vendor Category | Specific Service/Item | Vendor Name | Contact Person | Phone Number | Email Address | Quote Status | Contract Status | Deposit Paid | Final Payment Due | Notes |

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

| Venue | Main Event Space | [Venue Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Capacity, accessibility, included services. |

| | Accommodation (if any)| [Hotel Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Room block details, group rates. |

| Catering | Food & Beverage | [Caterer Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Menu, dietary restrictions, service style. |

| | Bar Service | [Bar Service Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Drink package, licensing. |

| Audiovisual (AV) | Sound, Lighting, Screens| [AV Company Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Equipment list, technician availability. |

| Entertainment | DJ/Band/Performer | [Artist/Group Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Performance schedule, rider requirements. |

| Photography/Video | Event Coverage | [Company Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Hours of coverage, deliverables (photos, video edits). |

| Rentals | Furniture/Decor | [Rental Company Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Specific items, delivery/pickup times. |

| | Linens/Tableware | [Rental Company Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | |

| Staffing/Security | Event Staff | [Agency Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Number of staff, roles, uniform. |

| | Security Personnel | [Security Company] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Number of guards, specific areas of coverage. |

| Marketing/PR | Graphic Design | [Designer Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Collateral, signage, web graphics. |

| | PR Agency | [Agency Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Media outreach, press releases. |

| Transportation | Shuttles/Valet | [Company Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Routes, schedule, vehicle types. |

| Miscellaneous | Printing | [Printer Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Badges, programs, flyers. |

| | Gifting/Swag | [Supplier Name] | [Contact Name] | [Phone] | [Email] | Received | Signed | Yes | [Date] | Item details, branding, delivery. |


3. Event Budget Tracker

A robust budget tracker is essential for financial control. This template helps manage estimated versus actual costs and track all event-related expenses and revenues.

Event Title: [Insert Event Name]

Event Date(s): [Insert Date(s)]

Budget Owner: [Name/Department]

Revenue Projections

| Revenue Source | Estimated Revenue | Actual Revenue | Notes |

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

| Ticket Sales | $ | $ | |

| Sponsorships | $ | $ | |

| Exhibitor Fees | $ | $ | |

| Merchandise Sales | $ | $ | |

| Donations/Grants | $ | $ | |

| Other | $ | $ | |

| TOTAL REVENUE | $ | $ | Variance: $ |

Expense Tracker

| Category | Item/Vendor | Estimated Cost | Actual Cost | Variance | Payment Status | Notes |

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

| Venue & Facilities| Venue Rental | $ | $ | $ | Paid | |

| | Setup/Teardown Fees | $ | $ | $ | Paid | |

| | Permits/Licenses | $ | $ | $ | Paid | |

| | Insurance | $ | $ | $ | Paid | |

| | Cleaning | $ | $ | $ | Paid | |

| Catering & F&B | Food | $ | $ | $ | Paid | |

| | Beverages (alcoholic) | $ | $ | $ | Paid | |

| | Beverages (non-alcoholic) | $ | $ | $ | Paid | |

| | Staffing (waiters, bartenders)| $ | $ | $ | Paid | |

| | Linens, Tableware, Glassware | $ | $ | $ | Paid | |

| AV & Production | Sound System | $ | $ | $ | Paid | |

| | Lighting | $ | $ | $ | Paid | |

| | Projectors/Screens | $ | $ | $ | Paid | |

| | Technicians | $ | $ | $ | Paid | |

| | Staging/Set Design | $ | $ | $ | Paid | |

| Entertainment | Performers/Speakers Fees | $ | $ | $ | Paid | |

| | Travel/Accommodation | $ | $ | $ | Paid | |

| Marketing & PR | Graphic Design | $ | $ | $ | Paid | |

| | Website/Registration Platform| $ | $ | $ | Paid | |

| | Advertising (digital/print) | $ | $ | $ | Paid | |

| | Public Relations | $ | $ | $ | Paid | |

| | Printing (posters, banners) | $ | $ | $ | Paid | |

| Staffing & Volunteers| Paid Staff Wages | $ | $ | $ | Paid | |

| | Volunteer Perks/Meals | $ | $ | $ | Paid | |

| | Security Personnel | $ | $ | $ | Paid | |

| Decor & Rentals | Furniture Rentals | $ | $ | $ | Paid | |

| | Floral/Decorations | $ | $ | $ | Paid | |

| | Signage | $ | $ | $ | Paid | |

| Miscellaneous | Gifts/Swag | $ | $ | $ | Paid | |

| | Photography/Videography | $ | $ | $ | Paid | |

| | Transportation | $ | $ | $ | Paid | |

| | Office Supplies | $ | $ | $ | Paid | |

| Contingency (10-15%)| Reserved for unforeseen expenses | $ | $ | $ | N/A | Crucial to allocate 10-15% of total budget for unexpected costs. |

| TOTAL EXPENSES | $ | $ | $ | | |

Budget Summary

  • Total Estimated Revenue: $
  • Total Estimated Expenses: $
  • Estimated Net Profit/Loss: $
  • Total Actual Revenue: $
  • Total Actual Expenses: $
  • Actual Net Profit/Loss: $

4. Event Marketing Plan

A well-structured marketing plan ensures your event reaches the right audience and generates maximum engagement.

Event Title: [Insert Event Name]

Event Date(s): [Insert Date(s)]

Target Audience: [e.g., Tech professionals aged 25-45, small business

gemini Output

Event Planning Toolkit: Comprehensive Package

This comprehensive Event Planning Toolkit provides all the essential documents and templates required to plan, execute, and evaluate a successful event. Designed for clarity and actionability, it covers every stage from initial concept to post-event analysis.


1. Event Planning Timeline Template

This timeline outlines key milestones and tasks, providing a structured approach to event planning. Adjust dates and tasks according to your event's specific needs and scale.

| Phase | Timeline (Suggested) | Key Tasks S.

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