Real Estate Listing Generator
Run ID: 69cb4bb061b1021a29a87b7b2026-03-31Real Estate
PantheraHive BOS
BOS Dashboard

Create professional real estate listings with compelling descriptions, feature highlights, neighborhood analysis, pricing comparisons, and marketing copy.

Step 1 of 3: Property Analysis Requirements & Data Collection

This document outlines the essential data points and analytical framework required for a comprehensive property analysis, which is the foundational first step in generating a professional and compelling real estate listing. Since specific property details were not provided in the initial request, this output details the necessary information to proceed effectively.


1. Introduction to Property Analysis

The analyze_property step is critical for understanding the unique characteristics, value proposition, and market positioning of a real estate asset. A thorough analysis ensures that the subsequent listing generation (steps 2 & 3) is accurate, compelling, and strategically aligned with market expectations. This phase focuses on collecting granular data about the property itself, its immediate surroundings, and its potential appeal to target buyers.

2. Key Data Categories Required for Analysis

To generate a detailed professional output, we require comprehensive information across the following categories. Please provide as much detail as possible for each point:

2.1. Basic Property Identification

  • Property Type: (e.g., Single-Family Home, Condo, Townhouse, Multi-Family, Land, Commercial)
  • Full Address: (Street, City, State, Zip Code)
  • Listing Price (Target/Ask): (If known, helps contextualize analysis)
  • Number of Bedrooms:
  • Number of Bathrooms: (Specify full/half)
  • Total Square Footage: (Living space)
  • Lot Size: (Square feet or acres)
  • Year Built:
  • Property Style/Architecture: (e.g., Modern, Colonial, Ranch, Victorian, Contemporary)
  • HOA/Condo Fees: (If applicable, including what they cover)

2.2. Interior Features & Condition

  • Room Breakdown: (e.g., Living Room, Dining Room, Kitchen, Family Room, Office, Basement, Attic – specify finished/unfinished)
  • Key Interior Features:

* Flooring: (e.g., Hardwood, Tile, Carpet, Laminate – specify rooms)

* Kitchen: (Appliance brands, countertop materials, cabinet style, island, pantry, eat-in area)

* Bathrooms: (Renovated? Fixture types, vanity materials, shower/tub details)

* Fireplace(s): (Type, location)

* Lighting: (Recessed, smart lighting, designer fixtures)

* Built-ins/Storage: (Closet systems, shelving)

* Smart Home Technology: (Thermostat, security, lighting, speakers)

* Window Types: (Energy-efficient, double-pane)

  • Recent Upgrades/Renovations: (List all, with dates if possible – e.g., kitchen remodel 2022, new HVAC 2021)
  • Overall Interior Condition: (Excellent, Good, Fair, Needs Renovation)

2.3. Exterior Features & Lot Details

  • Garage: (Attached/Detached, Number of cars, Features like EV charger)
  • Parking: (Driveway, Street, Carport – number of spaces)
  • Outdoor Living Spaces: (Deck, Patio, Balcony, Porch, Pool, Hot Tub, Outdoor Kitchen)
  • Landscaping: (Mature trees, garden, irrigation system, fencing)
  • Roof Type & Age:
  • Exterior Material: (Brick, Siding, Stucco, Stone)
  • Views: (Waterfront, City, Mountain, Park, Greenbelt)
  • Unique Lot Features: (Corner lot, cul-de-sac, large yard, private, wooded)
  • Frontage: (e.g., lakefront, golf course front, ocean view)

2.4. Systems & Utilities

  • Heating System: (Type, Fuel source, Age)
  • Cooling System: (Type, Age)
  • Water Heater: (Type, Age)
  • Electrical Panel: (Amperage, recent upgrades)
  • Plumbing: (Pipe materials, recent updates)
  • Sewer/Septic:
  • Water Source: (Municipal, Well)

2.5. Unique Selling Propositions & Lifestyle

  • What makes this property stand out? (e.g., historic charm, modern design, rare features, exceptional views)
  • Target Buyer Profile: (Who is the ideal buyer for this property? Family, young professional, empty-nester, investor?)
  • Any specific stories or history related to the property? (Can add character to the listing)

