diff --git a/docs/src/containers/Footer/index.js b/docs/src/containers/Footer/index.js index 3e62f579a..186839e04 100644 --- a/docs/src/containers/Footer/index.js +++ b/docs/src/containers/Footer/index.js @@ -1,100 +1,108 @@ -import React from "react"; +import React from 'react' -import { AiOutlineGithub, AiOutlineTwitter } from "react-icons/ai"; -import { BiLogoDiscordAlt, BiLogoLinkedin } from "react-icons/bi"; +import { AiOutlineGithub, AiOutlineTwitter } from 'react-icons/ai' +import { BiLogoDiscordAlt, BiLogoLinkedin } from 'react-icons/bi' const socials = [ { - icon: , - href: "https://twitter.com/janframework", + icon: ( + + ), + href: 'https://twitter.com/janframework', }, { - icon: , - href: "https://discord.com/invite/FTk2MvZwJH", + icon: ( + + ), + href: 'https://discord.com/invite/FTk2MvZwJH', }, { - icon: , - href: "https://github.com/janhq/jan", + icon: ( + + ), + href: 'https://github.com/janhq/jan', }, { - icon: , - href: "https://www.linkedin.com/company/janframework/", - } -]; + icon: ( + + ), + href: 'https://www.linkedin.com/company/janframework/', + }, +] const menus = [ { - name: "For Developers", + name: 'For Developers', child: [ { - menu: "Documentation", - path: "/developer", + menu: 'Documentation', + path: '/developer', }, { - menu: "Hardware", - path: "/hardware", + menu: 'Hardware', + path: '/hardware', }, { - menu: "API Reference", - path: "/api-reference", + menu: 'API Reference', + path: '/api-reference', }, { - menu: "Changelog", - path: "https://github.com/janhq/jan/releases", + menu: 'Changelog', + path: 'https://github.com/janhq/jan/releases', external: true, }, ], }, { - name: "Community", + name: 'Community', child: [ { - menu: "Github", - path: "https://github.com/janhq/jan", + menu: 'Github', + path: 'https://github.com/janhq/jan', external: true, }, { - menu: "Discord", - path: "https://discord.gg/FTk2MvZwJH", + menu: 'Discord', + path: 'https://discord.gg/FTk2MvZwJH', external: true, }, { - menu: "Twitter", - path: "https://twitter.com/janframework", + menu: 'Twitter', + path: 'https://twitter.com/janframework', external: true, }, { - menu: "LinkedIn", - path: "https://www.linkedin.com/company/janframework/", + menu: 'LinkedIn', + path: 'https://www.linkedin.com/company/janframework/', external: true, - } + }, ], }, { - name: "Company", + name: 'Company', child: [ { - menu: "About", - path: "/about", + menu: 'About', + path: '/about', }, { - menu: "Blog", - path: "/blog", + menu: 'Blog', + path: '/blog', }, { - menu: "Careers", - path: "https://janai.bamboohr.com/careers", + menu: 'Careers', + path: 'https://janai.bamboohr.com/careers', external: true, }, { - menu: "Newsletter", - path: "/community#newsletter", - } + menu: 'Newsletter', + path: '/community#newsletter', + }, ], }, -]; +] -const getCurrentYear = new Date().getFullYear(); +const getCurrentYear = new Date().getFullYear() export default function Footer() { return ( @@ -106,30 +114,13 @@ export default function Footer() { Jan Logo

Jan

-
-

- Jan is the open-source, self-hosted  +

+
The Soul of a New Machine
+

+ Subscribe to our newsletter on AI{' '}
-  alternative to ChatGPT. + research and building Jan:

- -
-
- {socials.map((social, i) => { - return ( - - {social.icon} - - ); - })} -
-
{menus.map((menu, i) => { @@ -142,25 +133,42 @@ export default function Footer() {
  • {child.menu}
  • - ); + ) })} - ); + ) })} -
    - - ©{getCurrentYear} Jan AI Pte Ltd. - +
    +
    + + ©{getCurrentYear} Jan AI Pte Ltd. + +
    + {socials.map((social, i) => { + return ( + + {social.icon} + + ) + })} +
    +
    - ); + ) } diff --git a/docs/src/containers/SocialButton/index.js b/docs/src/containers/SocialButton/index.js deleted file mode 100644 index 572c2210f..000000000 --- a/docs/src/containers/SocialButton/index.js +++ /dev/null @@ -1,47 +0,0 @@ -import React from "react"; -import { FaGithub, FaDiscord } from "react-icons/fa"; -import { RiStarSFill } from "react-icons/ri"; -import { useAppStars } from "@site/src/hooks/useAppStars"; -import { useDiscordWidget } from "@site/src/hooks/useDiscordWidget"; - -export default function SocialButton() { - const { stargazers } = useAppStars(); - const { data } = useDiscordWidget(); - - return ( -
    - - - - -
    -

    Github

    -

    - - {stargazers.count} stars -

    -
    -
    - - - - - - ); -} diff --git a/docs/src/pages/index.js b/docs/src/pages/index.js index 1e5add4a6..38dceb1c3 100644 --- a/docs/src/pages/index.js +++ b/docs/src/pages/index.js @@ -7,9 +7,12 @@ import Banner from '@site/src/containers/Banner' import ThemedImage from '@theme/ThemedImage' -import SocialButton from '@site/src/containers/SocialButton' - import { IoArrowDown } from 'react-icons/io5' +import { IoMapOutline } from 'react-icons/io5' +import { useAppStars } from '@site/src/hooks/useAppStars' +import { useDiscordWidget } from '@site/src/hooks/useDiscordWidget' +import { FaGithub, FaDiscord } from 'react-icons/fa' +import { RiStarSFill } from 'react-icons/ri' import Dropdown from '@site/src/containers/Elements/dropdown' @@ -17,6 +20,8 @@ import useIsBrowser from '@docusaurus/useIsBrowser' export default function Home() { const isBrowser = useIsBrowser() + const { stargazers } = useAppStars() + const { data } = useDiscordWidget() const handleAnchorLink = () => { document @@ -35,11 +40,12 @@ export default function Home() { description="Jan runs 100% offline on your computer, utilizes open-source AI models, prioritizes privacy, and is highly customizable." >
    -
    + {/* Hero */} +

    Rethink the Computer

    -

    +

    Turn your computer into a{' '} AI machine @@ -57,249 +63,437 @@ export default function Home() { )}

    -

    +

    400K+ {' '} downloads | Free & Open Source

    + +
    + +
    - {/*
    -
    -
    - -
    + {/* Build with Love */} +
    +
    +

    + Built with love +

    +

    + Jan is entirely open-source. We build it transparently, guided + by the belief
    that AI's + future should be open and shared with everyone. +

    -
    */} - {/*
    -
    -
    - Element Open Source BG -
    -
    - -
    -
    -

    100% open source

    -

    - Our core team believes that AI should be open source, and - Jan is built in public. -

    -
    - -
    -
    -
    -
    -
    -
    */} - - {/*
    -
    -
    -
    -
    -

    - Desktop App -

    -

    - - 10x productivity - {' '} - with customizable AI
    {' '} - assistants, global hotkeys, and in-line AI. -

    -
    -
    -
    - -
    -
    -
    -
    -
    -
    */} - - {/*
    -
    -
    -
    -
    -
    -

    - Mobile App -

    - - Coming Soon +
    + + + + + */} - - {/*
    - - {/*
    -
    -

    Rethink the Computer

    -

    Turn your computer into a AI machine

    -
    */} + + {/* Wall of love */} +
    +
    +

    + People say nice things +

    +

    + ...despite our bugs and fast moving releases +

    +
    +
    + + {/* Feature */} +
    +
    +
    +

    + Jan redefines
    how we use + computers +

    +
    +
    +

    + View Our Features +

    +
    +
    +
    + + {/* Philosophy */} +
    +
    +

    + Our Philosophy +

    +

    + Jan is opinionated software on what AI should be +

    + +
    +
    + + + + + + + + +
    Local-first
    +

    + We believe your conversations and files should remain yours + alone. That's why we prioritize local-first AI, running + open-source models directly on your computer. +

    +
    +
    + + + + + + + + + + + + + + +
    User-owned
    +

    + Your data, your rules. Jan stores everything on your device + in universal formats, giving you total freedom to move your + data without tricks or traps. +

    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    Fully Customizable
    +

    + You can endlessly customize the experience with 3rd party + extensions. You can adjust alignment, moderation, and + censorship levels to your needs. +

    +
    +
    +
    +
    + + {/* CTA email newsletter */} +
    +
    +
    +
    + +

    + The Soul of a New Machine +

    +

    + Follow our AI research and journey in building Jan +

    +
    +
    +
    +
    + + {/* Location and statistic */} +
    +
    +
    +
    +

    13

    +

    + Core team +

    +
    +
    +

    32+

    +

    + Contributors +

    +
    +
    +

    1722+

    +

    + Pull Requests +

    +
    +
    +

    400K+

    +

    + Downloads +

    +
    +
    +
    + +
    + + {/* CTA Bottom */} +
    +
    +
    +

    + Change how
    you use + computers +

    +
    +
    + {!isBrowserChrome ? ( +
    handleAnchorLink()} + className="inline-flex px-4 py-3 rounded-lg text-lg font-semibold cursor-pointer justify-center items-center space-x-2 dark:bg-white dark:text-black bg-black text-white dark:hover:text-black hover:text-white scroll-smooth" + > + Download Jan for PC +
    + ) : ( + + )} +

    + + 400K+ + {' '} + downloads | Free & Open Source +

    +
    +
    +
    + ) diff --git a/docs/src/styles/components/base.scss b/docs/src/styles/components/base.scss index 8e1dd3cac..10d627b83 100644 --- a/docs/src/styles/components/base.scss +++ b/docs/src/styles/components/base.scss @@ -38,6 +38,10 @@ @apply bg-white dark:bg-[#0C0C0C]; } + #__docusaurus { + @apply bg-white dark:bg-[#0C0C0C]; + } + img { pointer-events: none; } diff --git a/docs/src/styles/components/card.scss b/docs/src/styles/components/card.scss index 0bd29b3c4..028612f71 100644 --- a/docs/src/styles/components/card.scss +++ b/docs/src/styles/components/card.scss @@ -29,6 +29,32 @@ 0px -1px 1px 0px rgba(0, 0, 0, 0.1) inset, 0px 1px 1px 0px #4c4c4c inset; } + + .card-wrapper { + border-radius: 16px; + background: linear-gradient(180deg, #fafafa 0%, #ededed 100%); + box-shadow: + 0px 4px 12px 0px rgba(0, 0, 0, 0.12), + 0px -1px 1px 0px rgba(0, 0, 0, 0.1) inset, + 0px 1px 1px 0px #fff inset; + } + + .card-wrapper-dark { + border-radius: 12px; + background: var( + --Linear-dark, + linear-gradient( + 268deg, + rgba(117, 117, 117, 0.38) 0%, + rgba(121, 119, 128, 0.33) 100% + ) + ); + box-shadow: + 0px 4px 12px 0px rgba(0, 0, 0, 0.12), + 0px -1px 1px 0px rgba(0, 0, 0, 0.1) inset, + 0px 0.2px 1px 0px #fff inset; + } + .card { @apply rounded-xl border bg-gray-50 border-gray-50 dark:border-[#202231] dark:bg-[#111217]/50; diff --git a/docs/static/img/homepage/app-frame-dark.png b/docs/static/img/homepage/app-frame-dark.png new file mode 100644 index 000000000..eac8a2cda Binary files /dev/null and b/docs/static/img/homepage/app-frame-dark.png differ diff --git a/docs/static/img/homepage/app-frame-light.png b/docs/static/img/homepage/app-frame-light.png new file mode 100644 index 000000000..a7308ac3b Binary files /dev/null and b/docs/static/img/homepage/app-frame-light.png differ diff --git a/docs/static/img/homepage/mac-system-black.png b/docs/static/img/homepage/mac-system-black.png new file mode 100644 index 000000000..1c1f78237 Binary files /dev/null and b/docs/static/img/homepage/mac-system-black.png differ diff --git a/docs/static/img/homepage/mac-system-white.png b/docs/static/img/homepage/mac-system-white.png new file mode 100644 index 000000000..9f45ef01e Binary files /dev/null and b/docs/static/img/homepage/mac-system-white.png differ diff --git a/docs/static/img/homepage/mapbase-light.png b/docs/static/img/homepage/mapbase-light.png new file mode 100644 index 000000000..ee38cd576 Binary files /dev/null and b/docs/static/img/homepage/mapbase-light.png differ diff --git a/docs/static/img/homepage/mapbase.png b/docs/static/img/homepage/mapbase.png new file mode 100644 index 000000000..0cb773b02 Binary files /dev/null and b/docs/static/img/homepage/mapbase.png differ