Spaces:
				
			
			
	
			
			
					
		Running
		
	
	
	
			
			
	
	
	
	
		
		
					
		Running
		
	🔥 deepsite.hf.co to hf.co/deepsite
Browse files- MCP-SERVER.md +13 -13
- app/api/ask/route.ts +1 -1
- app/api/auth/login-url/route.ts +1 -1
- app/api/mcp/route.ts +2 -2
- app/api/me/projects/route.ts +1 -1
- app/layout.tsx +3 -3
- app/sitemap.ts +1 -1
- components/iframe-detector/index.tsx +1 -1
- components/iframe-detector/modal.tsx +2 -2
- lib/inject-badge.ts +1 -1
- lib/seo.ts +5 -5
- middleware.ts +1 -1
- public/deepsite-badge.js +2 -2
- public/robots.txt +1 -1
    	
        MCP-SERVER.md
    CHANGED
    
    | @@ -32,7 +32,7 @@ Add to your Claude Desktop configuration file: | |
| 32 | 
             
            {
         | 
| 33 | 
             
              "mcpServers": {
         | 
| 34 | 
             
                "deepsite": {
         | 
| 35 | 
            -
                  "url": "https:// | 
| 36 | 
             
                  "transport": {
         | 
| 37 | 
             
                    "type": "sse"
         | 
| 38 | 
             
                  },
         | 
| @@ -92,7 +92,7 @@ npm run build | |
| 92 | 
             
                  "args": ["/absolute/path/to/deepsite-v3/mcp-server/dist/index.js"],
         | 
| 93 | 
             
                  "env": {
         | 
| 94 | 
             
                    "HF_TOKEN": "hf_your_token_here",
         | 
| 95 | 
            -
                    "DEEPSITE_API_URL": "https:// | 
| 96 | 
             
                  }
         | 
| 97 | 
             
                }
         | 
| 98 | 
             
              }
         | 
| @@ -109,7 +109,7 @@ npm run build | |
| 109 | 
             
                  "args": ["/absolute/path/to/deepsite-v3/mcp-server/dist/index.js"],
         | 
| 110 | 
             
                  "env": {
         | 
| 111 | 
             
                    "DEEPSITE_AUTH_COOKIE": "your-session-cookie",
         | 
| 112 | 
            -
                    "DEEPSITE_API_URL": "https:// | 
| 113 | 
             
                  }
         | 
| 114 | 
             
                }
         | 
| 115 | 
             
              }
         | 
| @@ -118,7 +118,7 @@ npm run build | |
| 118 |  | 
| 119 | 
             
            **Getting Your Session Cookie (Method B only):**
         | 
| 120 |  | 
| 121 | 
            -
            1. Log in to https:// | 
| 122 | 
             
            2. Open Developer Tools (F12)
         | 
| 123 | 
             
            3. Go to Application → Cookies
         | 
| 124 | 
             
            4. Copy the session cookie value
         | 