3. Analytical Approach (Once Data is Provided)

Upon receiving the detailed property information, our analysis will focus on:

  • Feature Extraction: Identifying and categorizing all key features, upgrades, and unique selling points.
  • Value Proposition Identification: Pinpointing what makes the property desirable and attractive to potential buyers.
  • Condition Assessment: Evaluating the overall state of the property to inform appropriate descriptive language.
  • Lifestyle Integration: Understanding how the property's features support a particular lifestyle (e.g., entertaining, quiet retreat, active family living).
  • Preliminary Keyword Optimization: Identifying terms and phrases that will resonate with online searches and target demographics.
  • Comparative Data Preparation: While detailed CMA is a subsequent step, this data will lay the groundwork for comparing the property against similar listings in the market.

4. Recommendations & Next Steps

To proceed with generating a professional real estate listing, please provide the most comprehensive and accurate information possible for the categories detailed above.

Action Required from User:

  • Compile and submit the requested property data. The more detailed the information, the more precise and compelling the generated listing will be.
  • Highlight any specific features or aspects you wish to emphasize. If there are particular elements you believe are the strongest selling points, please call them out.

Once this data is received, we will move to Step 2: Market & Neighborhood Analysis, where we will contextualize your property within the local real estate landscape, followed by Step 3: Listing Generation.

gemini Output

Real Estate Listing Generator: Professional Listing Content

This comprehensive output provides ready-to-publish, engaging content for your real estate listing. It includes compelling descriptions, highlighted features, a neighborhood overview, and powerful marketing copy designed to attract potential buyers. Please customize the bracketed placeholders [ ] with your specific property details.


Main Listing Headline Options

Choose the headline that best fits the property's primary appeal:

  • Option 1 (Luxury/Exclusive): [Address/Property Type]: Your Sanctuary Awaits in [Neighborhood Name] – Unrivaled Elegance & Modern Comfort
  • Option 2 (Family/Spacious): [Address/Property Type]: Grand Living Redefined – Spacious Family Home with [Number] Beds, [Number] Baths & Expansive Yard
  • Option 3 (Modern/Renovated): [Address/Property Type]: Sophisticated Urban Oasis: Fully Renovated [Property Type] with Designer Finishes & Smart Home Tech
  • Option 4 (Location/Convenience): [Address/Property Type]: Prime [Neighborhood Name] Living – Walk to Everything! Stylish [Property Type] Steps from [Key Amenity]

1. Property Overview & Description

  • Catchy Opening Paragraph:

Step into a world where modern luxury meets unparalleled comfort. This exquisite [Number]-bedroom, [Number]-bathroom [Property Type] at [Full Property Address] offers an exceptional living experience in the heart of the highly sought-after [Neighborhood Name]. Meticulously designed and impeccably maintained, this residence presents a rare opportunity to own a piece of paradise, perfect for discerning buyers seeking both elegance and convenience.

  • Highlighting Key Lifestyle & Features (Body Paragraph 1):

From the moment you enter, you'll be captivated by the [e.g., bright, open-concept floor plan, stunning architectural details, abundant natural light]. The spacious [e.g., living room with soaring ceilings, chef's kitchen, master suite] provides an inviting atmosphere for both relaxation and entertaining. Imagine [e.g., cozy evenings by the fireplace, hosting gourmet dinners in your state-of-the-art kitchen, enjoying morning coffee on your private balcony]. Every detail has been thoughtfully curated to create a harmonious blend of style and functionality.

  • Unique Selling Points & Benefits (Body Paragraph 2):

This home is not just a dwelling; it's a lifestyle upgrade. Boasting [e.g., recent renovations, smart home technology, energy-efficient features, breathtaking views of X], it offers comfort and sophistication at every turn. The [e.g., private backyard oasis, serene patio, expansive deck] extends your living space outdoors, perfect for [e.g., al fresco dining, entertaining guests, gardening, children's play]. With [e.g., ample storage, a dedicated home office, a versatile bonus room], this property effortlessly adapts to your evolving needs.


