{"stack": "static-site", "files": {"index.html": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>My Portfolio - Niblit.ai</title>\n    <style>\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n\n        body {\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n            line-height: 1.6;\n            color: #1f2937;\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n            min-height: 100vh;\n        }\n\n        .container {\n            max-width: 800px;\n            margin: 0 auto;\n            padding: 60px 20px;\n        }\n\n        .card {\n            background: white;\n            border-radius: 16px;\n            padding: 40px;\n            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n        }\n\n        .avatar {\n            width: 120px;\n            height: 120px;\n            border-radius: 50%;\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n            margin: 0 auto 24px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            font-size: 48px;\n            color: white;\n        }\n\n        h1 {\n            text-align: center;\n            font-size: 2.5rem;\n            margin-bottom: 8px;\n            color: #1f2937;\n        }\n\n        .tagline {\n            text-align: center;\n            color: #6b7280;\n            font-size: 1.25rem;\n            margin-bottom: 32px;\n        }\n\n        .bio {\n            text-align: center;\n            color: #4b5563;\n            margin-bottom: 32px;\n            font-size: 1.1rem;\n        }\n\n        .links {\n            display: flex;\n            flex-direction: column;\n            gap: 12px;\n        }\n\n        .link {\n            display: block;\n            padding: 16px 24px;\n            background: #f3f4f6;\n            border-radius: 8px;\n            text-decoration: none;\n            color: #1f2937;\n            font-weight: 500;\n            text-align: center;\n            transition: all 0.2s;\n        }\n\n        .link:hover {\n            background: #667eea;\n            color: white;\n            transform: translateY(-2px);\n        }\n\n        .footer {\n            text-align: center;\n            margin-top: 32px;\n            padding-top: 24px;\n            border-top: 1px solid #e5e7eb;\n            color: #9ca3af;\n            font-size: 14px;\n        }\n\n        .footer a {\n            color: #667eea;\n            text-decoration: none;\n        }\n\n        .footer a:hover {\n            text-decoration: underline;\n        }\n\n        @media (max-width: 640px) {\n            .container {\n                padding: 20px;\n            }\n\n            .card {\n                padding: 24px;\n            }\n\n            h1 {\n                font-size: 2rem;\n            }\n        }\n    </style>\n</head>\n<body>\n    <div class=\"container\">\n        <div class=\"card\">\n            <div class=\"avatar\">JD</div>\n            <h1>Jane Developer</h1>\n            <p class=\"tagline\">Full Stack Developer & Vibe Coder</p>\n            <p class=\"bio\">\n                I build things with code and ship them to the world.\n                Currently vibing with AI-assisted development.\n            </p>\n\n            <div class=\"links\">\n                <a href=\"https://github.com\" class=\"link\" target=\"_blank\">GitHub</a>\n                <a href=\"https://twitter.com\" class=\"link\" target=\"_blank\">Twitter</a>\n                <a href=\"https://linkedin.com\" class=\"link\" target=\"_blank\">LinkedIn</a>\n                <a href=\"mailto:hello@example.com\" class=\"link\">Email Me</a>\n            </div>\n\n            <div class=\"footer\">\n                Powered by <a href=\"https://niblit.ai.app\">Niblit.ai</a>\n            </div>\n        </div>\n    </div>\n\n    <script>\n        // Add some interactivity\n        document.querySelectorAll('.link').forEach(link => {\n            link.addEventListener('mouseenter', () => {\n                link.style.transform = 'translateY(-2px) scale(1.02)';\n            });\n            link.addEventListener('mouseleave', () => {\n                link.style.transform = '';\n            });\n        });\n\n        console.log('Portfolio loaded! Powered by Niblit.ai.');\n    </script>\n</body>\n</html>\n", "nginx.conf": "server {\n    listen 80;\n    server_name localhost;\n    root /usr/share/nginx/html;\n    index index.html;\n\n    # Enable gzip compression\n    gzip on;\n    gzip_types text/plain text/css application/json application/javascript text/xml application/xml;\n\n    # Cache static assets\n    location ~* \\.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ {\n        expires 1y;\n        add_header Cache-Control \"public, immutable\";\n    }\n\n    # SPA support: serve index.html for all routes\n    location / {\n        try_files $uri $uri/ /index.html;\n    }\n\n    # Health check endpoint\n    location /health {\n        return 200 '{\"status\":\"ok\"}';\n        add_header Content-Type application/json;\n    }\n}\n", "Dockerfile": "FROM nginx:alpine\n\n# Copy static files to nginx html directory\nCOPY . /usr/share/nginx/html\n\n# Copy custom nginx config\nCOPY nginx.conf /etc/nginx/conf.d/default.conf\n\nEXPOSE 80\n\nCMD [\"nginx\", \"-g\", \"daemon off;\"]\n"}}