| @@ -154,7 +154,7 @@ Creates a new DeepSite project with HTML/CSS/JS files. | |
| 154 | 
             
            {
         | 
| 155 | 
             
              "success": true,
         | 
| 156 | 
             
              "message": "Project created successfully!",
         | 
| 157 | 
            -
              "projectUrl": "https:// | 
| 158 | 
             
              "spaceUrl": "https://huggingface.co/spaces/username/project-name",
         | 
| 159 | 
             
              "liveUrl": "https://username-project-name.hf.space",
         | 
| 160 | 
             
              "spaceId": "username/project-name",
         | 
| @@ -204,7 +204,7 @@ You can also call the HTTP endpoint directly: | |
| 204 | 
             
            ### Using Authorization Header (Recommended)
         | 
| 205 |  | 
| 206 | 
             
            ```bash
         | 
| 207 | 
            -
            curl -X POST https:// | 
| 208 | 
             
              -H "Content-Type: application/json" \
         | 
| 209 | 
             
              -H "Authorization: Bearer hf_your_token_here" \
         | 
| 210 | 
             
              -d '{
         | 
| @@ -229,7 +229,7 @@ curl -X POST https://deepsite.hf.co/api/mcp \ | |
| 229 | 
             
            ### Using Token Parameter (Fallback)
         | 
| 230 |  | 
| 231 | 
             
            ```bash
         | 
| 232 | 
            -
            curl -X POST https:// | 
| 233 | 
             
              -H "Content-Type: application/json" \
         | 
| 234 | 
             
              -d '{
         | 
| 235 | 
             
                "jsonrpc": "2.0",
         | 
| @@ -254,7 +254,7 @@ curl -X POST https://deepsite.hf.co/api/mcp \ | |
| 254 | 
             
            ### List Available Tools
         | 
| 255 |  | 
| 256 | 
             
            ```bash
         | 
| 257 | 
            -
            curl -X POST https:// | 
| 258 | 
             
              -H "Content-Type: application/json" \
         | 
| 259 | 
             
              -d '{
         | 
| 260 | 
             
                "jsonrpc": "2.0",
         | 
| @@ -278,7 +278,7 @@ cd mcp-server | |
| 278 | 
             
            ### Test HTTP Server
         | 
| 279 |  | 
| 280 | 
             
            ```bash
         | 
| 281 | 
            -
            curl -X POST https:// | 
| 282 | 
             
              -H "Content-Type: application/json" \
         | 
| 283 | 
             
              -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
         | 
| 284 | 
             
            ```
         | 
| @@ -297,7 +297,7 @@ Edit your Claude Desktop config file and add the `headers` section: | |
| 297 | 
             
            {
         | 
| 298 | 
             
              "mcpServers": {
         | 
| 299 | 
             
                "deepsite": {
         | 
| 300 | 
            -
                  "url": "https:// | 
| 301 | 
             
                  "transport": {
         | 
| 302 | 
             
                    "type": "sse"
         | 
| 303 | 
             
                  },
         | 
| @@ -377,7 +377,7 @@ Claude Desktop | |
| 377 | 
             
                  ↓
         | 
| 378 | 
             
             (HTTP Request)
         | 
| 379 | 
             
                  ↓
         | 
| 380 | 
            -
             | 
| 381 | 
             
                  ↓
         | 
| 382 | 
             
            Hugging Face API (with user's token)
         | 
| 383 | 
             
                  ↓
         | 
| @@ -396,7 +396,7 @@ Local MCP Server | |
| 396 | 
             
                  ↓
         | 
| 397 | 
             
             (HTTP to DeepSite API)
         | 
| 398 | 
             
                  ↓
         | 
| 399 | 
            -
             | 
| 400 | 
             
                  ↓
         | 
| 401 | 
             
            New Space Created
         | 
| 402 | 
             
            ```
         | 
| @@ -422,7 +422,7 @@ MIT | |
| 422 | 
             
            ## Resources
         | 
| 423 |  | 
| 424 | 
             
            - [Model Context Protocol Spec](https://modelcontextprotocol.io/)
         | 
| 425 | 
            -
            - [DeepSite Documentation](https:// | 
| 426 | 
             
            - [Hugging Face Spaces](https://huggingface.co/docs/hub/spaces)
         | 
| 427 | 
             
            - [Claude Desktop](https://claude.ai/desktop)
         | 
| 428 |  | 
|  | |
| 32 | 
             
            {
         | 
| 33 | 
             
              "mcpServers": {
         | 
| 34 | 
             
                "deepsite": {
         | 
| 35 | 
            +
                  "url": "https://hf.co/deepsite/api/mcp",
         | 
| 36 | 
             
                  "transport": {
         | 
| 37 | 
             
                    "type": "sse"
         | 
| 38 | 
             
                  },
         | 
|  | |
| 92 | 
             
                  "args": ["/absolute/path/to/deepsite-v3/mcp-server/dist/index.js"],
         | 
| 93 | 
             
                  "env": {
         | 
| 94 | 
             
                    "HF_TOKEN": "hf_your_token_here",
         | 
| 95 | 
            +
                    "DEEPSITE_API_URL": "https://hf.co/deepsite"
         | 
| 96 | 
             
                  }
         | 
| 97 | 
             
                }
         | 
| 98 | 
             
              }
         | 
|  | |
| 109 | 
             
                  "args": ["/absolute/path/to/deepsite-v3/mcp-server/dist/index.js"],
         | 
| 110 | 
             
                  "env": {
         | 
| 111 | 
             
                    "DEEPSITE_AUTH_COOKIE": "your-session-cookie",
         | 
| 112 | 
            +
                    "DEEPSITE_API_URL": "https://hf.co/deepsite"
         | 
| 113 | 
             
                  }
         | 
| 114 | 
             
                }
         | 
| 115 | 
             
              }
         | 
|  | |
| 118 |  | 
| 119 | 
             
            **Getting Your Session Cookie (Method B only):**
         | 
| 120 |  | 
| 121 | 
            +
            1. Log in to https://hf.co/deepsite
         | 
| 122 | 
             
            2. Open Developer Tools (F12)
         | 
| 123 | 
             
            3. Go to Application → Cookies
         | 
| 124 | 
             
            4. Copy the session cookie value
         | 
|  | |
| 154 | 
             
            {
         | 
| 155 | 
             
              "success": true,
         | 
| 156 | 
             
              "message": "Project created successfully!",
         | 
| 157 | 
            +
              "projectUrl": "https://hf.co/deepsite/username/project-name",
         | 
| 158 | 
             
              "spaceUrl": "https://huggingface.co/spaces/username/project-name",
         | 
| 159 | 
             
              "liveUrl": "https://username-project-name.hf.space",
         | 
| 160 | 
             
              "spaceId": "username/project-name",
         | 
|  | |
| 204 | 
             
            ### Using Authorization Header (Recommended)
         | 
| 205 |  | 
| 206 | 
             
            ```bash
         | 
| 207 | 
            +
            curl -X POST https://hf.co/deepsite/api/mcp \
         | 
| 208 | 
             
              -H "Content-Type: application/json" \
         | 
| 209 | 
             
              -H "Authorization: Bearer hf_your_token_here" \
         | 
| 210 | 
             
              -d '{
         | 
|  | |
| 229 | 
             
            ### Using Token Parameter (Fallback)
         | 
| 230 |  | 
| 231 | 
             
            ```bash
         | 
| 232 | 
            +
            curl -X POST https://hf.co/deepsite/api/mcp \
         | 
| 233 | 
             
              -H "Content-Type: application/json" \
         | 
| 234 | 
             
              -d '{
         | 
| 235 | 
             
                "jsonrpc": "2.0",
         | 
|  | |
| 254 | 
             
            ### List Available Tools
         | 
| 255 |  | 
| 256 | 
             
            ```bash
         | 
| 257 | 
            +
            curl -X POST https://hf.co/deepsite/api/mcp \
         | 
| 258 | 
             
              -H "Content-Type: application/json" \
         | 
| 259 | 
             
              -d '{
         | 
| 260 | 
             
                "jsonrpc": "2.0",
         | 
|  | |
| 278 | 
             
            ### Test HTTP Server
         | 
| 279 |  | 
| 280 | 
             
            ```bash
         | 
| 281 | 
            +
            curl -X POST https://hf.co/deepsite/api/mcp \
         | 
| 282 | 
             
              -H "Content-Type: application/json" \
         | 
| 283 | 
             
              -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
         | 
| 284 | 
             
            ```
         | 
|  | |
| 297 | 
             
            {
         | 
| 298 | 
             
              "mcpServers": {
         | 
| 299 | 
             
                "deepsite": {
         | 
| 300 | 
            +
                  "url": "https://hf.co/deepsite/api/mcp",
         | 
| 301 | 
             
                  "transport": {
         | 
| 302 | 
             
                    "type": "sse"
         | 
| 303 | 
             
                  },
         | 
|  | |
| 377 | 
             
                  ↓
         | 
| 378 | 
             
             (HTTP Request)
         | 
| 379 | 
             
                  ↓
         | 
| 380 | 
            +
            hf.co/deepsite/api/mcp
         | 
| 381 | 
             
                  ↓
         | 
| 382 | 
             
            Hugging Face API (with user's token)
         | 
| 383 | 
             
                  ↓
         | 
|  | |
| 396 | 
             
                  ↓
         | 
| 397 | 
             
             (HTTP to DeepSite API)
         | 
| 398 | 
             
                  ↓
         | 
| 399 | 
            +
            hf.co/deepsite/api/me/projects
         | 
| 400 | 
             
                  ↓
         | 
| 401 | 
             
            New Space Created
         | 
| 402 | 
             
            ```
         | 
|  | |
| 422 | 
             
            ## Resources
         | 
| 423 |  | 
| 424 | 
             
            - [Model Context Protocol Spec](https://modelcontextprotocol.io/)
         | 
| 425 | 
            +
            - [DeepSite Documentation](https://hf.co/deepsite)
         | 
| 426 | 
             
            - [Hugging Face Spaces](https://huggingface.co/docs/hub/spaces)
         | 
| 427 | 
             
            - [Claude Desktop](https://claude.ai/desktop)
         | 
| 428 |  | 
    	
        app/api/ask/route.ts
    CHANGED
    
    | @@ -584,7 +584,7 @@ tags: | |
| 584 | 
             
            ---
         | 
| 585 |  | 
| 586 | 
             
            # Welcome to your new DeepSite project!
         | 
| 587 | 
            -
            This project was created with [DeepSite](https:// | 
| 588 | 
             
                  `;
         | 
| 589 | 
             
                    files.push(new File([README], "README.md", { type: "text/markdown" }));
         | 
| 590 | 
             
                  }
         | 
|  | |
| 584 | 
             
            ---
         | 
| 585 |  | 
| 586 | 
             
            # Welcome to your new DeepSite project!
         | 
| 587 | 
            +
            This project was created with [DeepSite](https://hf.co/deepsite).
         | 
| 588 | 
             
                  `;
         | 
| 589 | 
             
                    files.push(new File([README], "README.md", { type: "text/markdown" }));
         | 
| 590 | 
             
                  }
         | 
    	
        app/api/auth/login-url/route.ts
    CHANGED
    
    | @@ -9,7 +9,7 @@ export async function GET(req: NextRequest) { | |
| 9 | 
             
              } else if (host.includes("hf.space") || host.includes("/spaces/enzostvs")) {
         | 
| 10 | 
             
                url = "enzostvs-deepsite.hf.space";
         | 
| 11 | 
             
              } else {
         | 
| 12 | 
            -
                url = " | 
| 13 | 
             
              }
         | 
| 14 |  | 
| 15 | 
             
              const redirect_uri =
         | 
|  | |
| 9 | 
             
              } else if (host.includes("hf.space") || host.includes("/spaces/enzostvs")) {
         | 
| 10 | 
             
                url = "enzostvs-deepsite.hf.space";
         | 
| 11 | 
             
              } else {
         | 
| 12 | 
            +
                url = "hf.co/deepsite";
         | 
| 13 | 
             
              }
         | 
| 14 |  | 
| 15 | 
             
              const redirect_uri =
         | 
    	
        app/api/mcp/route.ts
    CHANGED
    
    | @@ -273,7 +273,7 @@ tags: | |
| 273 | 
             
            ---
         | 
| 274 |  | 
| 275 | 
             
            # Welcome to your new DeepSite project!
         | 
| 276 | 
            -
            This project was created with [DeepSite](https:// | 
| 277 | 
             
            `;
         | 
| 278 |  | 
| 279 | 
             
              const files: File[] = [];
         | 
| @@ -333,7 +333,7 @@ This project was created with [DeepSite](https://deepsite.hf.co). | |
| 333 | 
             
                  accessToken: hf_token,
         | 
| 334 | 
             
                });
         | 
| 335 |  | 
| 336 | 
            -
                const projectUrl = `https:// | 
| 337 | 
             
                const spaceUrl = `https://huggingface.co/spaces/${path}`;
         | 
| 338 | 
             
                const liveUrl = `https://${username}-${formattedTitle}.hf.space`;
         | 
| 339 |  | 
|  | |
| 273 | 
             
            ---
         | 
| 274 |  | 
| 275 | 
             
            # Welcome to your new DeepSite project!
         | 
| 276 | 
            +
            This project was created with [DeepSite](https://hf.co/deepsite).
         | 
| 277 | 
             
            `;
         | 
| 278 |  | 
| 279 | 
             
              const files: File[] = [];
         | 
|  | |
| 333 | 
             
                  accessToken: hf_token,
         | 
| 334 | 
             
                });
         | 
| 335 |  | 
| 336 | 
            +
                const projectUrl = `https://hf.co/deepsite/${path}`;
         | 
| 337 | 
             
                const spaceUrl = `https://huggingface.co/spaces/${path}`;
         | 
| 338 | 
             
                const liveUrl = `https://${username}-${formattedTitle}.hf.space`;
         | 
| 339 |  | 
    	
        app/api/me/projects/route.ts
    CHANGED
    
    | @@ -44,7 +44,7 @@ tags: | |
| 44 | 
             
            ---
         | 
| 45 |  | 
| 46 | 
             
            # Welcome to your new DeepSite project!
         | 
| 47 | 
            -
            This project was created with [DeepSite](https:// | 
| 48 | 
             
            `;
         | 
| 49 |  | 
| 50 | 
             
              const files: File[] = [];
         | 
|  | |
| 44 | 
             
            ---
         | 
| 45 |  | 
| 46 | 
             
            # Welcome to your new DeepSite project!
         | 
| 47 | 
            +
            This project was created with [DeepSite](https://hf.co/deepsite).
         | 
| 48 | 
             
            `;
         | 
| 49 |  | 
| 50 | 
             
              const files: File[] = [];
         | 
    	
        app/layout.tsx
    CHANGED
    
    | @@ -81,12 +81,12 @@ export default async function RootLayout({ | |
| 81 | 
             
              const structuredData = generateStructuredData("WebApplication", {
         | 
| 82 | 
             
                name: "DeepSite",
         | 
| 83 | 
             
                description: "Build websites with AI, no code required",
         | 
| 84 | 
            -
                url: "https:// | 
| 85 | 
             
              });
         | 
| 86 |  | 
| 87 | 
             
              const organizationData = generateStructuredData("Organization", {
         | 
| 88 | 
             
                name: "DeepSite",
         | 
| 89 | 
            -
                url: "https:// | 
| 90 | 
             
              });
         | 
| 91 |  | 
| 92 | 
             
              return (
         | 
| @@ -107,7 +107,7 @@ export default async function RootLayout({ | |
| 107 | 
             
                  </head>
         | 
| 108 | 
             
                  <Script
         | 
| 109 | 
             
                    defer
         | 
| 110 | 
            -
                    data-domain=" | 
| 111 | 
             
                    src="https://plausible.io/js/script.js"
         | 
| 112 | 
             
                  ></Script>
         | 
| 113 | 
             
                  <body
         | 
|  | |
| 81 | 
             
              const structuredData = generateStructuredData("WebApplication", {
         | 
| 82 | 
             
                name: "DeepSite",
         | 
| 83 | 
             
                description: "Build websites with AI, no code required",
         | 
| 84 | 
            +
                url: "https://hf.co/deepsite",
         | 
| 85 | 
             
              });
         | 
| 86 |  | 
| 87 | 
             
              const organizationData = generateStructuredData("Organization", {
         | 
| 88 | 
             
                name: "DeepSite",
         | 
| 89 | 
            +
                url: "https://hf.co/deepsite",
         | 
| 90 | 
             
              });
         | 
| 91 |  | 
| 92 | 
             
              return (
         | 
|  | |
| 107 | 
             
                  </head>
         | 
| 108 | 
             
                  <Script
         | 
| 109 | 
             
                    defer
         | 
| 110 | 
            +
                    data-domain="hf.co/deepsite"
         | 
| 111 | 
             
                    src="https://plausible.io/js/script.js"
         | 
| 112 | 
             
                  ></Script>
         | 
| 113 | 
             
                  <body
         | 
    	
        app/sitemap.ts
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 | 
             
            import { MetadataRoute } from 'next';
         | 
| 2 |  | 
| 3 | 
             
            export default function sitemap(): MetadataRoute.Sitemap {
         | 
| 4 | 
            -
              const baseUrl = 'https:// | 
| 5 |  | 
| 6 | 
             
              return [
         | 
| 7 | 
             
                {
         | 
|  | |
| 1 | 
             
            import { MetadataRoute } from 'next';
         | 
| 2 |  | 
| 3 | 
             
            export default function sitemap(): MetadataRoute.Sitemap {
         | 
| 4 | 
            +
              const baseUrl = 'https://hf.co/deepsite';
         | 
| 5 |  | 
| 6 | 
             
              return [
         | 
| 7 | 
             
                {
         | 
    	
        components/iframe-detector/index.tsx
    CHANGED
    
    | @@ -16,7 +16,7 @@ export default function IframeDetector() { | |
| 16 | 
             
                    host === "huggingface.co" ||
         | 
| 17 | 
             
                    host === "hf.co" ||
         | 
| 18 | 
             
                    host === "enzostvs-deepsite.hf.space" ||
         | 
| 19 | 
            -
                    host === " | 
| 20 | 
             
                  );
         | 
| 21 | 
             
                };
         | 
| 22 |  | 
|  | |
| 16 | 
             
                    host === "huggingface.co" ||
         | 
| 17 | 
             
                    host === "hf.co" ||
         | 
| 18 | 
             
                    host === "enzostvs-deepsite.hf.space" ||
         | 
| 19 | 
            +
                    host === "hf.co/deepsite"
         | 
| 20 | 
             
                  );
         | 
| 21 | 
             
                };
         | 
| 22 |  | 
    	
        components/iframe-detector/modal.tsx
    CHANGED
    
    | @@ -21,7 +21,7 @@ export default function IframeWarningModal({ | |
| 21 | 
             
            }: // onOpenChange,
         | 
| 22 | 
             
            IframeWarningModalProps) {
         | 
| 23 | 
             
              const handleVisitSite = () => {
         | 
| 24 | 
            -
                window.open("https:// | 
| 25 | 
             
              };
         | 
| 26 |  | 
| 27 | 
             
              return (
         | 
| @@ -52,7 +52,7 @@ IframeWarningModalProps) { | |
| 52 | 
             
                    <DialogFooter className="flex-col sm:flex-row gap-2">
         | 
| 53 | 
             
                      <Button onClick={handleVisitSite} className="w-full sm:w-auto">
         | 
| 54 | 
             
                        <ExternalLink className="mr-2 h-4 w-4" />
         | 
| 55 | 
            -
                        Visit  | 
| 56 | 
             
                      </Button>
         | 
| 57 | 
             
                    </DialogFooter>
         | 
| 58 | 
             
                  </DialogContent>
         | 
|  | |
| 21 | 
             
            }: // onOpenChange,
         | 
| 22 | 
             
            IframeWarningModalProps) {
         | 
| 23 | 
             
              const handleVisitSite = () => {
         | 
| 24 | 
            +
                window.open("https://hf.co/deepsite", "_blank");
         | 
| 25 | 
             
              };
         | 
| 26 |  | 
| 27 | 
             
              return (
         | 
|  | |
| 52 | 
             
                    <DialogFooter className="flex-col sm:flex-row gap-2">
         | 
| 53 | 
             
                      <Button onClick={handleVisitSite} className="w-full sm:w-auto">
         | 
| 54 | 
             
                        <ExternalLink className="mr-2 h-4 w-4" />
         | 
| 55 | 
            +
                        Visit hf.co/deepsite
         | 
| 56 | 
             
                      </Button>
         | 
| 57 | 
             
                    </DialogFooter>
         | 
| 58 | 
             
                  </DialogContent>
         | 
    	
        lib/inject-badge.ts
    CHANGED
    
    | @@ -6,7 +6,7 @@ | |
| 6 | 
             
             * @returns The HTML content with the badge script injected
         | 
| 7 | 
             
             */
         | 
| 8 | 
             
            export function injectDeepSiteBadge(html: string): string {
         | 
| 9 | 
            -
              const badgeScript = '<script src="https:// | 
| 10 |  | 
| 11 | 
             
              // Remove any existing badge script to avoid duplicates
         | 
| 12 | 
             
              const cleanedHtml = html.replace(
         | 
|  | |
| 6 | 
             
             * @returns The HTML content with the badge script injected
         | 
| 7 | 
             
             */
         | 
| 8 | 
             
            export function injectDeepSiteBadge(html: string): string {
         | 
| 9 | 
            +
              const badgeScript = '<script src="https://hf.co/deepsite/deepsite-badge.js"></script>';
         | 
| 10 |  | 
| 11 | 
             
              // Remove any existing badge script to avoid duplicates
         | 
| 12 | 
             
              const cleanedHtml = html.replace(
         | 
    	
        lib/seo.ts
    CHANGED
    
    | @@ -17,7 +17,7 @@ export function generateSEO({ | |
| 17 | 
             
              noIndex = false,
         | 
| 18 | 
             
              canonical,
         | 
| 19 | 
             
            }: SEOParams = {}): Metadata {
         | 
| 20 | 
            -
              const baseUrl = "https:// | 
| 21 | 
             
              const fullUrl = `${baseUrl}${path}`;
         | 
| 22 | 
             
              const canonicalUrl = canonical || fullUrl;
         | 
| 23 |  | 
| @@ -96,7 +96,7 @@ export function generateStructuredData(type: 'WebApplication' | 'Organization' | | |
| 96 | 
             
                    ...baseStructuredData,
         | 
| 97 | 
             
                    name: 'DeepSite',
         | 
| 98 | 
             
                    description: 'Build websites with AI, no code required',
         | 
| 99 | 
            -
                    url: 'https:// | 
| 100 | 
             
                    applicationCategory: 'DeveloperApplication',
         | 
| 101 | 
             
                    operatingSystem: 'Web',
         | 
| 102 | 
             
                    offers: {
         | 
| @@ -107,7 +107,7 @@ export function generateStructuredData(type: 'WebApplication' | 'Organization' | | |
| 107 | 
             
                    creator: {
         | 
| 108 | 
             
                      '@type': 'Organization',
         | 
| 109 | 
             
                      name: 'DeepSite',
         | 
| 110 | 
            -
                      url: 'https:// | 
| 111 | 
             
                    },
         | 
| 112 | 
             
                    ...data,
         | 
| 113 | 
             
                  };
         | 
| @@ -116,8 +116,8 @@ export function generateStructuredData(type: 'WebApplication' | 'Organization' | | |
| 116 | 
             
                  return {
         | 
| 117 | 
             
                    ...baseStructuredData,
         | 
| 118 | 
             
                    name: 'DeepSite',
         | 
| 119 | 
            -
                    url: 'https:// | 
| 120 | 
            -
                    logo: 'https:// | 
| 121 | 
             
                    description: 'AI-powered web development platform',
         | 
| 122 | 
             
                    sameAs: [
         | 
| 123 | 
             
                      // Add social media links here if available
         | 
|  | |
| 17 | 
             
              noIndex = false,
         | 
| 18 | 
             
              canonical,
         | 
| 19 | 
             
            }: SEOParams = {}): Metadata {
         | 
| 20 | 
            +
              const baseUrl = "https://hf.co/deepsite";
         | 
| 21 | 
             
              const fullUrl = `${baseUrl}${path}`;
         | 
| 22 | 
             
              const canonicalUrl = canonical || fullUrl;
         | 
| 23 |  | 
|  | |
| 96 | 
             
                    ...baseStructuredData,
         | 
| 97 | 
             
                    name: 'DeepSite',
         | 
| 98 | 
             
                    description: 'Build websites with AI, no code required',
         | 
| 99 | 
            +
                    url: 'https://hf.co/deepsite',
         | 
| 100 | 
             
                    applicationCategory: 'DeveloperApplication',
         | 
| 101 | 
             
                    operatingSystem: 'Web',
         | 
| 102 | 
             
                    offers: {
         | 
|  | |
| 107 | 
             
                    creator: {
         | 
| 108 | 
             
                      '@type': 'Organization',
         | 
| 109 | 
             
                      name: 'DeepSite',
         | 
| 110 | 
            +
                      url: 'https://hf.co/deepsite',
         | 
| 111 | 
             
                    },
         | 
| 112 | 
             
                    ...data,
         | 
| 113 | 
             
                  };
         | 
|  | |
| 116 | 
             
                  return {
         | 
| 117 | 
             
                    ...baseStructuredData,
         | 
| 118 | 
             
                    name: 'DeepSite',
         | 
| 119 | 
            +
                    url: 'https://hf.co/deepsite',
         | 
| 120 | 
            +
                    logo: 'https://hf.co/deepsite/logo.svg',
         | 
| 121 | 
             
                    description: 'AI-powered web development platform',
         | 
| 122 | 
             
                    sameAs: [
         | 
| 123 | 
             
                      // Add social media links here if available
         | 
    	
        middleware.ts
    CHANGED
    
    | @@ -10,7 +10,7 @@ export function middleware(request: NextRequest) { | |
| 10 | 
             
              if (request.nextUrl.pathname.startsWith('/_next/static')) {
         | 
| 11 | 
             
                response.headers.set('Cache-Control', 'public, max-age=31536000, immutable');
         | 
| 12 | 
             
              }
         | 
| 13 | 
            -
              response.headers.set('X-Canonical-URL', `https:// | 
| 14 |  | 
| 15 | 
             
              return response;
         | 
| 16 | 
             
            }
         | 
|  | |
| 10 | 
             
              if (request.nextUrl.pathname.startsWith('/_next/static')) {
         | 
| 11 | 
             
                response.headers.set('Cache-Control', 'public, max-age=31536000, immutable');
         | 
| 12 | 
             
              }
         | 
| 13 | 
            +
              response.headers.set('X-Canonical-URL', `https://hf.co/deepsite${request.nextUrl.pathname}`);
         | 
| 14 |  | 
| 15 | 
             
              return response;
         | 
| 16 | 
             
            }
         | 
    	
        public/deepsite-badge.js
    CHANGED
    
    | @@ -73,13 +73,13 @@ | |
| 73 |  | 
| 74 | 
             
              // Create link
         | 
| 75 | 
             
              const link = document.createElement('a');
         | 
| 76 | 
            -
              link.href = 'https:// | 
| 77 | 
             
              link.target = '_blank';
         | 
| 78 | 
             
              link.rel = 'noopener noreferrer';
         | 
| 79 |  | 
| 80 | 
             
              // Create icon placeholder
         | 
| 81 | 
             
              const icon = document.createElement('img');
         | 
| 82 | 
            -
              icon.src = 'https:// | 
| 83 | 
             
              icon.alt = 'DeepSite';
         | 
| 84 | 
             
              icon.style.marginRight = '6px';
         | 
| 85 | 
             
              icon.style.width = '16px';
         | 
|  | |
| 73 |  | 
| 74 | 
             
              // Create link
         | 
| 75 | 
             
              const link = document.createElement('a');
         | 
| 76 | 
            +
              link.href = 'https://hf.co/deepsite';
         | 
| 77 | 
             
              link.target = '_blank';
         | 
| 78 | 
             
              link.rel = 'noopener noreferrer';
         | 
| 79 |  | 
| 80 | 
             
              // Create icon placeholder
         | 
| 81 | 
             
              const icon = document.createElement('img');
         | 
| 82 | 
            +
              icon.src = 'https://hf.co/deepsite/logo.svg';
         | 
| 83 | 
             
              icon.alt = 'DeepSite';
         | 
| 84 | 
             
              icon.style.marginRight = '6px';
         | 
| 85 | 
             
              icon.style.width = '16px';
         | 
    	
        public/robots.txt
    CHANGED
    
    | @@ -11,7 +11,7 @@ Disallow: /assets/ | |
| 11 | 
             
            Allow: /api/public/
         | 
| 12 |  | 
| 13 | 
             
            # Sitemap location
         | 
| 14 | 
            -
            Sitemap: https:// | 
| 15 |  | 
| 16 | 
             
            # Crawl-delay for respectful crawling
         | 
| 17 | 
             
            Crawl-delay: 1
         | 
|  | |
| 11 | 
             
            Allow: /api/public/
         | 
| 12 |  | 
| 13 | 
             
            # Sitemap location
         | 
| 14 | 
            +
            Sitemap: https://hf.co/deepsite/sitemap.xml
         | 
| 15 |  | 
| 16 | 
             
            # Crawl-delay for respectful crawling
         | 
| 17 | 
             
            Crawl-delay: 1
         | 