2. Key Features & Amenities

A detailed breakdown of the property's best attributes.

  • Interior Highlights:

* Bedrooms: [Number] generously sized bedrooms, including a luxurious master suite with [e.g., walk-in closet, spa-like ensuite bathroom, private balcony].

* Bathrooms: [Number] full bathrooms and [Number] half bathrooms, featuring [e.g., designer tiles, dual vanities, rainfall showers, deep soaking tubs].

* Kitchen: Gourmet chef's kitchen equipped with [e.g., professional-grade stainless steel appliances (Sub-Zero, Wolf), custom cabinetry, quartz/granite countertops, oversized island with breakfast bar, pantry].

* Living Spaces: Open-concept living and dining areas, [e.g., cozy family room with fireplace, dedicated home office/den, versatile bonus room/media room].

* Flooring: [e.g., Hardwood floors throughout, plush carpeting in bedrooms, elegant tile in wet areas].

* Lighting: [e.g., Recessed lighting, stylish fixtures, ample natural light from large windows].

* Climate Control: [e.g., Central AC/Heating, smart thermostat (Nest/Ecobee), ceiling fans].

* Additional: [e.g., In-unit laundry room, ample storage solutions, smart home integration (lighting, security)].

  • Exterior & Property Highlights:

* Lot Size: Generous [e.g., 0.25-acre] lot with [e.g., mature landscaping, privacy hedges].

* Outdoor Space: [e.g., Private backyard oasis, expansive deck/patio, manicured garden, covered porch, rooftop terrace].

* Parking: [e.g., Attached 2-car garage, detached garage, ample driveway parking, street parking available].

* Building Type: [e.g., Single-family detached, modern townhome, luxury condo].

* Construction: [e.g., Sturdy brick construction, modern siding, well-maintained roof].

* Views: [e.g., Picturesque city views, tranquil garden views, partial water views].

* Community Amenities (if applicable): [e.g., Access to community pool, fitness center, clubhouse, playground, gated community security].

  • Recent Upgrades & Renovations (if applicable):

* [e.g., Brand new roof (2022), updated HVAC system (2021), kitchen renovation (2023), bathroom remodels (2023), new windows (2020), fresh exterior paint (2024)].

* [e.g., Smart home technology integration (Ring, Google Home, Alexa), EV charging station in garage].


3. Neighborhood Spotlight: [Neighborhood Name]

Discover the vibrant community that awaits you.

  • Location & Accessibility:

Nestled in the highly coveted [Neighborhood Name], this home offers the perfect blend of suburban tranquility and urban convenience. Enjoy easy access to major highways like [e.g., I-5, Highway 101] and public transportation options including [e.g., bus lines, light rail station, commuter train], making your commute to [e.g., Downtown, Tech Hubs] a breeze.

  • Local Amenities & Lifestyle:

* Dining & Entertainment: A culinary paradise awaits with a diverse array of restaurants, cafes, and eateries ranging from casual bistros to fine dining experiences. Explore local favorites like [e.g., "The Corner Cafe," "Gourmet Grill House"] and vibrant nightlife spots.

* Shopping: Retail therapy is just moments away with [e.g., boutique shops on Main Street, Westfield Mall, local farmers' markets, specialty grocery stores like Whole Foods/Trader Joe's].

* Parks & Recreation: Embrace the outdoors with numerous parks, green spaces, and recreational facilities. [e.g., "Maplewood Park" offers walking trails and playgrounds, "Riverfront Preserve" is perfect for hiking and biking, access to community sports fields].

* Schools: Served by the highly-rated [e.g., "Excellent" School District Name], with top-tier schools such as [e.g., "Pine Ridge Elementary," "Northwood Middle," "Central High School"].

* Community Vibe: [Neighborhood Name] is known for its [e.g., friendly, family-oriented atmosphere, strong community spirit, vibrant arts scene, quiet tree-lined streets]. Regular community events and festivals foster a true sense of belonging.


