| import gradio as gr |
| from huggingface_hub import InferenceClient |
| import os |
| from datetime import datetime |
|
|
| |
| from prompts import ( |
| SEARCH_START, DIVIDER, REPLACE_END, |
| TITLE_PAGE_START, TITLE_PAGE_END, |
| NEW_PAGE_START, NEW_PAGE_END, |
| UPDATE_PAGE_START, UPDATE_PAGE_END, |
| WEB_DEV_QUESTIONS, PROMPT_FOR_IMAGE_GENERATION, |
| INITIAL_SYSTEM_PROMPT, FOLLOW_UP_SYSTEM_PROMPT, |
| PROMPT_ENGINEER_SYSTEM_PROMPT, SUGGESTED_ANSWERS, |
| HTML_TEMPLATE_EXAMPLE, CDN_LINKS, |
| AVAILABLE_MODELS, DEFAULT_MODEL |
| ) |
|
|
| |
| client = InferenceClient(token=os.getenv("HF_TOKEN")) |
|
|
| class WebsitePromptEnhancer: |
| def __init__(self): |
| self.context = [] |
| self.current_question_idx = 0 |
| self.user_responses = {} |
| self.initial_prompt = "" |
| self.is_update = False |
| |
| def reset(self): |
| self.context = [] |
| self.current_question_idx = 0 |
| self.user_responses = {} |
| self.initial_prompt = "" |
| self.is_update = False |
| |
| def start_enhancement(self, initial_prompt): |
| self.reset() |
| self.initial_prompt = initial_prompt |
| self.current_question_idx = 0 |
| return self.get_next_question() |
| |
| def get_next_question(self): |
| if self.current_question_idx < len(WEB_DEV_QUESTIONS): |
| return WEB_DEV_QUESTIONS[self.current_question_idx] |
| return None |
| |
| def get_suggested_answer(self): |
| """Generate suggested answer based on context""" |
| if self.current_question_idx < len(WEB_DEV_QUESTIONS): |
| return SUGGESTED_ANSWERS.get(self.current_question_idx, "") |
| return "" |
| |
| def process_answer(self, answer): |
| if self.current_question_idx < len(WEB_DEV_QUESTIONS): |
| question = WEB_DEV_QUESTIONS[self.current_question_idx] |
| self.user_responses[question] = answer |
| self.context.append(f"Q: {question}\nA: {answer}") |
| |
| |
| if self.current_question_idx == len(WEB_DEV_QUESTIONS) - 1: |
| if "update" in answer.lower() or "modify" in answer.lower() or "change" in answer.lower(): |
| self.is_update = True |
| |
| self.current_question_idx += 1 |
| |
| next_q = self.get_next_question() |
| return next_q |
| |
| def generate_enhanced_prompt(self, model_name=DEFAULT_MODEL): |
| |
| website_type = self.user_responses.get(WEB_DEV_QUESTIONS[0], "website") |
| purpose = self.user_responses.get(WEB_DEV_QUESTIONS[1], "general purpose") |
| audience = self.user_responses.get(WEB_DEV_QUESTIONS[2], "general audience") |
| sections = self.user_responses.get(WEB_DEV_QUESTIONS[3], "Home, About, Contact") |
| color_scheme = self.user_responses.get(WEB_DEV_QUESTIONS[4], "modern and professional") |
| features = self.user_responses.get(WEB_DEV_QUESTIONS[5], "responsive design") |
| update_type = self.user_responses.get(WEB_DEV_QUESTIONS[6], "new website") |
| |
| |
| is_update = "update" in update_type.lower() or "modify" in update_type.lower() |
| |
| enhancement_prompt = f"""Create a detailed prompt for an AI code agent to build a professional website based on these requirements: |
| |
| Project: {self.initial_prompt} |
| Type: {website_type} |
| Purpose: {purpose} |
| Target Audience: {audience} |
| Required Sections/Pages: {sections} |
| Design Theme: {color_scheme} |
| Features: {features} |
| Request Type: {"Update existing website" if is_update else "Create new website"} |
| |
| Generate a comprehensive, production-ready specification following the AI code agent format. |
| The output should be a clean prompt (no Q&A) that includes: |
| 1. Clear project description |
| 2. Required pages/sections with specific details |
| 3. Design specifications (colors, layout, typography) |
| 4. Feature requirements with implementation details |
| 5. Technical stack specifications (TailwindCSS, Feather Icons, AOS, Vanta.js) |
| 6. Responsive design requirements |
| 7. Accessibility guidelines |
| 8. Image placeholder usage (static.photos) |
| |
| The prompt should be ready to paste directly into an AI code agent system.""" |
|
|
| try: |
| messages = [ |
| {"role": "system", "content": PROMPT_ENGINEER_SYSTEM_PROMPT}, |
| {"role": "user", "content": enhancement_prompt} |
| ] |
| |
| response = client.chat_completion( |
| messages=messages, |
| model=model_name, |
| max_tokens=3000, |
| temperature=0.7, |
| stream=False |
| ) |
| |
| enhanced_prompt = response.choices[0].message.content |
| return self._format_for_code_agent(enhanced_prompt, is_update) |
| |
| except Exception as e: |
| try: |
| full_prompt = f"{PROMPT_ENGINEER_SYSTEM_PROMPT}\n\n{enhancement_prompt}" |
| response = client.text_generation( |
| full_prompt, |
| model=model_name, |
| max_new_tokens=3000, |
| temperature=0.7, |
| return_full_text=False |
| ) |
| return self._format_for_code_agent(response, is_update) |
| except Exception as e2: |
| return self._create_fallback_prompt( |
| website_type, purpose, audience, sections, |
| color_scheme, features, is_update |
| ) |
| |
| def _format_for_code_agent(self, prompt, is_update=False): |
| """Format the prompt to work with the AI code agent system""" |
| |
| formatted_prompt = f"""# AI Code Agent Prompt - Website Generation |
| |
| {prompt} |
| |
| --- |
| |
| ## Technical Requirements for AI Code Agent |
| |
| ### Technology Stack |
| - **CSS Framework:** TailwindCSS (CDN: {CDN_LINKS['tailwind']}) |
| - **Icons:** Feather Icons ({CDN_LINKS['feather_icons']}) |
| - **Scroll Animations:** AOS.js ({CDN_LINKS['aos_css']}) |
| - **Interactive Animations:** Vanta.js ({CDN_LINKS['vanta_globe']}) |
| - **Additional:** Anime.js for advanced animations |
| |
| ### Image Placeholders |
| {PROMPT_FOR_IMAGE_GENERATION} |
| |
| ### Output Format Instructions |
| {"**For Updates/Modifications:**" if is_update else "**For New Website:**"} |
| |
| {'Use the UPDATE_PAGE format:' if is_update else 'Use the TITLE_PAGE format:'}""" |
|
|
| if is_update: |
| formatted_prompt += f""" |
| 1. Start with: {UPDATE_PAGE_START} |
| 2. Specify the page name (e.g., index.html) |
| 3. Close with: {UPDATE_PAGE_END} |
| 4. Use SEARCH/REPLACE blocks: |
| - {SEARCH_START} |
| - (exact code to replace) |
| - {DIVIDER} |
| - (new code) |
| - {REPLACE_END} |
| |
| For new pages during update: |
| 1. Start with: {NEW_PAGE_START} |
| 2. Specify page name (e.g., about.html) |
| 3. Close with: {NEW_PAGE_END} |
| 4. Provide complete HTML in ```html``` blocks |
| 5. Update navigation links in all existing pages""" |
| else: |
| formatted_prompt += f""" |
| 1. Start with: {TITLE_PAGE_START} |
| 2. Add page name (e.g., index.html) |
| 3. Close with: {TITLE_PAGE_END} |
| 4. Provide complete HTML in ```html``` blocks |
| 5. First file must be index.html |
| 6. Include all required CDN links in <head> |
| 7. Initialize all libraries in <body>""" |
|
|
| formatted_prompt += f""" |
| |
| ### Required Code Structure |
| |
| **Every HTML file must include:** |
| |
| ```html |
| {HTML_TEMPLATE_EXAMPLE} |
| ``` |
| |
| ### Design Guidelines |
| - Mobile-first responsive design using TailwindCSS |
| - Use semantic HTML5 elements |
| - Implement smooth scroll animations with AOS |
| - Add interactive animations where appropriate (Vanta.js) |
| - Use Feather icons for all icons: <i data-feather="icon-name"></i> |
| - Ensure accessibility (ARIA labels, semantic tags) |
| - Cross-browser compatibility |
| - Performance optimized |
| |
| ### Navigation |
| - For multi-page websites: Use <a href="page.html"> (no onclick) |
| - Ensure all pages have consistent navigation |
| - Mobile-responsive hamburger menu |
| |
| ### Ready for AI Code Agent |
| This prompt is formatted for direct use with AI code agents. |
| Simply paste it into your AI coding assistant to generate the website.""" |
| return formatted_prompt |
|
|
| def _create_fallback_prompt(self, website_type, purpose, audience, sections, color_scheme, features, is_update=False): |
| """Create a detailed fallback prompt in code agent format""" |
| |
| sections_list = [s.strip() for s in sections.split(',')] |
| |
| fallback = f"""# AI Code Agent Prompt - Professional Website Project Overview |
| Create a professional {website_type} website optimized for {audience}. |
| |
| Primary Goal: {purpose} |
| |
| Design Theme: {color_scheme} with modern UI/UX |
| |
| Required Pages/Sections |
| """ |
| for i, section in enumerate(sections_list, 1): |
| fallback += f"{i}. **{section.strip()}** - Complete page with relevant content\n" |
| |
| fallback += f"""Feature Requirements |
| {features} |
| |
| Core Features: |
| β
Fully responsive design (mobile, tablet, desktop) |
| β
Smooth scroll animations using AOS.js |
| β
Modern icons using Feather Icons |
| β
Interactive animations with Vanta.js (hero section) |
| β
TailwindCSS for all styling |
| β
Contact forms with validation (if applicable) |
| β
Image galleries with lightbox effect |
| β
Smooth navigation with active states |
| β
Loading animations and transitions |
| β
Accessibility compliant (WCAG 2.1) |
| |
| ## Technology Stack |
| ### Required Libraries (CDN) |
| <!-- TailwindCSS --> |
| <script src="{CDN_LINKS['tailwind']}"></script> |
| |
| <!-- AOS Scroll Animations --> |
| <link href="{CDN_LINKS['aos_css']}" rel="stylesheet"> |
| <script src="{CDN_LINKS['aos_js']}"></script> |
| |
| <!-- Feather Icons --> |
| <script src="{CDN_LINKS['feather_icons_min']}"></script> |
| <script src="{CDN_LINKS['feather_icons']}"></script> |
| |
| <!-- Anime.js --> |
| <script src="{CDN_LINKS['anime_js']}"></script> |
| |
| <!-- Vanta.js (for hero backgrounds) --> |
| <script src="{CDN_LINKS['vanta_globe']}"></script> |
| |
| ## Design Specifications |
| ### Color Scheme |
| Primary theme: {color_scheme} |
| |
| Suggested TailwindCSS Colors: |
| - Primary: bg-blue-600, text-blue-600 |
| - Secondary: bg-gray-800, text-gray-800 |
| - Accent: bg-purple-500, text-purple-500 |
| - Background: bg-white, bg-gray-50 |
| - Text: text-gray-900, text-gray-600 |
| |
| ### Typography |
| - Headings: Bold, large (text-4xl, text-5xl, font-bold) |
| - Body: Readable size (text-base, text-lg) |
| - Use TailwindCSS typography utilities |
| |
| ### Layout Structure |
| - Header: Fixed/sticky navigation with logo and menu |
| - Hero Section: Full-screen with Vanta.js background animation |
| - Content Sections: Alternating layouts with AOS animations |
| - Footer: Links, social media, copyright |
| |
| ### Responsive Breakpoints |
| - Mobile: sm: (640px) |
| - Tablet: md: (768px) |
| - Desktop: lg: (1024px) |
| - Large: xl: (1280px) |
| |
| ### Image Guidelines |
| Use Static.Photos for Placeholders |
| {PROMPT_FOR_IMAGE_GENERATION} |
| |
| Recommended Usage: |
| - Hero images: http://static.photos/abstract/1200x630/1 |
| - Portfolio/Gallery: http://static.photos/technology/640x360/[1-10] |
| - Team photos: http://static.photos/people/320x240/[1-5] |
| - Background images: http://static.photos/minimal/1024x576/42 |
| |
| ### Animation Requirements |
| #### AOS Scroll Animations |
| Use on all major sections: |
| <div data-aos="fade-up" data-aos-duration="1000"> |
| Content here |
| </div> |
| Available Effects: fade-up, fade-down, fade-left, fade-right, zoom-in, flip-up |
| |
| #### Vanta.js Hero Background |
| Implement on hero section: |
| <script> |
| VANTA.GLOBE({{ |
| el: "#hero", |
| mouseControls: true, |
| touchControls: true, |
| gyroControls: false, |
| minHeight: 200.00, |
| minWidth: 200.00, |
| scale: 1.00, |
| scaleMobile: 1.00, |
| color: 0x3b82f6, |
| backgroundColor: 0x0f172a |
| }}) |
| </script> |
| |
| #### Feather Icons Usage |
| <i data-feather="menu"></i> |
| <i data-feather="mail"></i> |
| <i data-feather="phone"></i> |
| <i data-feather="github"></i> |
| |
| ### Code Structure Format |
| {"Update Format (Modifying Existing Pages)" if is_update else "New Website Format"} |
| {"Use UPDATE_PAGE blocks:" if is_update else "Use TITLE_PAGE blocks:"}""" |
|
|
| if is_update: |
| fallback += f""" |
| {UPDATE_PAGE_START}index.html{UPDATE_PAGE_END} |
| |
| {SEARCH_START} |
| <h1>Old Title</h1> |
| {DIVIDER} |
| <h1 class="text-4xl font-bold text-blue-600">New Title</h1> |
| {REPLACE_END} |
| |
| For adding new pages: |
| {NEW_PAGE_START}about.html{NEW_PAGE_END} |
| ```html |
| {HTML_TEMPLATE_EXAMPLE} |
| ```""" |
| else: |
| fallback += f""" |
| {TITLE_PAGE_START}index.html{TITLE_PAGE_END} |
| ```html |
| {HTML_TEMPLATE_EXAMPLE} |
| ```""" |
| |
| fallback += """ |
| ## Quality Standards |
| ### Code Quality |
| - Clean, well-commented code |
| - Proper indentation and formatting |
| - Semantic HTML5 elements |
| - Modular CSS with TailwindCSS utilities |
| - Efficient JavaScript |
| |
| ### Accessibility |
| - ARIA labels on interactive elements |
| - Alt text on all images |
| - Proper heading hierarchy (h1-h6) |
| - Keyboard navigation support |
| - Sufficient color contrast |
| |
| ### Performance |
| - Optimized images |
| - Minified assets where possible |
| - Efficient animations |
| - Fast loading times (<3 seconds) |
| - Mobile-optimized |
| |
| ### Browser Compatibility |
| - Chrome, Firefox, Safari, Edge (latest 2 versions) |
| - iOS Safari and Chrome Mobile |
| - Graceful degradation for older browsers |
| |
| ## Deliverable |
| Create a complete, production-ready website that: |
| β
Follows all format requirements for the AI code agent |
| β
Includes all specified pages/sections |
| β
Uses TailwindCSS for ALL styling |
| β
Implements animations (AOS, Vanta.js) |
| β
Uses Feather Icons for all icons |
| β
Uses static.photos for all images |
| β
Is fully responsive (mobile-first) |
| β
Is accessible (WCAG 2.1 AA) |
| β
Has clean, professional code |
| β
Is ready for immediate deployment |
| |
| Generate the complete website code now following the format specified above.""" |
| return fallback |
|
|
| |
| enhancer = WebsitePromptEnhancer() |
|
|
| |
| def submit_answer(answer): |
| if not answer.strip(): |
| return ( |
| "", |
| "", |
| "", |
| gr.update(interactive=False), |
| gr.update(interactive=False), |
| gr.update(visible=False), |
| "β οΈ Please enter your initial website idea first!", |
| "", |
| gr.update(visible=False) |
| ) |
| |
| next_question = enhancer.process_answer(answer) |
|
|
| if next_question: |
| suggestion = enhancer.get_suggested_answer() |
| return ( |
| next_question, |
| suggestion, |
| "", |
| gr.update(interactive=True), |
| gr.update(interactive=True), |
| gr.update(visible=False), |
| f"β
Progress: {enhancer.current_question_idx}/{len(WEB_DEV_QUESTIONS)} questions answered", |
| "", |
| gr.update(visible=False) |
| ) |
| else: |
| return ( |
| "π All questions completed! Click 'Generate Enhanced Prompt' below.", |
| "", |
| "", |
| gr.update(interactive=False), |
| gr.update(interactive=False), |
| gr.update(visible=True), |
| "β
All questions answered! Ready to generate your AI Code Agent prompt.", |
| "", |
| gr.update(visible=False) |
| ) |
|
|
| def start_process(initial_prompt): |
| if not initial_prompt.strip(): |
| return ( |
| "", |
| "", |
| "", |
| gr.update(interactive=False), |
| gr.update(interactive=False), |
| gr.update(visible=False), |
| "β οΈ Please enter your initial website idea first!", |
| "", |
| gr.update(visible=False) |
| ) |
| |
| next_question = enhancer.start_enhancement(initial_prompt) |
| suggestion = enhancer.get_suggested_answer() |
| |
| return ( |
| next_question, |
| suggestion, |
| "", |
| gr.update(interactive=True), |
| gr.update(interactive=True), |
| gr.update(visible=False), |
| f"β
Progress: {enhancer.current_question_idx}/{len(WEB_DEV_QUESTIONS)} questions answered", |
| "", |
| gr.update(visible=False) |
| ) |
|
|
| def generate_final_prompt(model_choice): |
| try: |
| status_msg = "π Generating AI Code Agent prompt... Please wait." |
| yield "", status_msg, gr.update(visible=False) |
| enhanced = enhancer.generate_enhanced_prompt(model_choice) |
| |
| yield enhanced, "β
AI Code Agent prompt generated! Copy and paste into your AI code agent to generate the website.", gr.update(visible=True) |
| except Exception as e: |
| yield f"Error: {str(e)}", "β Generation failed. Please try again or use a different model.", gr.update(visible=False) |
|
|
| def save_prompt_to_file(prompt_text): |
| """Save the prompt to a text file and return the file path""" |
| if not prompt_text or prompt_text.strip() == "": |
| return None |
| timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") |
| filename = f"ai_code_agent_prompt_{timestamp}.txt" |
|
|
| with open(filename, "w", encoding="utf-8") as f: |
| f.write("=" * 80 + "\n") |
| f.write("AI CODE AGENT - WEBSITE DEVELOPMENT PROMPT\n") |
| f.write(f"Generated: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n") |
| f.write("=" * 80 + "\n\n") |
| f.write(prompt_text) |
| f.write("\n\n" + "=" * 80 + "\n") |
| f.write("Paste this prompt into your AI Code Agent to generate the website\n") |
| f.write("Compatible with: Custom AI Code Agents, Cursor, Bolt.new, v0.dev, etc.\n") |
| f.write("=" * 80 + "\n") |
|
|
| return filename |
|
|
| |
| custom_css = """ |
| .container {max-width: 1200px; margin: auto; padding: 20px;} |
| .header { |
| text-align: center; |
| margin-bottom: 30px; |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
| padding: 30px; |
| border-radius: 15px; |
| color: white; |
| } |
| .question-box { |
| background: #f0f7ff; |
| padding: 20px; |
| border-radius: 10px; |
| margin: 10px 0; |
| border-left: 4px solid #667eea; |
| } |
| .status-box { |
| background: #e8f5e9; |
| padding: 15px; |
| border-radius: 8px; |
| margin: 10px 0; |
| font-weight: 500; |
| } |
| .suggestion-box { |
| background: #fff3e0; |
| padding: 10px; |
| border-radius: 5px; |
| font-size: 0.9em; |
| color: #e65100; |
| } |
| .download-btn { |
| background: #4CAF50 !important; |
| } |
| .code-agent-badge { |
| background: #667eea; |
| color: white; |
| padding: 5px 15px; |
| border-radius: 20px; |
| font-size: 0.85em; |
| display: inline-block; |
| margin: 5px; |
| } |
| """ |
|
|
| |
| with gr.Blocks(css=custom_css, theme=gr.themes.Soft(), title="AI Code Agent Prompt Enhancer") as demo: |
| gr.Markdown(""" |
| # π AI Code Agent Prompt Enhancer |
| ### Transform Ideas into Professional AI Code Agent Prompts |
| Generate detailed, production-ready prompts optimized for AI code agent systems. |
| |
| <div style="text-align: center; margin: 10px 0;"> |
| <span class="code-agent-badge">β¨ TailwindCSS</span> |
| <span class="code-agent-badge">π¨ Feather Icons</span> |
| <span class="code-agent-badge">π± AOS Animations</span> |
| <span class="code-agent-badge">π Vanta.js</span> |
| <span class="code-agent-badge">πΌοΈ Static.photos</span> |
| </div> |
| """, elem_classes="header") |
|
|
| with gr.Row(): |
| with gr.Column(scale=2): |
| initial_prompt = gr.Textbox( |
| label="π‘ Your Website Idea", |
| placeholder="Example: 'Create a modern portfolio website for a photographer with gallery and contact form'", |
| lines=3, |
| info="Describe what kind of website you want to create" |
| ) |
| with gr.Column(scale=1): |
| start_btn = gr.Button( |
| "π― Start Enhancement", |
| variant="primary", |
| size="lg" |
| ) |
|
|
| status_text = gr.Markdown("π Enter your idea above and click 'Start Enhancement'", elem_classes="status-box") |
|
|
| gr.Markdown("---") |
|
|
| with gr.Row(): |
| with gr.Column(): |
| current_question = gr.Textbox( |
| label="β Current Question", |
| interactive=False, |
| lines=2, |
| elem_classes="question-box" |
| ) |
| |
| suggestion_text = gr.Textbox( |
| label="π Suggestion", |
| interactive=False, |
| lines=2, |
| elem_classes="suggestion-box" |
| ) |
| |
| answer_input = gr.Textbox( |
| label="βοΈ Your Answer", |
| placeholder="Type your answer here...", |
| lines=4, |
| interactive=False |
| ) |
| |
| submit_btn = gr.Button( |
| "Submit Answer β‘οΈ", |
| interactive=False, |
| variant="primary" |
| ) |
|
|
| gr.Markdown("---") |
|
|
| with gr.Row(): |
| model_choice = gr.Dropdown( |
| choices=AVAILABLE_MODELS, |
| value=DEFAULT_MODEL, |
| label="π€ Select AI Model", |
| info="Choose the model for prompt generation" |
| ) |
|
|
| generate_btn = gr.Button( |
| "β¨ Generate AI Code Agent Prompt", |
| variant="primary", |
| size="lg", |
| visible=False |
| ) |
|
|
| enhanced_output = gr.Textbox( |
| label="π¨ AI Code Agent Prompt (Ready to Use)", |
| lines=30, |
| show_copy_button=True, |
| placeholder="Your AI code agent prompt will appear here...", |
| info="Copy this prompt and paste it into your AI code agent system" |
| ) |
|
|
| download_btn = gr.File( |
| label="π₯ Download Prompt as Text File", |
| visible=False |
| ) |
|
|
| gr.Markdown(""" |
| --- |
| ## π How to Use |
| |
| ### Step 1: Create Your Prompt |
| 1. **Enter Your Idea** - Describe your website concept |
| 2. **Answer Questions** - Respond to guided questions (7 total) |
| 3. **Generate Prompt** - Click to create your AI code agent prompt |
| 4. **Download/Copy** - Save or copy the generated prompt |
| |
| ### Step 2: Use with AI Code Agent |
| 1. **Copy the generated prompt** |
| 2. **Paste into your AI code agent** (Cursor, Bolt.new, v0.dev, custom agents) |
| 3. **Get production-ready code** with proper formatting |
| |
| --- |
| |
| ## π― What You Get |
| |
| β
**Clean, Professional Prompt** - No Q&A clutter, just specifications |
| β
**AI Code Agent Format** - Uses TITLE_PAGE, UPDATE_PAGE, SEARCH/REPLACE blocks |
| β
**TailwindCSS Integration** - Modern, responsive styling |
| β
**Animation Ready** - AOS scroll animations + Vanta.js backgrounds |
| β
**Icon System** - Feather Icons integrated |
| β
**Image Placeholders** - Static.photos for all images |
| β
**Production Ready** - Complete technical specifications |
| β
**Downloadable** - Save for future use |
| |
| --- |
| |
| ## π§ Compatible Systems |
| |
| This tool generates prompts compatible with: |
| - β¨ **Custom AI Code Agents** (using the TITLE_PAGE/UPDATE_PAGE format) |
| - β¨ **Cursor AI** - Paste and generate |
| - β¨ **Bolt.new** - Direct integration |
| - β¨ **v0.dev** - Component generation |
| - β¨ **GitHub Copilot** - Enhanced context |
| - β¨ **Any LLM** - ChatGPT, Claude, Gemini |
| |
| --- |
| |
| ## π Output Format |
| |
| The generated prompts use a specific format for AI code agents: |
| |
| ### For New Websites: |
| ``` |
| <<<<<<< START_TITLE index.html >>>>>>> END_TITLE |
| ```html |
| <!DOCTYPE html> |
| ...complete HTML code... |
| ``` |
| ``` |
| |
| ### For Updates: |
| ``` |
| <<<<<<< UPDATE_PAGE_START index.html >>>>>>> UPDATE_PAGE_END |
| <<<<<<< SEARCH |
| <h1>Old Content</h1> |
| ======= |
| <h1 class="text-4xl font-bold">New Content</h1> |
| >>>>>>> REPLACE |
| ``` |
| |
| --- |
| |
| ## π‘ Pro Tips |
| |
| - π Be specific in your answers for better results |
| - π¨ Mention preferred colors, styles, and layouts |
| - π± Specify if you need mobile-first design |
| - π Indicate if updating existing code or creating new |
| - β‘ The more detail you provide, the better the output |
| |
| --- |
| |
| ## π οΈ Technical Stack Included |
| |
| Every generated prompt includes: |
| - **TailwindCSS** - Utility-first CSS framework |
| - **Feather Icons** - Beautiful icon set |
| - **AOS.js** - Scroll animation library |
| - **Vanta.js** - Animated backgrounds |
| - **Anime.js** - Advanced animations |
| - **Static.photos** - Professional placeholder images |
| |
| --- |
| |
| Made with β€οΈ for developers | Optimized for AI Code Agents |
| """) |
|
|
| |
| start_btn.click( |
| fn=start_process, |
| inputs=[initial_prompt], |
| outputs=[ |
| current_question, |
| suggestion_text, |
| answer_input, |
| answer_input, |
| submit_btn, |
| generate_btn, |
| status_text, |
| enhanced_output, |
| download_btn |
| ] |
| ) |
|
|
| submit_btn.click( |
| fn=submit_answer, |
| inputs=[answer_input], |
| outputs=[ |
| current_question, |
| suggestion_text, |
| answer_input, |
| answer_input, |
| submit_btn, |
| generate_btn, |
| status_text, |
| enhanced_output, |
| download_btn |
| ] |
| ) |
|
|
| answer_input.submit( |
| fn=submit_answer, |
| inputs=[answer_input], |
| outputs=[ |
| current_question, |
| suggestion_text, |
| answer_input, |
| answer_input, |
| submit_btn, |
| generate_btn, |
| status_text, |
| enhanced_output, |
| download_btn |
| ] |
| ) |
|
|
| generate_btn.click( |
| fn=generate_final_prompt, |
| inputs=[model_choice], |
| outputs=[enhanced_output, status_text, download_btn] |
| ) |
|
|
| enhanced_output.change( |
| fn=save_prompt_to_file, |
| inputs=[enhanced_output], |
| outputs=[download_btn] |
| ) |
|
|
| if __name__ == "__main__": |
| demo.launch() |
|
|