diff --git a/frontend/public/anthony.jpg b/frontend/public/anthony.jpg new file mode 100644 index 00000000..428c7842 Binary files /dev/null and b/frontend/public/anthony.jpg differ diff --git a/frontend/public/google-cloud-for-startups.png b/frontend/public/google-cloud-for-startups.png new file mode 100644 index 00000000..d8c0eca3 Binary files /dev/null and b/frontend/public/google-cloud-for-startups.png differ diff --git a/frontend/public/maple-autumn-forest.jpg b/frontend/public/maple-autumn-forest.jpg new file mode 100644 index 00000000..232dcce9 Binary files /dev/null and b/frontend/public/maple-autumn-forest.jpg differ diff --git a/frontend/public/mark.jpg b/frontend/public/mark.jpg new file mode 100644 index 00000000..b68765a7 Binary files /dev/null and b/frontend/public/mark.jpg differ diff --git a/frontend/public/nvidia-inception.png b/frontend/public/nvidia-inception.png new file mode 100644 index 00000000..a82aa746 Binary files /dev/null and b/frontend/public/nvidia-inception.png differ diff --git a/frontend/public/opensecret-logo.png b/frontend/public/opensecret-logo.png new file mode 100644 index 00000000..d369e52c Binary files /dev/null and b/frontend/public/opensecret-logo.png differ diff --git a/frontend/src/components/Footer.tsx b/frontend/src/components/Footer.tsx index f8820037..656a67e2 100644 --- a/frontend/src/components/Footer.tsx +++ b/frontend/src/components/Footer.tsx @@ -105,6 +105,12 @@ export function Footer() { > Community + + About +
diff --git a/frontend/src/components/icons/LinkedIn.tsx b/frontend/src/components/icons/LinkedIn.tsx new file mode 100644 index 00000000..3f735839 --- /dev/null +++ b/frontend/src/components/icons/LinkedIn.tsx @@ -0,0 +1,19 @@ +import * as React from "react"; + +export function LinkedIn(props: React.SVGProps) { + // Official LinkedIn [in] logo SVG, white fill, scalable + return ( + + ); +} \ No newline at end of file diff --git a/frontend/src/components/icons/X.tsx b/frontend/src/components/icons/X.tsx new file mode 100644 index 00000000..0ca2459e --- /dev/null +++ b/frontend/src/components/icons/X.tsx @@ -0,0 +1,20 @@ +import * as React from "react"; + +export function X(props: React.SVGProps) { + // Official X (Twitter) logo SVG, scaled to 24x24 viewBox for consistent sizing + return ( + + ); +} \ No newline at end of file diff --git a/frontend/src/routeTree.gen.ts b/frontend/src/routeTree.gen.ts index f2268326..abaa9754 100644 --- a/frontend/src/routeTree.gen.ts +++ b/frontend/src/routeTree.gen.ts @@ -21,6 +21,7 @@ import { Route as PasswordResetImport } from './routes/password-reset' import { Route as LoginImport } from './routes/login' import { Route as DownloadsImport } from './routes/downloads' import { Route as DesktopAuthImport } from './routes/desktop-auth' +import { Route as AboutImport } from './routes/about' import { Route as AuthImport } from './routes/_auth' import { Route as IndexImport } from './routes/index' import { Route as VerifyCodeImport } from './routes/verify.$code' @@ -91,6 +92,12 @@ const DesktopAuthRoute = DesktopAuthImport.update({ getParentRoute: () => rootRoute, } as any) +const AboutRoute = AboutImport.update({ + id: '/about', + path: '/about', + getParentRoute: () => rootRoute, +} as any) + const AuthRoute = AuthImport.update({ id: '/_auth', getParentRoute: () => rootRoute, @@ -150,6 +157,13 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof AuthImport parentRoute: typeof rootRoute } + '/about': { + id: '/about' + path: '/about' + fullPath: '/about' + preLoaderRoute: typeof AboutImport + parentRoute: typeof rootRoute + } '/desktop-auth': { id: '/desktop-auth' path: '/desktop-auth' @@ -285,6 +299,7 @@ const PasswordResetRouteWithChildren = PasswordResetRoute._addFileChildren( export interface FileRoutesByFullPath { '/': typeof IndexRoute '': typeof AuthRouteWithChildren + '/about': typeof AboutRoute '/desktop-auth': typeof DesktopAuthRoute '/downloads': typeof DownloadsRoute '/login': typeof LoginRoute @@ -305,6 +320,7 @@ export interface FileRoutesByFullPath { export interface FileRoutesByTo { '/': typeof IndexRoute '': typeof AuthRouteWithChildren + '/about': typeof AboutRoute '/desktop-auth': typeof DesktopAuthRoute '/downloads': typeof DownloadsRoute '/login': typeof LoginRoute @@ -326,6 +342,7 @@ export interface FileRoutesById { __root__: typeof rootRoute '/': typeof IndexRoute '/_auth': typeof AuthRouteWithChildren + '/about': typeof AboutRoute '/desktop-auth': typeof DesktopAuthRoute '/downloads': typeof DownloadsRoute '/login': typeof LoginRoute @@ -348,6 +365,7 @@ export interface FileRouteTypes { fullPaths: | '/' | '' + | '/about' | '/desktop-auth' | '/downloads' | '/login' @@ -367,6 +385,7 @@ export interface FileRouteTypes { to: | '/' | '' + | '/about' | '/desktop-auth' | '/downloads' | '/login' @@ -386,6 +405,7 @@ export interface FileRouteTypes { | '__root__' | '/' | '/_auth' + | '/about' | '/desktop-auth' | '/downloads' | '/login' @@ -407,6 +427,7 @@ export interface FileRouteTypes { export interface RootRouteChildren { IndexRoute: typeof IndexRoute AuthRoute: typeof AuthRouteWithChildren + AboutRoute: typeof AboutRoute DesktopAuthRoute: typeof DesktopAuthRoute DownloadsRoute: typeof DownloadsRoute LoginRoute: typeof LoginRoute @@ -425,6 +446,7 @@ export interface RootRouteChildren { const rootRouteChildren: RootRouteChildren = { IndexRoute: IndexRoute, AuthRoute: AuthRouteWithChildren, + AboutRoute: AboutRoute, DesktopAuthRoute: DesktopAuthRoute, DownloadsRoute: DownloadsRoute, LoginRoute: LoginRoute, @@ -452,6 +474,7 @@ export const routeTree = rootRoute "children": [ "/", "/_auth", + "/about", "/desktop-auth", "/downloads", "/login", @@ -476,6 +499,9 @@ export const routeTree = rootRoute "/_auth/chat/$chatId" ] }, + "/about": { + "filePath": "about.tsx" + }, "/desktop-auth": { "filePath": "desktop-auth.tsx" }, diff --git a/frontend/src/routes/about.tsx b/frontend/src/routes/about.tsx new file mode 100644 index 00000000..6b2d51e8 --- /dev/null +++ b/frontend/src/routes/about.tsx @@ -0,0 +1,252 @@ +import { createFileRoute } from "@tanstack/react-router"; +import { TopNav } from "@/components/TopNav"; +import { FullPageMain } from "@/components/FullPageMain"; +import { MarketingHeader } from "@/components/MarketingHeader"; +import { X } from "@/components/icons/X"; +import { LinkedIn } from "@/components/icons/LinkedIn"; + +export const Route = createFileRoute("/about")({ + component: About +}); + +function About(): JSX.Element { + return ( + <> + + + + About{" "} + Maple AI + + } + subtitle={ +

+ Incredibly powerful AI that doesn't share your data with anyone +

+ } + /> + +
+ {/* Maple Trees Section */} +
+

Our Inspiration

+
+
+ Maple autumn forest + + Autumn Woods
by William Trost Richards +
+ Maple App Icon +
+
+

+ Maple trees form underground networks of root systems, + communicating and sharing resources without the knowledge of animals above. + This cooperative approach helps them thrive in challenging environments. +

+

+ Maple AI draws inspiration from this natural model of secure, decentralized intelligence. + Each account uses a personal encryption key, giving you control over the data. + Whether you are handling sensitive information on behalf of clients or your own personal thoughts, + communication stays between you and the AI. No data is used for training models nor shared with third parties, + not even us. +

+

+ People shouldn't have to sacrifice their privacy for high-quality AI. + Maple upholds the highest standards of privacy and confidentiality, + preserving the fundamental human right to freedom of thought. + With confidence in AI, you can work together to thrive in your own challenging environments. +

+ Maple App Icon +
+
+
+ + {/* Founders Section */} +
+

Founders

+

+ Our team has combined over 30 years experience building scalable cloud and local app solutions + that take privacy and security seriously. We have successfully built in the fields of data storage, + defense, fintech, education, security, therapy, computer vision, and consumer technology. +

+
+ {/* Founder 1 */} +
+ + Mark, Co-founder of Maple AI + +
+

Mark Suman

+

CEO

+

+ Early employee in Product and Engineering at multiple startups, including Instructure Canvas. Most recently, 6 years in + software engineering at Apple with a focus on AI and Privacy. + + + + + + + + +

+
+
+ + {/* Founder 2 */} +
+ + Anthony, Co-founder of Maple AI + +
+

Anthony Ronning

+

CTO

+

+ Infrastructure engineer in many startups over the last 9 years. Previous + experience in defense, security, networking, and bitcoin companies. + + + + + +

+
+
+
+
+ + {/* OpenSecret Company Section */} +
+

Built on OpenSecret

+
+ OpenSecret company logo +
+

+ Maple AI is built on OpenSecret, pioneering the future of privacy-preserving apps. + Whether artificial intelligence or traditional apps, user data is end-to-end + encrypted. +

+ + Learn more about OpenSecret → + +
+
+
+ + {/* Developer Programs Section */} +
+

Developer Programs

+
+ {/* Nvidia Inception */} +
+ NVIDIA Inception Program logo + + Inception Program + +
+ + {/* Google Cloud */} +
+ Google Cloud for Startups program logo + + Google Cloud for Startups + +
+
+
+ + {/* Built in Austin Footer */} +
+

+ Built in Austin. Living in Secure Enclaves. +

+
+
+
+ + ); +}