4. Pricing & Value Proposition

  • Asking Price: [Your Property Price]
  • Value Proposition:

This exceptional property represents an outstanding value in today's dynamic [Neighborhood Name] real estate market. Priced competitively at [Your Property Price], it offers an unparalleled combination of luxury, location, and lifestyle. Considering recent comparable sales in the area for properties with similar [e.g., square footage, number of beds/baths, level of finish, upgrades], this home stands out as a prime investment opportunity. We invite you to compare its superior features and prime location against other listings to truly appreciate its unique appeal and long-term potential.


5. Marketing Taglines & Calls to Action

  • Short & Punchy Taglines (for social media, flyers, etc.):

* Your Dream Home in [Neighborhood Name]!

* Luxury Living. Unbeatable Location.

* Modern Elegance, Unmatched Comfort.

* Move-In Ready Perfection!

* Experience [Neighborhood Name] at Its Best.

* An Entertainer's Paradise!

  • Calls to Action (CTA):

* "Don't Miss Out!" Schedule your private tour today and experience the magic of [Full Property Address].

* "Act Now!" This exceptional opportunity won't last long. Contact [Your Name/Team Name] at [Your Phone Number] or [Your Email] to arrange a showing.

* "Discover Your New Home!" Visit our open house this [Day of Week], [Date] from [Time] to [Time] or call to book a personal viewing.

* "Learn More!" For additional photos, virtual tours, and property details, visit [Your Website Link/Listing Link].


6. Disclaimer

All information deemed reliable but not guaranteed. Buyer to verify all information, including square footage, lot size, school districts, and property features. This is not an offer to sell or solicit any offer to buy. All measurements are approximate. Equal Housing Opportunity.

gemini Output

Real Estate Listing Marketing Strategy: Comprehensive Package

This document outlines a robust marketing strategy designed to maximize exposure, attract qualified buyers, and achieve optimal results for your real estate listing. It covers target audience analysis, recommended marketing channels, a strategic messaging framework, and key performance indicators (KPIs) to measure success.


1. Target Audience Analysis

Understanding who is most likely to purchase the property is foundational to an effective marketing strategy. We identify potential buyer segments and their motivations to tailor our outreach.

Typical Buyer Segments to Consider:

  • First-Time Homebuyers:

* Motivations: Affordability, desire for stability, community amenities, move-in readiness, potential for future equity.

* Property Focus: Starter homes, condos, townhouses, properties near public transport or entry-level job markets.

* Key Needs: Guidance through the buying process, clear understanding of costs, accessible financing options.

  • Growing Families (Young Professionals with Children):

* Motivations: Space (indoor/outdoor), good school districts, family-friendly neighborhoods, safety, proximity to parks/activities, convenience.

* Property Focus: Single-family homes, properties with multiple bedrooms, yards, family rooms, updated kitchens/bathrooms.

* Key Needs: Community information, safety statistics, school ratings, practical layouts.

  • Empty Nesters / Downsizers:

* Motivations: Low maintenance, single-level living, accessibility, proximity to amenities (medical, recreation), community, security, freeing up equity.

* Property Focus: Condos, smaller single-family homes, homes with HOA services, properties in active adult communities.

* Key Needs: Ease of living, lifestyle benefits, financial implications of downsizing.

  • Luxury Buyers:

* Motivations: Exclusivity, high-end finishes, unique features, privacy, status, prime location, investment potential.

* Property Focus: High-value homes, estates, waterfront properties, properties with unique architectural design or amenities (pools, home theaters, smart home tech).

* Key Needs: Discretion, bespoke experiences, detailed property specifications, lifestyle branding.

  • Investors (Rental Property / Flip):

* Motivations: ROI, rental income potential, appreciation, market trends, property condition (for flips).

* Property Focus: Multi-family units, properties needing renovation, homes in high-demand rental areas, distressed properties.

* Key Needs: Financial projections, market comparables, renovation costs, rental demand analysis.

