diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index da62e3399..47de8ae09 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -3,7 +3,6 @@ require("dotenv").config(); -const lightCodeTheme = require("prism-react-renderer/themes/github"); const darkCodeTheme = require("prism-react-renderer/themes/dracula"); /** @type {import('@docusaurus/types').Config} */ @@ -115,11 +114,11 @@ const config = { primaryColor: "#1a73e8", primaryColorDark: "#1a73e8", options: { - requiredPropsFirst: true, - noAutoAuth: true, - hideDownloadButton: true, - disableSearch: true, - }, + requiredPropsFirst: true, + noAutoAuth: true, + hideDownloadButton: true, + disableSearch: true, + }, }, }, ], @@ -135,48 +134,72 @@ const config = { docs: { sidebar: { hideable: true, - autoCollapseCategories: true, + autoCollapseCategories: false, }, }, - // SEO Docusarus + // SEO Docusarus metadata: [ - { name: 'description', content: 'Jan is a ChatGPT-alternative that runs on your own computer, with a local API server.' }, - { name: 'keywords', content: 'Jan, ChatGPT alternative, on-premises AI, local API server, local AI, llm, conversational AI, no-subscription fee' }, - { name: 'robots', content: 'index, follow' }, - { property: 'og:title', content: 'Run your own AI | Jan' }, - { property: 'og:description', content: 'Jan is a ChatGPT-alternative that runs on your own computer, with a local API server.' }, - { property: 'og:image', content: 'https://jan.ai/img/jan-social-card.png' }, - { property: 'og:type', content: 'website' }, - { property: 'twitter:card', content: 'summary_large_image' }, - { property: 'twitter:site', content: '@janhq_' }, - { property: 'twitter:title', content: 'Run your own AI | Jan' }, - { property: 'twitter:description', content: 'Jan is a ChatGPT-alternative that runs on your own computer, with a local API server.' }, - { property: 'twitter:image', content: 'https://jan.ai/img/jan-social-card.png' }, + { + name: "description", + content: + "Jan is a ChatGPT-alternative that runs on your own computer, with a local API server.", + }, + { + name: "keywords", + content: + "Jan, ChatGPT alternative, on-premises AI, local API server, local AI, llm, conversational AI, no-subscription fee", + }, + { name: "robots", content: "index, follow" }, + { property: "og:title", content: "Run your own AI | Jan" }, + { + property: "og:description", + content: + "Jan is a ChatGPT-alternative that runs on your own computer, with a local API server.", + }, + { + property: "og:image", + content: "https://jan.ai/img/jan-social-card.png", + }, + { property: "og:type", content: "website" }, + { property: "twitter:card", content: "summary_large_image" }, + { property: "twitter:site", content: "@janhq_" }, + { property: "twitter:title", content: "Run your own AI | Jan" }, + { + property: "twitter:description", + content: + "Jan is a ChatGPT-alternative that runs on your own computer, with a local API server.", + }, + { + property: "twitter:image", + content: "https://jan.ai/img/jan-social-card.png", + }, ], headTags: [ // Declare a preconnect tag { - tagName: 'link', + tagName: "link", attributes: { - rel: 'preconnect', - href: 'https://jan.ai/', + rel: "preconnect", + href: "https://jan.ai/", }, }, // Declare some json-ld structured data { - tagName: 'script', + tagName: "script", attributes: { - type: 'application/ld+json', + type: "application/ld+json", }, innerHTML: JSON.stringify({ - '@context': 'https://schema.org/', - '@type': 'localAI', - name: 'Jan', - description: "Jan is a ChatGPT-alternative that runs on your own computer, with a local API server.", - keywords: "Jan, ChatGPT alternative, on-premises AI, local API server, local AI, llm, conversational AI, no-subscription fee", + "@context": "https://schema.org/", + "@type": "localAI", + name: "Jan", + description: + "Jan is a ChatGPT-alternative that runs on your own computer, with a local API server.", + keywords: + "Jan, ChatGPT alternative, on-premises AI, local API server, local AI, llm, conversational AI, no-subscription fee", applicationCategory: "BusinessApplication", operatingSystem: "Multiple", - url: 'https://jan.ai/', + url: "https://jan.ai/", }), }, ], @@ -234,7 +257,7 @@ const config = { prism: { theme: darkCodeTheme, darkTheme: darkCodeTheme, - additionalLanguages: ["python"], + additionalLanguages: ["python", "powershell", "bash"], }, colorMode: { defaultMode: "dark", diff --git a/docs/src/components/Elements/downloadLink.js b/docs/src/containers/Elements/downloadLink.js similarity index 100% rename from docs/src/components/Elements/downloadLink.js rename to docs/src/containers/Elements/downloadLink.js diff --git a/docs/src/components/Elements/dropdown.js b/docs/src/containers/Elements/dropdown.js similarity index 100% rename from docs/src/components/Elements/dropdown.js rename to docs/src/containers/Elements/dropdown.js diff --git a/docs/src/components/Footer/index.js b/docs/src/containers/Footer/index.js similarity index 100% rename from docs/src/components/Footer/index.js rename to docs/src/containers/Footer/index.js diff --git a/docs/src/containers/SocialButton/index.js b/docs/src/containers/SocialButton/index.js index 3fca77c95..496ddeff1 100644 --- a/docs/src/containers/SocialButton/index.js +++ b/docs/src/containers/SocialButton/index.js @@ -5,7 +5,8 @@ export default function SocialButton() { return (
@@ -15,6 +16,7 @@ export default function SocialButton() { diff --git a/docs/src/pages/index.js b/docs/src/pages/index.js index d86865772..f6e2bbe49 100644 --- a/docs/src/pages/index.js +++ b/docs/src/pages/index.js @@ -21,7 +21,7 @@ export default function Home() { >
-
+

Own your AI @@ -37,7 +37,7 @@ export default function Home() {
-
+
@@ -61,37 +61,126 @@ export default function Home() {
-
-
Take Control
-

- Jan runs 100% on your own machine, privately, predictably and even - in offline, with no surprise bills -

+
+
+

Explore Jan

+
+ +
+
+
+

Take Control

+

+ Jan runs 100% on your own machine, privately, predictably + and even in offline, with no surprise bills +

+
+ Full Control Illustration +
+ +
+
+

100% Open Source

+

+ Say goodbye to black boxes. Jan has well-documented code and + stores data in open-format files that you can inspect, + verify and tinker with. +

+
+ Full Control Illustration +
+ +
+
+

Extensions

+

+ Jan has a powerful Extensions API inspired by VSCode. In + fact, most of Jan's core services are built as extensions. +

+
+ Extentions Illustration +
+
-
-
100% Open Source
-

- Say goodbye to black boxes. Jan has well-documented code and - stores data in open-format files that you can inspect, verify and - tinker with. -

-
- -
-
Extensions
-

- Jan has a powerful Extensions API inspired by VSCode. In fact, - most of Jan's core services are built as extensions. -

-
- -
-
No-fuss Compatibility
-

- Jan's API aims to be a drop-in replacement for OpenAI's REST API, - with a local server that runs at port 1337 -

+
+
+

No-fuss Compatibility

+

+ Jan's API aims to be a drop-in replacement for OpenAI's REST + API,
with a local server that runs at port{" "} + + 1337 + +

+
+
+

Endpoints

+
+
+
+

/chat/completions

+
+
+ + Partial + +
+
+
+
+

/models

+
+ + Complete + +
+
+
+
+
+

/threads

+
+ + Partial + +
+
+
+
+
+

/messages

+
+ + Partial + +
+
+
+
+
+

/runs

+
+ + Partial + +
+
+
+
+

diff --git a/docs/src/styles/components/card.scss b/docs/src/styles/components/card.scss index 9149c3d0d..853088a33 100644 --- a/docs/src/styles/components/card.scss +++ b/docs/src/styles/components/card.scss @@ -14,7 +14,7 @@ 0px 1px 2px 0px #525154 inset; } .card { - @apply rounded-3xl border bg-gray-100 border-gray-100 dark:border-[#202231] dark:bg-[#111217]; + @apply rounded-xl border bg-gray-50 border-gray-50 dark:border-[#202231] dark:bg-[#111217]/50; &-link { display: inline-flex; diff --git a/docs/src/styles/tweaks.scss b/docs/src/styles/tweaks.scss deleted file mode 100644 index 3531e8397..000000000 --- a/docs/src/styles/tweaks.scss +++ /dev/null @@ -1,94 +0,0 @@ -.redocusaurus { - div[data-section-id] { - min-height: auto; - } -} - -[class*="docItemCol_"] { - @apply p-4 lg:px-16 lg:py-4; -} - -[class*="breadcrumbsContainer_"] { - margin-bottom: 40px !important; -} - -.theme-doc-footer { - margin-top: 40px; - margin-bottom: 20px; -} - -.menu.thin-scrollbar { - padding: 32px 10px; -} - -[class*="iconExternalLink_"] { - display: none; -} - -.breadcrumbs__item { - position: relative; - &:first-child { - .breadcrumbs__link { - vertical-align: middle; - margin-top: -2px; - } - } -} - -[class*="docMainContainer_"], -[class*="docSidebarContainer_"] { - @apply bg-gray-50 dark:bg-gray-950/95; -} - -.navbar-sidebar { - @apply bg-gray-50 dark:bg-gray-900; -} - -.theme-doc-sidebar-container { - @apply border-gray-200 dark:border-gray-800; -} - -.theme-doc-markdown { - a { - @apply text-blue-600 dark:text-blue-400; - } - ul { - list-style: revert; - } - ol { - list-style: decimal; - } - ul, - ol { - padding-left: 32px; - li { - @apply leading-loose; - line-height: 1.5; - } - + div { - margin-top: 12px; - } - } -} - -.markdown h1:first-child, -.markdown > p { - margin-bottom: 16px; -} - -.theme-code-block { - font-size: 14px; - background-color: black; -} - -.table-of-contents { - font-size: 14px; -} - -.task-list-item { - list-style: none; -} - -blockquote { - margin-bottom: 12px; -} diff --git a/docs/src/styles/tweaks/navbar.scss b/docs/src/styles/tweaks/navbar.scss index 3e2198114..46c5c58c4 100644 --- a/docs/src/styles/tweaks/navbar.scss +++ b/docs/src/styles/tweaks/navbar.scss @@ -11,7 +11,7 @@ } &__inner { - @apply border border-gray-300 dark:border-gray-800 rounded-lg bg-[#E4E4E7]/20 dark:bg-[#09090B]/50 backdrop-blur-md flex items-center h-14 px-8 relative; + @apply border border-gray-200 dark:border-gray-800 rounded-lg bg-[#E4E4E7]/20 dark:bg-[#09090B]/50 backdrop-blur-md flex items-center h-14 px-8 relative; } &__logo { diff --git a/docs/src/styles/tweaks/redocusaurus.scss b/docs/src/styles/tweaks/redocusaurus.scss index b2cff9ba7..debebf618 100644 --- a/docs/src/styles/tweaks/redocusaurus.scss +++ b/docs/src/styles/tweaks/redocusaurus.scss @@ -4,14 +4,24 @@ background-color: transparent; } + .redoc-markdown { + margin-top: 8px; + } + .scrollbar-container { ul > li > label { margin-bottom: 4px; background-color: transparent; + padding-top: 4px; + padding-bottom: 4px; + font-size: 16px; + font-weight: 700; + color: var(--ifm-menu-color); } ul > li > ul > li > label { background-color: transparent; + font-weight: 500; &:hover { @apply dark:bg-gray-800/50 bg-gray-100; } diff --git a/docs/src/styles/tweaks/sidebar.scss b/docs/src/styles/tweaks/sidebar.scss index a0e229808..b849d67fb 100644 --- a/docs/src/styles/tweaks/sidebar.scss +++ b/docs/src/styles/tweaks/sidebar.scss @@ -12,7 +12,7 @@ [class*="sidebarViewport_"] { top: 80px !important; - height: unset !important; + // height: unset !important; } [class*="docItemCol_"] { diff --git a/docs/src/theme/Layout/index.js b/docs/src/theme/Layout/index.js index 22c4cc131..2557d2c9f 100644 --- a/docs/src/theme/Layout/index.js +++ b/docs/src/theme/Layout/index.js @@ -10,7 +10,7 @@ import { useKeyboardNavigation } from "@docusaurus/theme-common/internal"; import SkipToContent from "@theme/SkipToContent"; import AnnouncementBar from "@theme/AnnouncementBar"; import Navbar from "@theme/Navbar"; -import Footer from "@site/src/components/Footer"; +import Footer from "@site/src/containers/Footer"; import LayoutProvider from "@theme/Layout/Provider"; import ErrorPageContent from "@theme/ErrorPageContent"; import styles from "./styles.module.scss"; diff --git a/docs/static/img/homepage/extentions.svg b/docs/static/img/homepage/extentions.svg new file mode 100644 index 000000000..a3ce1a981 --- /dev/null +++ b/docs/static/img/homepage/extentions.svg @@ -0,0 +1,511 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/homepage/full-control.svg b/docs/static/img/homepage/full-control.svg new file mode 100644 index 000000000..7f744e2f9 --- /dev/null +++ b/docs/static/img/homepage/full-control.svg @@ -0,0 +1,333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/homepage/open-source.svg b/docs/static/img/homepage/open-source.svg new file mode 100644 index 000000000..8333d30f6 --- /dev/null +++ b/docs/static/img/homepage/open-source.svg @@ -0,0 +1,349 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +