diff --git a/docs/docs/guide/extensions.md b/docs/docs/guide/extensions.md
new file mode 100644
index 000000000..c04f60a68
--- /dev/null
+++ b/docs/docs/guide/extensions.md
@@ -0,0 +1,3 @@
+---
+title: Extending Jan
+---
\ No newline at end of file
diff --git a/docs/docs/intro/introduction.md b/docs/docs/intro/introduction.md
index 00d490619..4e45670aa 100644
--- a/docs/docs/intro/introduction.md
+++ b/docs/docs/intro/introduction.md
@@ -3,102 +3,33 @@ title: Introduction
slug: /docs
---
-Jan can be used to build a variety of AI use cases, at every level of the stack:
+Jan is a ChatGPT-alternative that runs on your own computer.
-- An OpenAI compatible API, with feature parity for `models`, `assistants`, `files` and more
-- A standard data format on top of the user's local filesystem, allowing for transparency and composability
-- Automatically package and distribute to Mac, Windows and Linux. Cloud coming soon
-- An UI kit to customize user interactions with `assistants` and more
-- A standalone inference engine for low level use cases
+Jan uses [open-source AI models](/guide/models), stores data in [open file formats](/specs/data-structures) and is is highly customizable via [extensions](/guide/extensions).
-## Resources
+Jan ships with an [OpenAI-compatible API](/api) and a powerful [Assistant framework](/guide/assistants) to create custom AIs.
-
+## Why Jan?
-- Create an AI assistant
-- Run an OpenAI compatible API endpoint
-- Build a VSCode plugin with a local model
-- Build a Jan platform module
+đź’» **Own your AI**
+Jan runs 100% on your own machine, [predictably](https://www.reddit.com/r/LocalLLaMA/comments/17mghqr/comment/k7ksti6/?utm_source=share&utm_medium=web2x&context=3), privately and even offline. No one else can see your conversations, not even us.
-## Key Concepts
+🏗️ **Customizability**
+Jan ships with a powerful [extension framework](/guide/extensions), which allows developers to extend and customize Jan's functionality. In fact, most core modules of Jan are [built as extensions](/specs/architecture) and use the same extensions API.
-### Modules
+🗂️ **Open File Formats**
+Jan stores data in a [local folder of non-proprietary files](/specs/data-structures). You're never locked-in and can do what you want with your data with extensions, or even a different app.
-Jan is comprised of system-level modules that mirror OpenAI’s, exposing similar APIs and objects
+🌍 **Open Source**
+Both Jan and [Nitro](https://nitro.jan.ai), our lightweight inference engine, are open source via the [AGPLv3 license](https://github.com/janhq/jan/blob/main/LICENSE).
-- Modules are modular, atomic implementations of a single OpenAI-compatible endpoint
-- Modules can be swapped out for alternate implementations
- - The default `messages` module persists messages in thread-specific `.json`
- - `messages-postgresql` uses Postgres for production-grade cloud-native environments
+
-| Jan Module | Description | API Docs |
-| ---------- | ------------- | ---------------------------- |
-| Chat | Inference | [/chat](/api/chat) |
-| Models | Models | [/model](/api/model) |
-| Assistants | Apps | [/assistant](/api/assistant) |
-| Threads | Conversations | [/thread](/api/thread) |
-| Messages | Messages | [/message](/api/message) |
+
diff --git a/docs/docs/specs/architecture.md b/docs/docs/specs/architecture.md
index 079d40033..0a1399a9f 100644
--- a/docs/docs/specs/architecture.md
+++ b/docs/docs/specs/architecture.md
@@ -2,6 +2,9 @@
title: Architecture
---
+- Jan is built using modules
+- Plugin architecture (on Pluggable-Electron)
+
## Concepts
```mermaid
@@ -23,19 +26,3 @@ graph LR
- Model object
- Thread object
- Built-in tool object
-
-## File system
-```sh
-janroot/
- assistants/
- assistant-a/
- assistant.json
- src/
- index.ts
- threads/
- thread-a/
- thread-b
- models/
- model-a/
- model.json
-```
\ No newline at end of file
diff --git a/docs/docs/specs/data-structures.md b/docs/docs/specs/data-structures.md
index 063f9a0b4..d3f8507f4 100644
--- a/docs/docs/specs/data-structures.md
+++ b/docs/docs/specs/data-structures.md
@@ -1,3 +1,69 @@
---
title: Data Structures
----
\ No newline at end of file
+---
+
+
+```sh
+janroot/
+ assistants/
+ assistant-a/
+ assistant.json
+ src/
+ index.ts
+ threads/
+ thread-a/
+ thread-b
+ models/
+ model-a/
+ model.json
+```
+
+
+
+Jan use the local filesystem for data persistence, similar to VSCode. This allows for composability and tinkerability.
+
+```sh=
+/janroot # Jan's root folder (e.g. ~/jan)
+ /models # For raw AI models
+ /threads # For conversation history
+ /assistants # For AI assistants' configs, knowledge, etc.
+```
+
+```sh=
+/models
+ /modelA
+ model.json # Default model settings
+ llama-7b-q4.gguf # Model binaries
+ llama-7b-q5.gguf # Include different quantizations
+/threads
+ /jan-unixstamp-salt
+ model.json # Overrides assistant/model-level model settings
+ thread.json # thread metadata (e.g. subject)
+ messages.json # messages
+ content.json # What is this?
+ files/ # Future for RAG
+/assistants
+ /jan
+ assistant.json # Assistant configs (see below)
+
+ # For any custom code
+ package.json # Import npm modules
+ # e.g. Langchain, Llamaindex
+ /src # Supporting files (needs better name)
+ index.js # Entrypoint
+ process.js # For electron IPC processes (needs better name)
+
+ # `/threads` at root level
+ # `/models` at root level
+ /shakespeare
+ assistant.json
+ model.json # Creator chooses model and settings
+ package.json
+ /src
+ index.js
+ process.js
+
+ /threads # Assistants remember conversations in the future
+ /models # Users can upload custom models
+ /finetuned-model
+```
diff --git a/docs/docs/specs/jan.md b/docs/docs/specs/jan.md
index 77d63eddc..3d5d9e17d 100644
--- a/docs/docs/specs/jan.md
+++ b/docs/docs/specs/jan.md
@@ -1,3 +1,17 @@
---
title: Jan
----
\ No newline at end of file
+---
+
+## Jan: a "global" assistant
+
+Jan ships with a default assistant "Jan" that lets users chat with any open source model out-of-the-box.
+
+This assistant is defined in `/jan`. It is a generic assistant to illustrate power of Jan. In the future, it will support additional features e.g. multi-assistant conversations
+
+- Your Assistant "Jan" lets you pick any model that is in the root /models folder
+- Right panel: pick LLM model and set model parameters
+- Jan’s threads will be at root level
+- `model.json` will reflect model chosen for that session
+- Be able to “add” other assistants in the future
+- Jan’s files will be at thread level
+- Jan is not a persistent memory assistant
diff --git a/docs/docs/specs/settings.md b/docs/docs/specs/settings.md
new file mode 100644
index 000000000..715c3401b
--- /dev/null
+++ b/docs/docs/specs/settings.md
@@ -0,0 +1,3 @@
+---
+title: .jan
+---
\ No newline at end of file
diff --git a/docs/sidebars.js b/docs/sidebars.js
index 38b93e5ba..a40b80f29 100644
--- a/docs/sidebars.js
+++ b/docs/sidebars.js
@@ -19,7 +19,7 @@ const sidebars = {
label: "Introduction",
link: { type: "doc", id: "intro/introduction" },
collapsible: true,
- collapsed: false,
+ collapsed: true,
items: ["intro/quickstart", "intro/how-jan-works"],
},
{
@@ -39,6 +39,7 @@ const sidebars = {
{
type: "category",
label: "Extending Jan",
+ link: { type: "doc", id: "guide/extensions" },
collapsible: true,
collapsed: true,
items: [
@@ -71,6 +72,7 @@ const sidebars = {
"specs/files",
"specs/jan",
"specs/fine-tuning",
+ "specs/settings",
],
},
],