Actionable Steps:

  1. Analyze Property Features: Match the property's unique characteristics (size, location, condition, price point, amenities) to the most relevant buyer segments.
  2. Market Research: Consult local demographic data, school ratings, and community profiles to refine target audience assumptions.
  3. Client Consultation: Discuss with the seller their insights on who would best appreciate and utilize the home.

2. Channel Recommendations

A multi-channel approach is crucial for maximum reach. We combine digital and traditional marketing efforts to capture diverse buyer segments.

A. Digital Marketing Channels:

  • Real Estate Portals (Zillow, Realtor.com, Trulia, Redfin, etc.):

* Strategy: High-quality photos, virtual tours, detailed descriptions, accurate mapping, prompt response to inquiries. Consider premium placements or featured listings for high-value properties.

  • Social Media Marketing (Facebook, Instagram, Pinterest, LinkedIn):

* Strategy:

* Organic: Engaging posts with professional photos/videos, "just listed" announcements, lifestyle content (e.g., "imagine your mornings here").

* Paid Advertising: Highly targeted ads based on demographics, interests (e.g., "luxury homes," "first-time homebuyer"), location, and online behavior. Utilize retargeting campaigns for those who have previously viewed the listing.

* Content: Short video walkthroughs, carousel posts of key features, polls/questions to drive engagement, stories showcasing neighborhood highlights.

  • Email Marketing:

* Strategy: Leverage existing buyer databases and lead generation lists. Send personalized emails with new listing alerts, open house invitations, and market updates. Segment lists by buyer preferences.

  • Agent/Brokerage Website:

* Strategy: Dedicated property page with comprehensive details, high-resolution imagery, floor plans, virtual tours, neighborhood guides, and clear calls to action (e.g., "Schedule a Showing," "Download Brochure"). Ensure mobile responsiveness.

  • Search Engine Optimization (SEO) & Paid Search (PPC):

* Strategy:

* SEO: Optimize listing descriptions and website content with relevant keywords (e.g., "3 bedroom home [City, State]," "homes for sale near [School District]").

* PPC (Google Ads): Target specific keywords for buyers actively searching for properties in the area.

  • Virtual Tours & 3D Walkthroughs (Matterport, etc.):

* Strategy: Essential for showcasing layout and flow, especially for out-of-town buyers or those cautious about in-person visits. Embed on all digital platforms.

  • Professional Photography & Videography (Drone Footage):

* Strategy: Non-negotiable. High-quality visuals are the first impression. Drone footage is excellent for showcasing property scale, land, and neighborhood context.

B. Traditional Marketing Channels:

  • Open Houses:

* Strategy: Well-advertised events, staged property, welcoming atmosphere, information packets, sign-in sheets for lead capture. Consider virtual open houses as a complementary option.

  • "For Sale" Signage:

* Strategy: Professional, clear, and well-placed signage with contact information and a QR code linking to the property website.

  • Print Advertising (Local Magazines, Newspapers - if applicable):

* Strategy: Target high-end local publications for luxury listings, or community newspapers for local reach. Focus on visual appeal and key selling points.

  • Direct Mail (Postcards, Brochures):

* Strategy: Target specific neighborhoods or demographics known to be potential buyers or referral sources. Highlight key features and an open house invitation.

  • Agent Network & Referrals:

* Strategy: Announce the listing to your professional network, local real estate groups, and past clients for potential referrals. Share property details with co-brokering agents.

  • Property Brochures/Flyers:

* Strategy: High-quality, professionally designed brochures available at the property, open houses, and for agent distribution. Include photos, floor plans, key features, and contact info.


3. Messaging Framework

The messaging must be consistent, compelling, and tailored to resonate with the identified target audiences across various channels.

A. Core Value Proposition:

  • Identify 3-5 Unique Selling Propositions (USPs): What makes this property stand out? (e.g., "unbeatable waterfront views," "top-rated school district," "designer renovation," "expansive outdoor entertaining space," "walk to vibrant downtown").
  • Emotional Appeal: How will living here feel? (e.g., "a tranquil retreat," "the perfect family haven," "entertainer's dream," "effortless luxury").

