enzostvs HF Staff commited on
Commit
8815af0
·
1 Parent(s): b3229d0

remove /deepsite

Browse files
app/(public)/signin/page.tsx CHANGED
@@ -14,7 +14,7 @@ export default async function SignInPage({
14
  <p className="text-lg text-muted-foreground mb-8">
15
  You can&apos;t access this resource without being signed in.
16
  </p>
17
- <LoginButtons callbackUrl={callbackUrl ?? "/deepsite"} />
18
  </div>
19
  </section>
20
  );
 
14
  <p className="text-lg text-muted-foreground mb-8">
15
  You can&apos;t access this resource without being signed in.
16
  </p>
17
+ <LoginButtons callbackUrl={callbackUrl ?? "/"} />
18
  </div>
19
  </section>
20
  );
app/[owner]/[repoId]/page.tsx CHANGED
@@ -16,7 +16,7 @@ export default async function ProjectPage({
16
  const { commit } = await searchParams;
17
  if (!session) {
18
  redirect(
19
- `/api/auth/signin?callbackUrl=/deepsite/${owner}/${repoId}${
20
  commit ? `?commit=${commit}` : ""
21
  }`
22
  );
 
16
  const { commit } = await searchParams;
17
  if (!session) {
18
  redirect(
19
+ `/api/auth/signin?callbackUrl=/${owner}/${repoId}${
20
  commit ? `?commit=${commit}` : ""
21
  }`
22
  );
app/api/projects/route.ts CHANGED
@@ -74,7 +74,7 @@ tags:
74
 
75
  # ${escapeMarkdownHeader(title)}
76
 
77
- This project has been created with [DeepSite](https://huggingface.co/deepsite) AI Vibe Coding.
78
  `;
79
 
80
  const filesToUpload: File[] = [
 
74
 
75
  # ${escapeMarkdownHeader(title)}
76
 
77
+ This project has been created with [DeepSite](https://deepsite.hf.co) AI Vibe Coding.
78
  `;
79
 
80
  const filesToUpload: File[] = [
app/layout.tsx CHANGED
@@ -34,9 +34,9 @@ export const metadata: Metadata = {
34
  statusBarStyle: "black-translucent",
35
  },
36
  icons: {
37
- icon: "/deepsite/logo.svg",
38
- shortcut: "/deepsite/logo.svg",
39
- apple: "/deepsite/logo.svg",
40
  },
41
  verification: {
42
  google: process.env.GOOGLE_SITE_VERIFICATION,
@@ -57,11 +57,11 @@ export default async function RootLayout({
57
  const structuredData = generateStructuredData("WebApplication", {
58
  name: "DeepSite",
59
  description: "Build websites with AI, no code required",
60
- url: "https://huggingface.co/deepsite",
61
  });
62
  const organizationData = generateStructuredData("Organization", {
63
  name: "DeepSite",
64
- url: "https://huggingface.co/deepsite",
65
  });
66
 
67
  return (
 
34
  statusBarStyle: "black-translucent",
35
  },
36
  icons: {
37
+ icon: "/logo.svg",
38
+ shortcut: "/logo.svg",
39
+ apple: "/logo.svg",
40
  },
41
  verification: {
42
  google: process.env.GOOGLE_SITE_VERIFICATION,
 
57
  const structuredData = generateStructuredData("WebApplication", {
58
  name: "DeepSite",
59
  description: "Build websites with AI, no code required",
60
+ url: "https://deepsite.hf.co",
61
  });
62
  const organizationData = generateStructuredData("Organization", {
63
  name: "DeepSite",
64
+ url: "https://deepsite.hf.co",
65
  });
66
 
67
  return (
app/new/page.tsx CHANGED
@@ -10,7 +10,7 @@ export default async function NewProjectPage({
10
  const session = await auth();
11
 
12
  if (!session) {
13
- redirect("/api/auth/signin?callbackUrl=/deepsite/new");
14
  }
15
 
16
  const { prompt } = await searchParams;
 
10
  const session = await auth();
11
 
12
  if (!session) {
13
+ redirect("/api/auth/signin?callbackUrl=/new");
14
  }
15
 
16
  const { prompt } = await searchParams;
components/ask-ai/redesign.tsx CHANGED
@@ -41,7 +41,7 @@ export function Redesign({
41
  return;
42
  }
43
  setIsLoading(true);
44
- const response = await fetch("/deepsite/api/redesign", {
45
  method: "PUT",
46
  body: JSON.stringify({ url: url.trim() }),
47
  headers: {
 
41
  return;
42
  }
43
  setIsLoading(true);
44
+ const response = await fetch("/api/redesign", {
45
  method: "PUT",
46
  body: JSON.stringify({ url: url.trim() }),
47
  headers: {
components/ask-ai/useGeneration.ts CHANGED
@@ -140,7 +140,7 @@ export const useGeneration = (projectName: string) => {
140
  ],
141
  });
142
  try {
143
- const response = await fetch("/deepsite/api/projects", {
144
  method: "POST",
145
  body: JSON.stringify({
146
  projectTitle,
@@ -234,7 +234,7 @@ export const useGeneration = (projectName: string) => {
234
  const isFollowUp = files?.length > 0;
235
  abortController.current = new AbortController();
236
 
237
- const request = await fetch("/deepsite/api/ask", {
238
  method: "POST",
239
  body: JSON.stringify({
240
  prompt,
 
140
  ],
141
  });
142
  try {
143
+ const response = await fetch("/api/projects", {
144
  method: "POST",
145
  body: JSON.stringify({
146
  projectTitle,
 
234
  const isFollowUp = files?.length > 0;
235
  abortController.current = new AbortController();
236
 
237
+ const request = await fetch("/api/ask", {
238
  method: "POST",
239
  body: JSON.stringify({
240
  prompt,
components/editor/project-settings.tsx CHANGED
@@ -98,7 +98,7 @@ export const ProjectSettings = ({
98
  <span className="text-3xl">{project?.cardData?.emoji}</span>
99
  ) : (
100
  <Image
101
- src="/deepsite/logo.svg"
102
  alt="DeepSite"
103
  width={100}
104
  height={100}
 
98
  <span className="text-3xl">{project?.cardData?.emoji}</span>
99
  ) : (
100
  <Image
101
+ src="/logo.svg"
102
  alt="DeepSite"
103
  width={100}
104
  height={100}
components/not-authorized.tsx CHANGED
@@ -19,7 +19,7 @@ export const NotAuthorizedDomain = () => {
19
  host === "huggingface.co" ||
20
  host === "hf.co" ||
21
  host === "enzostvs-deepsite.hf.space" ||
22
- host === "huggingface.co/deepsite"
23
  );
24
  };
25
 
@@ -104,7 +104,7 @@ export const NotAuthorizedDomain = () => {
104
  <DialogTitle className="hidden" />
105
  <div className="max-w-md mx-auto text-center px-6 py-12">
106
  <Image
107
- src="/deepsite/logo.svg"
108
  alt="DeepSite"
109
  width={48}
110
  height={48}
@@ -122,7 +122,7 @@ export const NotAuthorizedDomain = () => {
122
  .
123
  </p>
124
 
125
- <Link href="https://huggingface.co/deepsite" target="_blank">
126
  <Button size="lg" className="text-base!">
127
  Go to DeepSite
128
  </Button>
 
19
  host === "huggingface.co" ||
20
  host === "hf.co" ||
21
  host === "enzostvs-deepsite.hf.space" ||
22
+ host === "deepsite.hf.co"
23
  );
24
  };
25
 
 
104
  <DialogTitle className="hidden" />
105
  <div className="max-w-md mx-auto text-center px-6 py-12">
106
  <Image
107
+ src="/logo.svg"
108
  alt="DeepSite"
109
  width={48}
110
  height={48}
 
122
  .
123
  </p>
124
 
125
+ <Link href="https://deepsite.hf.co" target="_blank">
126
  <Button size="lg" className="text-base!">
127
  Go to DeepSite
128
  </Button>
components/projects/big-project-card.tsx CHANGED
@@ -33,7 +33,7 @@ export function BigProjectCard({
33
  onOpenDeleteDialog: (id: string) => void;
34
  }) {
35
  return (
36
- <a href={`/deepsite/${project.name}`} className="">
37
  <div className="group/big-card rounded-lg overflow-hidden transition-all border-2 border-background ring-[1px] ring-border relative">
38
  {project.private ? (
39
  <div className="h-40 bg-linear-to-br flex flex-col gap-1 items-center justify-center text-lg from-blue-500 to-purple-500">
 
33
  onOpenDeleteDialog: (id: string) => void;
34
  }) {
35
  return (
36
+ <a href={`/${project.name}`} className="">
37
  <div className="group/big-card rounded-lg overflow-hidden transition-all border-2 border-background ring-[1px] ring-border relative">
38
  {project.private ? (
39
  <div className="h-40 bg-linear-to-br flex flex-col gap-1 items-center justify-center text-lg from-blue-500 to-purple-500">
components/projects/project-card.tsx CHANGED
@@ -11,7 +11,7 @@ import { SpaceEntry } from "@huggingface/hub";
11
 
12
  export function ProjectCard({ project }: { project: SpaceEntry }) {
13
  return (
14
- <a href={`/deepsite/${project.name}`}>
15
  <div className="flex items-center justify-start gap-3 border-2 border-background ring-[1px] ring-border rounded-lg overflow-hidden transition-all hover:bg-accent">
16
  <div
17
  className={`size-10 bg-linear-to-br flex items-center justify-center text-lg from-${
 
11
 
12
  export function ProjectCard({ project }: { project: SpaceEntry }) {
13
  return (
14
+ <a href={`/${project.name}`}>
15
  <div className="flex items-center justify-start gap-3 border-2 border-background ring-[1px] ring-border rounded-lg overflow-hidden transition-all hover:bg-accent">
16
  <div
17
  className={`size-10 bg-linear-to-br flex items-center justify-center text-lg from-${
components/providers/session.tsx CHANGED
@@ -4,6 +4,6 @@ import { SessionProvider } from "next-auth/react";
4
 
5
  export function AuthProvider({ children }: { children: React.ReactNode }) {
6
  return (
7
- <SessionProvider basePath="/deepsite/api/auth">{children}</SessionProvider>
8
  );
9
  }
 
4
 
5
  export function AuthProvider({ children }: { children: React.ReactNode }) {
6
  return (
7
+ <SessionProvider>{children}</SessionProvider>
8
  );
9
  }
components/public/bento.tsx CHANGED
@@ -1,137 +1,162 @@
 
 
1
  export const Bento = () => {
2
  return (
3
  <section id="features" className="min-h-screen py-20 px-6 relative">
4
- <header className="text-center mb-16">
5
- <div className="w-fit mb-2 text-[11px] mx-auto uppercase text-muted-foreground/70 font-semibold tracking-widest">
 
6
  Powerful Features 🚀
7
  </div>
8
- <h2 className="mb-3 text-balance text-3xl font-bold tracking-tight lg:text-5xl">
9
  Everything you need
10
  </h2>
11
- <p className="text-muted-foreground mx-auto max-w-2xl md:text-lg lg:text-xl text-balance">
12
  Build, deploy, and scale your websites with cutting-edge features
13
  </p>
14
  </header>
15
 
 
16
  <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 max-w-7xl mx-auto">
17
- <div className="max-md:col-span-1 max-lg:col-span-2 lg:row-span-2 relative p-8 rounded-2xl border border-border/80 shadow-2xs bg-linear-to-b from-background to-background/50 bg-card overflow-hidden group hover:border-border/20 transition-all duration-300">
 
18
  <div className="relative z-10">
19
- <div className="text-3xl lg:text-4xl mb-4">📄</div>
20
- <h3 className="text-2xl lg:text-3xl font-bold text-primary mb-3">
 
 
21
  Multi Pages
22
  </h3>
23
- <p className="text-muted-foreground lg:text-lg mb-6">
24
  Create complex websites with multiple interconnected pages. Build
25
  everything from simple landing pages to full-featured web
26
  applications with dynamic routing and navigation.
27
  </p>
28
  <div className="flex flex-wrap gap-2">
29
- <span className="px-3 py-1 bg-purple-500/20 text-purple-300 rounded-full text-sm">
30
  Dynamic Routing
31
  </span>
32
- <span className="px-3 py-1 bg-blue-500/20 text-blue-300 rounded-full text-sm">
33
  Navigation
34
  </span>
35
- <span className="px-3 py-1 bg-green-500/20 text-green-300 rounded-full text-sm">
36
  SEO Ready
37
  </span>
38
  </div>
39
  </div>
40
- {/* <div className="absolute -top-20 -right-20 w-40 h-40 bg-linear-to-r from-purple-500 to-pink-500 opacity-20 blur-3xl rounded-full transition-all duration-700 ease-out group-hover:scale-[4] group-hover:opacity-30" /> */}
41
  </div>
42
 
43
- <div className="relative p-8 rounded-2xl border border-border/80 shadow-2xs bg-linear-to-b from-background to-background/50 bg-card overflow-hidden group hover:border-border/20 transition-all duration-300">
 
44
  <div className="relative z-10">
45
- <div className="text-3xl mb-4">⚡</div>
46
- <h3 className="text-xl lg:text-2xl font-bold text-primary mb-3">
 
 
47
  Auto Deploy
48
  </h3>
49
- <p className="text-muted-foreground mb-4">
50
  Push your changes and watch them go live instantly. No complex
51
  CI/CD setup required.
52
  </p>
53
  </div>
54
- {/* <div className="absolute -bottom-10 -right-10 w-32 h-32 bg-linear-to-r from-yellow-500 to-orange-500 opacity-20 blur-2xl rounded-full transition-all duration-700 ease-out group-hover:scale-[5] group-hover:opacity-35" /> */}
55
  </div>
56
 
57
- <div className="relative p-8 rounded-2xl border border-border/80 shadow-2xs bg-linear-to-b from-background to-background/50 bg-card overflow-hidden group hover:border-border/20 transition-all duration-300">
 
58
  <div className="relative z-10">
59
- <div className="text-3xl mb-4">🌐</div>
60
- <h3 className="text-xl lg:text-2xl font-bold text-primary mb-3">
 
 
61
  Free Hosting
62
  </h3>
63
- <p className="text-muted-foreground mb-4">
64
  Host your websites for free with global CDN and lightning-fast
65
  performance.
66
  </p>
67
  </div>
68
- {/* <div className="absolute -top-10 -left-10 w-32 h-32 bg-linear-to-r from-green-500 to-emerald-500 opacity-20 blur-2xl rounded-full transition-all duration-700 ease-out group-hover:scale-[5] group-hover:opacity-35" /> */}
69
  </div>
70
 
71
- <div className="lg:col-span-2 relative p-8 rounded-2xl border border-border/80 shadow-2xs bg-linear-to-b from-background to-background/50 bg-card overflow-hidden group hover:border-border/20 transition-all duration-300">
 
72
  <div className="relative z-10">
73
- <div className="text-3xl mb-4">🔓</div>
74
- <h3 className="text-xl lg:text-2xl font-bold text-primary mb-3">
 
 
75
  Open Source Models
76
  </h3>
77
- <p className="text-muted-foreground mb-4">
78
  Powered by cutting-edge open source AI models. Transparent,
79
  customizable, and community-driven development.
80
  </p>
81
  <div className="flex flex-wrap gap-2">
82
- <span className="px-3 py-1 bg-cyan-500/20 text-cyan-300 rounded-full text-sm">
83
  DeepSeek
84
  </span>
85
- <span className="px-3 py-1 bg-indigo-500/20 text-indigo-300 rounded-full text-sm">
86
  MiniMax
87
  </span>
88
- <span className="px-3 py-1 bg-pink-500/20 text-pink-300 rounded-full text-sm">
89
  Kimi
90
  </span>
91
  </div>
92
  </div>
93
- {/* <div className="absolute -bottom-10 right-10 w-32 h-32 bg-linear-to-r from-cyan-500 to-indigo-500 opacity-20 blur-2xl rounded-full transition-all duration-700 ease-out group-hover:scale-[5] group-hover:opacity-35" /> */}
94
  </div>
95
 
96
- <div className="relative p-8 rounded-2xl border border-border/80 shadow-2xs bg-linear-to-b from-background to-background/50 bg-card overflow-hidden group hover:border-border/20 transition-all duration-300">
 
97
  <div className="relative z-10">
98
- <div className="text-3xl mb-4">✨</div>
99
- <h3 className="text-xl lg:text-2xl font-bold text-primary mb-3">
 
 
100
  Perfect UX
101
  </h3>
102
- <p className="text-muted-foreground mb-4">
103
  Intuitive interface designed for developers and non-developers
104
  alike.
105
  </p>
106
  </div>
107
- {/* <div className="absolute -top-10 -right-10 w-32 h-32 bg-linear-to-r from-rose-500 to-pink-500 opacity-20 blur-2xl rounded-full transition-all duration-700 ease-out group-hover:scale-[5] group-hover:opacity-35" /> */}
108
  </div>
109
 
110
- <div className="relative p-8 rounded-2xl border border-border/80 shadow-2xs bg-linear-to-b from-background to-background/50 bg-card overflow-hidden group hover:border-border/20 transition-all duration-300">
 
111
  <div className="relative z-10">
112
- <div className="text-3xl mb-4">🤗</div>
113
- <h3 className="text-xl lg:text-2xl font-bold text-primary mb-3">
 
 
114
  Hugging Face
115
  </h3>
116
- <p className="text-muted-foreground mb-4">
117
  Seamless integration with Hugging Face models and datasets for
118
  cutting-edge AI capabilities.
119
  </p>
120
  </div>
121
- {/* <div className="absolute -top-10 -right-10 w-32 h-32 bg-linear-to-r from-yellow-500 to-amber-500 opacity-20 blur-2xl rounded-full transition-all duration-700 ease-out group-hover:scale-[5] group-hover:opacity-35" /> */}
122
  </div>
123
 
124
- <div className="relative p-8 rounded-2xl border border-border/80 shadow-2xs bg-linear-to-b from-background to-background/50 bg-card overflow-hidden group hover:border-border/20 transition-all duration-300">
 
125
  <div className="relative z-10">
126
- <div className="text-3xl mb-4">🚀</div>
127
- <h3 className="text-xl lg:text-2xl font-bold text-primary mb-3">
 
 
128
  Blazing Fast
129
  </h3>
130
- <p className="text-muted-foreground mb-4">
131
  Optimized performance with edge computing and smart caching.
132
  </p>
133
  </div>
134
- {/* <div className="absolute -bottom-10 -right-10 w-32 h-32 bg-linear-to-r from-blue-500 to-cyan-500 opacity-20 blur-2xl rounded-full transition-all duration-700 ease-out group-hover:scale-[5] group-hover:opacity-35" /> */}
135
  </div>
136
  </div>
137
  </section>
 
1
+ "use client";
2
+
3
  export const Bento = () => {
4
  return (
5
  <section id="features" className="min-h-screen py-20 px-6 relative">
6
+ {/* Header with fade-in animation */}
7
+ <header className="text-center mb-16 animate-in fade-in duration-700">
8
+ <div className="w-fit mb-2 text-[11px] mx-auto uppercase text-muted-foreground/70 font-semibold tracking-widest animate-in fade-in slide-in-from-top-2 duration-500">
9
  Powerful Features 🚀
10
  </div>
11
+ <h2 className="mb-3 text-balance text-3xl font-bold tracking-tight lg:text-5xl animate-in fade-in slide-in-from-top-3 duration-700 delay-100">
12
  Everything you need
13
  </h2>
14
+ <p className="text-muted-foreground mx-auto max-w-2xl md:text-lg lg:text-xl text-balance animate-in fade-in slide-in-from-top-4 duration-700 delay-200">
15
  Build, deploy, and scale your websites with cutting-edge features
16
  </p>
17
  </header>
18
 
19
+ {/* Grid with staggered card animations */}
20
  <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 max-w-7xl mx-auto">
21
+ {/* Multi Pages - Large Card */}
22
+ <div className="max-md:col-span-1 max-lg:col-span-2 lg:row-span-2 relative p-8 rounded-2xl border border-border/80 shadow-2xs bg-linear-to-b from-background to-background/50 bg-card overflow-hidden group hover:border-primary/30 hover:shadow-lg hover:-translate-y-1 transition-all duration-500 animate-in fade-in slide-in-from-bottom-4 delay-100">
23
  <div className="relative z-10">
24
+ <div className="text-3xl lg:text-4xl mb-4 inline-block transition-transform duration-300 group-hover:scale-110 group-hover:rotate-3">
25
+ 📄
26
+ </div>
27
+ <h3 className="text-2xl lg:text-3xl font-bold text-primary mb-3 transition-colors duration-300">
28
  Multi Pages
29
  </h3>
30
+ <p className="text-muted-foreground lg:text-lg mb-6 transition-colors duration-300 group-hover:text-foreground/90">
31
  Create complex websites with multiple interconnected pages. Build
32
  everything from simple landing pages to full-featured web
33
  applications with dynamic routing and navigation.
34
  </p>
35
  <div className="flex flex-wrap gap-2">
36
+ <span className="px-3 py-1.5 bg-purple-500/30 text-purple-200 border border-purple-400/40 rounded-md text-xs font-medium shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1)] transition-all duration-200 hover:bg-purple-500/40 hover:border-purple-400/60 hover:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.15),0_2px_4px_rgba(0,0,0,0.2)] hover:-translate-y-0.5 active:translate-y-0 active:shadow-[inset_0_2px_4px_rgba(0,0,0,0.2)]">
37
  Dynamic Routing
38
  </span>
39
+ <span className="px-3 py-1.5 bg-blue-500/30 text-blue-200 border border-blue-400/40 rounded-md text-xs font-medium shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1)] transition-all duration-200 hover:bg-blue-500/40 hover:border-blue-400/60 hover:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.15),0_2px_4px_rgba(0,0,0,0.2)] hover:-translate-y-0.5 active:translate-y-0 active:shadow-[inset_0_2px_4px_rgba(0,0,0,0.2)]">
40
  Navigation
41
  </span>
42
+ <span className="px-3 py-1.5 bg-green-500/30 text-green-200 border border-green-400/40 rounded-md text-xs font-medium shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1)] transition-all duration-200 hover:bg-green-500/40 hover:border-green-400/60 hover:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.15),0_2px_4px_rgba(0,0,0,0.2)] hover:-translate-y-0.5 active:translate-y-0 active:shadow-[inset_0_2px_4px_rgba(0,0,0,0.2)]">
43
  SEO Ready
44
  </span>
45
  </div>
46
  </div>
47
+ <div className="absolute -top-20 -right-20 w-40 h-40 bg-linear-to-r from-purple-500 to-pink-500 opacity-10 blur-3xl rounded-full transition-all duration-700 ease-out group-hover:scale-150 group-hover:opacity-20" />
48
  </div>
49
 
50
+ {/* Auto Deploy */}
51
+ <div className="relative p-8 rounded-2xl border border-border/80 shadow-2xs bg-linear-to-b from-background to-background/50 bg-card overflow-hidden group hover:border-primary/30 hover:shadow-lg hover:-translate-y-1 transition-all duration-500 animate-in fade-in slide-in-from-bottom-4 delay-200">
52
  <div className="relative z-10">
53
+ <div className="text-3xl mb-4 inline-block transition-transform duration-300 group-hover:scale-110 group-hover:rotate-12">
54
+
55
+ </div>
56
+ <h3 className="text-xl lg:text-2xl font-bold text-primary mb-3 transition-colors duration-300">
57
  Auto Deploy
58
  </h3>
59
+ <p className="text-muted-foreground mb-4 transition-colors duration-300 group-hover:text-foreground/90">
60
  Push your changes and watch them go live instantly. No complex
61
  CI/CD setup required.
62
  </p>
63
  </div>
64
+ <div className="absolute -bottom-10 -right-10 w-32 h-32 bg-linear-to-r from-yellow-500 to-orange-500 opacity-10 blur-2xl rounded-full transition-all duration-700 ease-out group-hover:scale-150 group-hover:opacity-20" />
65
  </div>
66
 
67
+ {/* Free Hosting */}
68
+ <div className="relative p-8 rounded-2xl border border-border/80 shadow-2xs bg-linear-to-b from-background to-background/50 bg-card overflow-hidden group hover:border-primary/30 hover:shadow-lg hover:-translate-y-1 transition-all duration-500 animate-in fade-in slide-in-from-bottom-4 delay-300">
69
  <div className="relative z-10">
70
+ <div className="text-3xl mb-4 inline-block transition-transform duration-300 group-hover:scale-110 group-hover:rotate-12">
71
+ 🌐
72
+ </div>
73
+ <h3 className="text-xl lg:text-2xl font-bold text-primary mb-3 transition-colors duration-300">
74
  Free Hosting
75
  </h3>
76
+ <p className="text-muted-foreground mb-4 transition-colors duration-300 group-hover:text-foreground/90">
77
  Host your websites for free with global CDN and lightning-fast
78
  performance.
79
  </p>
80
  </div>
81
+ <div className="absolute -top-10 -left-10 w-32 h-32 bg-linear-to-r from-green-500 to-emerald-500 opacity-10 blur-2xl rounded-full transition-all duration-700 ease-out group-hover:scale-150 group-hover:opacity-20" />
82
  </div>
83
 
84
+ {/* Open Source Models */}
85
+ <div className="lg:col-span-2 relative p-8 rounded-2xl border border-border/80 shadow-2xs bg-linear-to-b from-background to-background/50 bg-card overflow-hidden group hover:border-primary/30 hover:shadow-lg hover:-translate-y-1 transition-all duration-500 animate-in fade-in slide-in-from-bottom-4 delay-400">
86
  <div className="relative z-10">
87
+ <div className="text-3xl mb-4 inline-block transition-transform duration-300 group-hover:scale-110 group-hover:-rotate-12">
88
+ 🔓
89
+ </div>
90
+ <h3 className="text-xl lg:text-2xl font-bold text-primary mb-3 transition-colors duration-300">
91
  Open Source Models
92
  </h3>
93
+ <p className="text-muted-foreground mb-4 transition-colors duration-300 group-hover:text-foreground/90">
94
  Powered by cutting-edge open source AI models. Transparent,
95
  customizable, and community-driven development.
96
  </p>
97
  <div className="flex flex-wrap gap-2">
98
+ <span className="px-3 py-1.5 bg-cyan-500/30 text-cyan-200 border border-cyan-400/40 rounded-md text-xs font-medium shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1)] transition-all duration-200 hover:bg-cyan-500/40 hover:border-cyan-400/60 hover:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.15),0_2px_4px_rgba(0,0,0,0.2)] hover:-translate-y-0.5 active:translate-y-0 active:shadow-[inset_0_2px_4px_rgba(0,0,0,0.2)]">
99
  DeepSeek
100
  </span>
101
+ <span className="px-3 py-1.5 bg-indigo-500/30 text-indigo-200 border border-indigo-400/40 rounded-md text-xs font-medium shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1)] transition-all duration-200 hover:bg-indigo-500/40 hover:border-indigo-400/60 hover:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.15),0_2px_4px_rgba(0,0,0,0.2)] hover:-translate-y-0.5 active:translate-y-0 active:shadow-[inset_0_2px_4px_rgba(0,0,0,0.2)]">
102
  MiniMax
103
  </span>
104
+ <span className="px-3 py-1.5 bg-pink-500/30 text-pink-200 border border-pink-400/40 rounded-md text-xs font-medium shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1)] transition-all duration-200 hover:bg-pink-500/40 hover:border-pink-400/60 hover:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.15),0_2px_4px_rgba(0,0,0,0.2)] hover:-translate-y-0.5 active:translate-y-0 active:shadow-[inset_0_2px_4px_rgba(0,0,0,0.2)]">
105
  Kimi
106
  </span>
107
  </div>
108
  </div>
109
+ <div className="absolute -bottom-10 right-10 w-32 h-32 bg-linear-to-r from-cyan-500 to-indigo-500 opacity-10 blur-2xl rounded-full transition-all duration-700 ease-out group-hover:scale-150 group-hover:opacity-20" />
110
  </div>
111
 
112
+ {/* Perfect UX */}
113
+ <div className="relative p-8 rounded-2xl border border-border/80 shadow-2xs bg-linear-to-b from-background to-background/50 bg-card overflow-hidden group hover:border-primary/30 hover:shadow-lg hover:-translate-y-1 transition-all duration-500 animate-in fade-in slide-in-from-bottom-4 delay-500">
114
  <div className="relative z-10">
115
+ <div className="text-3xl mb-4 inline-block transition-transform duration-300 group-hover:scale-110 group-hover:rotate-12">
116
+
117
+ </div>
118
+ <h3 className="text-xl lg:text-2xl font-bold text-primary mb-3 transition-colors duration-300">
119
  Perfect UX
120
  </h3>
121
+ <p className="text-muted-foreground mb-4 transition-colors duration-300 group-hover:text-foreground/90">
122
  Intuitive interface designed for developers and non-developers
123
  alike.
124
  </p>
125
  </div>
126
+ <div className="absolute -top-10 -right-10 w-32 h-32 bg-linear-to-r from-rose-500 to-pink-500 opacity-10 blur-2xl rounded-full transition-all duration-700 ease-out group-hover:scale-150 group-hover:opacity-20" />
127
  </div>
128
 
129
+ {/* Hugging Face */}
130
+ <div className="relative p-8 rounded-2xl border border-border/80 shadow-2xs bg-linear-to-b from-background to-background/50 bg-card overflow-hidden group hover:border-primary/30 hover:shadow-lg hover:-translate-y-1 transition-all duration-500 animate-in fade-in slide-in-from-bottom-4 delay-[600ms]">
131
  <div className="relative z-10">
132
+ <div className="text-3xl mb-4 inline-block transition-transform duration-300 group-hover:scale-110 group-hover:rotate-12">
133
+ 🤗
134
+ </div>
135
+ <h3 className="text-xl lg:text-2xl font-bold text-primary mb-3 transition-colors duration-300">
136
  Hugging Face
137
  </h3>
138
+ <p className="text-muted-foreground mb-4 transition-colors duration-300 group-hover:text-foreground/90">
139
  Seamless integration with Hugging Face models and datasets for
140
  cutting-edge AI capabilities.
141
  </p>
142
  </div>
143
+ <div className="absolute -top-10 -right-10 w-32 h-32 bg-linear-to-r from-yellow-500 to-amber-500 opacity-10 blur-2xl rounded-full transition-all duration-700 ease-out group-hover:scale-150 group-hover:opacity-20" />
144
  </div>
145
 
146
+ {/* Blazing Fast */}
147
+ <div className="relative p-8 rounded-2xl border border-border/80 shadow-2xs bg-linear-to-b from-background to-background/50 bg-card overflow-hidden group hover:border-primary/30 hover:shadow-lg hover:-translate-y-1 transition-all duration-500 animate-in fade-in slide-in-from-bottom-4 delay-700">
148
  <div className="relative z-10">
149
+ <div className="text-3xl mb-4 inline-block transition-transform duration-300 group-hover:scale-110 group-hover:-rotate-12">
150
+ 🚀
151
+ </div>
152
+ <h3 className="text-xl lg:text-2xl font-bold text-primary mb-3 transition-colors duration-300">
153
  Blazing Fast
154
  </h3>
155
+ <p className="text-muted-foreground mb-4 transition-colors duration-300 group-hover:text-foreground/90">
156
  Optimized performance with edge computing and smart caching.
157
  </p>
158
  </div>
159
+ <div className="absolute -bottom-10 -right-10 w-32 h-32 bg-linear-to-r from-blue-500 to-cyan-500 opacity-10 blur-2xl rounded-full transition-all duration-700 ease-out group-hover:scale-150 group-hover:opacity-20" />
160
  </div>
161
  </div>
162
  </section>
components/public/navigation.tsx CHANGED
@@ -10,7 +10,7 @@ export function Navigation() {
10
  <div className="flex items-center justify-start gap-4">
11
  <Link href="/" className="flex items-center gap-2">
12
  <Image
13
- src="/deepsite/logo.svg"
14
  alt="DeepSite"
15
  width={100}
16
  height={100}
 
10
  <div className="flex items-center justify-start gap-4">
11
  <Link href="/" className="flex items-center gap-2">
12
  <Image
13
+ src="/logo.svg"
14
  alt="DeepSite"
15
  width={100}
16
  height={100}
components/user-menu/index.tsx CHANGED
@@ -42,7 +42,7 @@ export function UserMenu() {
42
  newUrl.searchParams.delete("signin");
43
  window.history.replaceState({}, "", newUrl.toString());
44
 
45
- signIn("huggingface", { callbackUrl: "/deepsite" });
46
  }
47
  }
48
  }, [session, status]);
@@ -50,7 +50,7 @@ export function UserMenu() {
50
  const handleSignIn = () => {
51
  if (window.location.hostname === "localhost") {
52
  signIn("huggingface", {
53
- callbackUrl: "/deepsite",
54
  });
55
  return;
56
  }
@@ -78,12 +78,12 @@ export function UserMenu() {
78
  if (!isOnTargetPage) {
79
  window.open(`${targetUrl}?signin=true`, "_blank");
80
  } else {
81
- signIn("huggingface", { callbackUrl: "/deepsite" });
82
  }
83
  };
84
 
85
  const handleSignOut = () => {
86
- signOut({ callbackUrl: "/deepsite" });
87
  };
88
 
89
  if (isLoading) {
 
42
  newUrl.searchParams.delete("signin");
43
  window.history.replaceState({}, "", newUrl.toString());
44
 
45
+ signIn("huggingface", { callbackUrl: "/" });
46
  }
47
  }
48
  }, [session, status]);
 
50
  const handleSignIn = () => {
51
  if (window.location.hostname === "localhost") {
52
  signIn("huggingface", {
53
+ callbackUrl: "/",
54
  });
55
  return;
56
  }
 
78
  if (!isOnTargetPage) {
79
  window.open(`${targetUrl}?signin=true`, "_blank");
80
  } else {
81
+ signIn("huggingface", { callbackUrl: "/" });
82
  }
83
  };
84
 
85
  const handleSignOut = () => {
86
+ signOut({ callbackUrl: "/" });
87
  };
88
 
89
  if (isLoading) {
components/viewer/blank-page.tsx CHANGED
@@ -24,7 +24,7 @@ export function BlankPage() {
24
  <div className="bg-card max-w-lg w-full px-10 py-6 z-1 rounded-xl shadow-accent-foreground mx-auto">
25
  <header className="flex flex-col items-center justify-center">
26
  <Image
27
- src="/deepsite/logo.svg"
28
  alt="DeepSite"
29
  width={56}
30
  height={56}
 
24
  <div className="bg-card max-w-lg w-full px-10 py-6 z-1 rounded-xl shadow-accent-foreground mx-auto">
25
  <header className="flex flex-col items-center justify-center">
26
  <Image
27
+ src="/logo.svg"
28
  alt="DeepSite"
29
  width={56}
30
  height={56}
lib/auth.ts CHANGED
@@ -62,7 +62,7 @@ export const authOptions: NextAuthOptions = {
62
  },
63
  },
64
  pages: {
65
- signIn: "/deepsite/signin",
66
  },
67
  secret: process.env.NEXTAUTH_SECRET,
68
  };
 
62
  },
63
  },
64
  pages: {
65
+ signIn: "/signin",
66
  },
67
  secret: process.env.NEXTAUTH_SECRET,
68
  };
lib/seo.ts CHANGED
@@ -18,7 +18,7 @@ export function generateSEO({
18
  noIndex = false,
19
  canonical,
20
  }: SEOParams = {}): Metadata {
21
- const baseUrl = "https://huggingface.co/deepsite";
22
  const fullUrl = `${baseUrl}${path}`;
23
  const canonicalUrl = canonical || fullUrl;
24
 
@@ -98,7 +98,7 @@ export function generateStructuredData(
98
  ...baseStructuredData,
99
  name: "DeepSite",
100
  description: "Build websites with AI, no code required",
101
- url: "https://huggingface.co/deepsite",
102
  applicationCategory: "DeveloperApplication",
103
  operatingSystem: "Web",
104
  offers: {
@@ -109,7 +109,7 @@ export function generateStructuredData(
109
  creator: {
110
  "@type": "Organization",
111
  name: "DeepSite",
112
- url: "https://huggingface.co/deepsite",
113
  },
114
  ...data,
115
  };
@@ -118,8 +118,8 @@ export function generateStructuredData(
118
  return {
119
  ...baseStructuredData,
120
  name: "DeepSite",
121
- url: "https://huggingface.co/deepsite",
122
- logo: "https://huggingface.co/deepsite/logo.svg",
123
  description: "AI-powered web development platform",
124
  sameAs: [
125
  // Add social media links here if available
 
18
  noIndex = false,
19
  canonical,
20
  }: SEOParams = {}): Metadata {
21
+ const baseUrl = "https://deepsite.hf.co";
22
  const fullUrl = `${baseUrl}${path}`;
23
  const canonicalUrl = canonical || fullUrl;
24
 
 
98
  ...baseStructuredData,
99
  name: "DeepSite",
100
  description: "Build websites with AI, no code required",
101
+ url: "https://deepsite.hf.co",
102
  applicationCategory: "DeveloperApplication",
103
  operatingSystem: "Web",
104
  offers: {
 
109
  creator: {
110
  "@type": "Organization",
111
  name: "DeepSite",
112
+ url: "https://deepsite.hf.co",
113
  },
114
  ...data,
115
  };
 
118
  return {
119
  ...baseStructuredData,
120
  name: "DeepSite",
121
+ url: "https://deepsite.hf.co",
122
+ logo: "https://deepsite.hf.co/logo.svg",
123
  description: "AI-powered web development platform",
124
  sameAs: [
125
  // Add social media links here if available
lib/utils.ts CHANGED
@@ -118,7 +118,7 @@ export const defaultHTML = `<!DOCTYPE html>
118
  Ask me anything.
119
  </h1>
120
  </div>
121
- <img src="https://huggingface.co/deepsite/arrow.svg" class="absolute bottom-8 left-0 w-[100px] transform rotate-30 dark:invert dark:brightness-0" />
122
  <script></script>
123
  </body>
124
  </html>
@@ -126,7 +126,7 @@ export const defaultHTML = `<!DOCTYPE html>
126
 
127
  export function injectDeepSiteBadge(html: string): string {
128
  const badgeScript =
129
- '<script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>';
130
 
131
  // Remove any existing badge script to avoid duplicates
132
  const cleanedHtml = html.replace(
 
118
  Ask me anything.
119
  </h1>
120
  </div>
121
+ <img src="https://deepsite.hf.co/arrow.svg" class="absolute bottom-8 left-0 w-[100px] transform rotate-30 dark:invert dark:brightness-0" />
122
  <script></script>
123
  </body>
124
  </html>
 
126
 
127
  export function injectDeepSiteBadge(html: string): string {
128
  const badgeScript =
129
+ '<script src="https://deepsite.hf.co/deepsite-badge.js"></script>';
130
 
131
  // Remove any existing badge script to avoid duplicates
132
  const cleanedHtml = html.replace(
next.config.ts CHANGED
@@ -1,18 +1,6 @@
1
  import type { NextConfig } from "next";
2
 
3
  const nextConfig: NextConfig = {
4
- basePath: "/deepsite",
5
- assetPrefix: "/deepsite",
6
- async redirects() {
7
- return [
8
- {
9
- source: "/",
10
- destination: "/deepsite",
11
- permanent: true,
12
- basePath: false,
13
- },
14
- ];
15
- },
16
  experimental: {
17
  globalNotFound: true,
18
  },
 
1
  import type { NextConfig } from "next";
2
 
3
  const nextConfig: NextConfig = {
 
 
 
 
 
 
 
 
 
 
 
 
4
  experimental: {
5
  globalNotFound: true,
6
  },
public/deepsite-badge.js CHANGED
@@ -9,7 +9,7 @@
9
  // Don't show badge on huggingface.co/deepsite
10
  const hostname = window.location.hostname;
11
  const pathname = window.location.pathname;
12
- if (hostname === "huggingface.co" && pathname.startsWith("/deepsite")) {
13
  return;
14
  }
15
 
@@ -80,12 +80,12 @@
80
 
81
  // Create link
82
  const link = document.createElement("a");
83
- link.href = "https://huggingface.co/deepsite";
84
  link.target = "_blank";
85
  link.rel = "noopener noreferrer";
86
 
87
  const icon = document.createElement("img");
88
- icon.src = "https://huggingface.co/deepsite/logo.svg";
89
  icon.alt = "DeepSite";
90
  icon.style.marginRight = "6px";
91
  icon.style.width = "16px";
 
9
  // Don't show badge on huggingface.co/deepsite
10
  const hostname = window.location.hostname;
11
  const pathname = window.location.pathname;
12
+ if (hostname === "deepsite.hf.co" && pathname.startsWith("/")) {
13
  return;
14
  }
15
 
 
80
 
81
  // Create link
82
  const link = document.createElement("a");
83
+ link.href = "https://deepsite.hf.co";
84
  link.target = "_blank";
85
  link.rel = "noopener noreferrer";
86
 
87
  const icon = document.createElement("img");
88
+ icon.src = "https://deepsite.hf.co/logo.svg";
89
  icon.alt = "DeepSite";
90
  icon.style.marginRight = "6px";
91
  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://huggingface.co/deepsite/sitemap.xml
15
 
16
  # Crawl-delay for respectful crawling
17
  Crawl-delay: 1
 
11
  Allow: /api/public/
12
 
13
  # Sitemap location
14
+ Sitemap: https://deepsite.hf.co/sitemap.xml
15
 
16
  # Crawl-delay for respectful crawling
17
  Crawl-delay: 1