B. Audience-Specific Messaging:

  • First-Time Homebuyers:

* "Start your homeownership journey here!" "Affordable luxury in a vibrant community." "Move-in ready with no hidden costs."

Focus:* Simplicity, value, community, future potential.

  • Growing Families:

* "Space to grow and thrive in a top-rated school district." "Your family's perfect backyard oasis awaits." "Designed for modern family living."

Focus:* Space, safety, schools, convenience, family-friendly amenities.

  • Empty Nesters / Downsizers:

* "Effortless living, vibrant community, and all the amenities you desire." "Simplify your life without compromising on style." "Low-maintenance luxury, more time for you."

Focus:* Ease, lifestyle, community, accessibility, freedom.

  • Luxury Buyers:

* "An exquisite residence crafted for discerning tastes." "Unparalleled elegance and breathtaking views." "Experience the pinnacle of sophisticated living."

Focus:* Exclusivity, craftsmanship, privacy, bespoke features, status.

  • Investors:

* "High-yield investment opportunity in a rapidly appreciating market." "Turnkey rental property with strong cash flow potential." "Prime location for a lucrative flip."

Focus:* ROI, market data, potential income, value.

C. Channel-Specific Tone & Content:

  • Real Estate Portals: Factual, detailed, benefit-oriented. Use bullet points for key features.
  • Social Media: Visually driven, aspirational, engaging, concise. Use emojis, hashtags, and questions.
  • Email Marketing: Personalized, direct, informative. Strong call to action.
  • Brochures/Website: Comprehensive, professional, high-quality visuals, storytelling.

D. Call to Action (CTA) Examples:

  • "Schedule your private tour today!"
  • "Don't miss the Open House this Saturday!"
  • "Download the full property brochure."
  • "Learn more about this incredible opportunity."
  • "Contact [Agent Name] for an exclusive showing."

4. Key Performance Indicators (KPIs)

Measuring the effectiveness of the marketing strategy is crucial for optimization and demonstrating value.

A. Online Engagement & Reach:

  • Website/Listing Views: Total number of unique visitors to the property's dedicated page or portal listing.
  • Time on Page: Average time users spend viewing the listing (indicates interest).
  • Virtual Tour/Video Views: Number of times the virtual tour or video walkthrough is accessed.
  • Social Media Impressions/Reach: How many unique users saw the listing content.
  • Social Media Engagement Rate: Likes, comments, shares, saves on social posts.
  • Email Open Rate & Click-Through Rate (CTR): For email campaigns.

B. Lead Generation & Conversion:

  • Inquiries/Leads Generated: Number of direct inquiries (phone calls, emails, form submissions) from interested buyers.
  • Showings Scheduled: Number of private property showings.
  • Open House Attendance: Number of visitors to open houses.
  • Brochure Downloads: Number of times the digital brochure is downloaded.
  • Lead-to-Showing Conversion Rate: Percentage of inquiries that result in a showing.

C. Market Performance:

  • Offers Received: Number of offers submitted on the property.
  • Offer-to-List Price Ratio: How close the offers are to the asking price.
  • Days on Market (DOM): The total number of days the property has been actively listed.
  • Buyer Feedback: Qualitative data from showings and open houses (e.g., price comments, feature preferences).

D. Return on Investment (ROI):

  • Cost Per Lead: Total marketing spend divided by the number of qualified leads generated.
  • Marketing Spend vs. Sale Price: Analyzing the impact of marketing investment on the final sale price.

Actionable Steps:

  1. Establish Baselines: Compare current performance against local market averages for similar properties.
  2. Regular Reporting: Provide weekly or bi-weekly reports to the seller on key metrics and insights.
  3. Adapt & Optimize: Based on KPI performance, adjust the marketing strategy (e.g., re-target ads, refresh listing description, host another open house, adjust pricing).

By systematically implementing this comprehensive marketing strategy, your real estate listing will gain maximum visibility, attract the most qualified buyers, and position the property for a successful and timely sale.

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