From c34f32fab4e07f1de627ec810302f2d80d2cd7a4 Mon Sep 17 00:00:00 2001
From: Shellishack <40737228+Shellishack@users.noreply.github.com>
Date: Fri, 6 Jun 2025 12:39:50 +0800
Subject: [PATCH 1/2] Remove docusaurus template and add partial docs
---
.github/workflows/build-docs.yml | 29 ++++
README.md | 68 ++++++--
desktop/README.md | 42 -----
docs/docs/api-reference/index.md | 6 +
.../guide/develop-extensions/_category_.json | 4 +
docs/docs/guide/develop-extensions/cli.md | 20 +++
docs/docs/guide/develop-extensions/index.md | 18 +++
.../develop-extensions/react/_category_.json | 4 +
.../guide/develop-extensions/react/index.md | 1 +
.../react/react-template.md | 1 +
docs/docs/guide/index.md | 41 +++++
docs/docs/guide/installation/_category_.json | 4 +
docs/docs/guide/installation/android.md | 11 ++
docs/docs/guide/installation/index.md | 9 ++
docs/docs/guide/installation/ios.md | 9 ++
docs/docs/guide/installation/linux.md | 11 ++
docs/docs/guide/installation/macos.md | 11 ++
docs/docs/guide/installation/web.md | 11 ++
docs/docs/guide/installation/windows.md | 5 +
.../guide/pulse-editor-app/_category_.json | 4 +
docs/docs/guide/pulse-editor-app/concepts.md | 1 +
.../extension-system/index.md | 1 +
docs/docs/guide/pulse-editor-app/index.md | 7 +
docs/docs/guide/quick-start/_category_.json | 8 +
.../guide/quick-start/configure-ai-agents.md | 5 +
.../quick-start/how-to-use-extensions.md | 13 ++
.../guide/quick-start/set-up-pulse-editor.md | 34 ++++
docs/docs/intro.md | 47 ------
docs/docs/tutorial-basics/_category_.json | 8 -
docs/docs/tutorial-basics/congratulations.md | 23 ---
.../tutorial-basics/create-a-blog-post.md | 34 ----
.../docs/tutorial-basics/create-a-document.md | 57 -------
docs/docs/tutorial-basics/create-a-page.md | 43 -----
docs/docs/tutorial-basics/deploy-your-site.md | 31 ----
.../tutorial-basics/markdown-features.mdx | 152 ------------------
docs/docs/tutorial-extras/_category_.json | 7 -
.../img/docsVersionDropdown.png | Bin 25427 -> 0 bytes
.../tutorial-extras/img/localeDropdown.png | Bin 27841 -> 0 bytes
.../tutorial-extras/manage-docs-versions.md | 55 -------
.../tutorial-extras/translate-your-site.md | 88 ----------
docs/docusaurus.config.ts | 61 ++++---
docs/sidebars.ts | 5 +-
.../src/components/HomepageFeatures/index.tsx | 71 --------
.../HomepageFeatures/styles.module.css | 11 --
docs/src/css/custom.css | 63 ++++++--
docs/src/pages/index.module.css | 5 +-
docs/src/pages/index.tsx | 85 +++++++---
docs/src/pages/markdown-page.md | 7 -
mobile/README.md | 42 -----
49 files changed, 480 insertions(+), 793 deletions(-)
create mode 100644 .github/workflows/build-docs.yml
delete mode 100644 desktop/README.md
create mode 100644 docs/docs/api-reference/index.md
create mode 100644 docs/docs/guide/develop-extensions/_category_.json
create mode 100644 docs/docs/guide/develop-extensions/cli.md
create mode 100644 docs/docs/guide/develop-extensions/index.md
create mode 100644 docs/docs/guide/develop-extensions/react/_category_.json
create mode 100644 docs/docs/guide/develop-extensions/react/index.md
create mode 100644 docs/docs/guide/develop-extensions/react/react-template.md
create mode 100644 docs/docs/guide/index.md
create mode 100644 docs/docs/guide/installation/_category_.json
create mode 100644 docs/docs/guide/installation/android.md
create mode 100644 docs/docs/guide/installation/index.md
create mode 100644 docs/docs/guide/installation/ios.md
create mode 100644 docs/docs/guide/installation/linux.md
create mode 100644 docs/docs/guide/installation/macos.md
create mode 100644 docs/docs/guide/installation/web.md
create mode 100644 docs/docs/guide/installation/windows.md
create mode 100644 docs/docs/guide/pulse-editor-app/_category_.json
create mode 100644 docs/docs/guide/pulse-editor-app/concepts.md
create mode 100644 docs/docs/guide/pulse-editor-app/extension-system/index.md
create mode 100644 docs/docs/guide/pulse-editor-app/index.md
create mode 100644 docs/docs/guide/quick-start/_category_.json
create mode 100644 docs/docs/guide/quick-start/configure-ai-agents.md
create mode 100644 docs/docs/guide/quick-start/how-to-use-extensions.md
create mode 100644 docs/docs/guide/quick-start/set-up-pulse-editor.md
delete mode 100644 docs/docs/intro.md
delete mode 100644 docs/docs/tutorial-basics/_category_.json
delete mode 100644 docs/docs/tutorial-basics/congratulations.md
delete mode 100644 docs/docs/tutorial-basics/create-a-blog-post.md
delete mode 100644 docs/docs/tutorial-basics/create-a-document.md
delete mode 100644 docs/docs/tutorial-basics/create-a-page.md
delete mode 100644 docs/docs/tutorial-basics/deploy-your-site.md
delete mode 100644 docs/docs/tutorial-basics/markdown-features.mdx
delete mode 100644 docs/docs/tutorial-extras/_category_.json
delete mode 100644 docs/docs/tutorial-extras/img/docsVersionDropdown.png
delete mode 100644 docs/docs/tutorial-extras/img/localeDropdown.png
delete mode 100644 docs/docs/tutorial-extras/manage-docs-versions.md
delete mode 100644 docs/docs/tutorial-extras/translate-your-site.md
delete mode 100644 docs/src/components/HomepageFeatures/index.tsx
delete mode 100644 docs/src/components/HomepageFeatures/styles.module.css
delete mode 100644 docs/src/pages/markdown-page.md
delete mode 100644 mobile/README.md
diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml
new file mode 100644
index 0000000..25d504d
--- /dev/null
+++ b/.github/workflows/build-docs.yml
@@ -0,0 +1,29 @@
+name: Test deployment
+
+on:
+ pull_request:
+ branches:
+ - main
+ # Review gh actions docs if you want to further define triggers, paths, etc
+ # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on
+
+jobs:
+ test-deploy:
+ name: Test deployment
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-node@v4
+ with:
+ node-version: 20
+ cache: npm
+
+ - name: Install dependencies
+ run: npm ci
+ working-directory: docs
+
+ - name: Test build website
+ run: npm build
+ working-directory: docs
diff --git a/README.md b/README.md
index 310367b..0bafe66 100644
--- a/README.md
+++ b/README.md
@@ -5,8 +5,6 @@ Pulse Editor
> [!IMPORTANT]
> Pulse Editor is still in its early development stage. We are trying hard to make sure everything works as expected for all different platforms. See [Beta Release Roadmap](#beta-release-roadmap) below.
-
-
@@ -15,9 +13,11 @@ Pulse Editor
[](https://discord.gg/s6J54HFxQp)
[](./LICENSE)
+
# Table of Contents
+
- [Table of Contents](#table-of-contents)
@@ -26,7 +26,7 @@ Pulse Editor
- [Major Beta Release 1 (June 2025):](#major-beta-release-1-june-2025)
- [Major Beta Release 2 (planned for 2025 Q3)](#major-beta-release-2-planned-for-2025-q3)
- [Major Beta Release 3 (planned for 2025 Q4)](#major-beta-release-3-planned-for-2025-q4)
-- [Documentation (WIP)](#documentation-wip)
+- [Documentation and Guide](#documentation-and-guide)
- [Getting Started -- User Guide](#getting-started----user-guide)
- [Web Client](#web-client)
- [Mobile Client](#mobile-client)
@@ -47,17 +47,21 @@ Pulse Editor
# Introduction
+
Pulse Editor is a cross-platform tool built to make AI-powered creation and development feel intuitive and seamless.
# Beta Release Roadmap
-🎉🎉Pulse Editor is now in beta.
+
+🎉🎉Pulse Editor is now in beta.
We plan to have 2-3 major beta release stages before we reach a stable release version.
### Major Beta Release 1 (June 2025):
+
Pulse Editor is now available on Android and Desktop (tested for Windows, needs more testing for Linux and MacOS).
Pulse Editor Marketplace now is available for editor users. Simply download Pulse Editor, and view all available extensions in the extension page. You can also browser and search extensions in [Marketplace Web (WIP)](https://pulse-editor.com/marketplace). As for now, the following extensions are available:
+
- (Official) [Pulse Editor Code View (MIT)](https://github.com/ClayPulse/pulse-editor-code-view)
- (Official) [Pulse Editor Terminal (MIT)](https://github.com/ClayPulse/pulse-editor-terminal)
- (Official) [Pulse Editor Image Editor (MIT)](https://github.com/Shellishack/pulse-editor-image-editor)
@@ -67,9 +71,10 @@ Pulse Editor Marketplace Developer Access is now open for application. If you'd
Even if you haven't got access to publish your extensions to the marketplace, you can still explore Pulse Editor platform by developing your own extensions locally. This is a great opportunity to get an early look at Pulse Editor and start experimenting with its capabilities! See [Extension Development](#pulse-editor-extension-development) below.
-
### Major Beta Release 2 (planned for 2025 Q3)
+
Planned items:
+
- Documentation
- Support for web
- Support remote Pulse Editor instance access
@@ -79,102 +84,136 @@ Planned items:
~~Coming Soon: [Making 100 Extension Apps Challenge](https://github.com/shellishack)~~
### Major Beta Release 3 (planned for 2025 Q4)
+
... (WIP)
-# Documentation (WIP)
-The documentation will be available at https://docs.pulse-editor.com. You can find documentation repository [here](https://github.com/ClayPulse/docs).
+# Documentation and Guide
+
+The documentation and user guide will be available at https://docs.pulse-editor.com. For documentation contributors, the docs source repository is located [here](docs/).
# Getting Started -- User Guide
+
## Web Client
-There is a web deployment at https://editor.claypulse.ai
+
+There is a web deployment at https://web.pulse-editor.com
For detailed web user guide, check out [Web User Guide](web/README.md)
+
## Mobile Client
+
Android client is available in release page.
->Current we only support Android, although it is technically possible to have an iOS build (see developer guide below).
+
+> Current we only support Android, although it is technically possible to have an iOS build (see developer guide below).
For detailed mobile user guide, check out [Mobile User Guide](mobile/README.md)
+
## Desktop Client
+
Linux, MacOS, Windows clients are available in release page.
+
> [!NOTE]
> Only Windows is tested in alpha release.
For detailed desktop user guide, check out [Desktop User Guide](desktop/README.md)
+
## VSCode Extension
+
A VSCode Webview Extension with limited features is available [here](https://marketplace.visualstudio.com/items?itemName=shellishack.pulse-editor).
For detailed VSCode extension user guide, check out [VSCode Extension User Guide](vscode-extension/README.md)
-
# Getting Started -- Development Guide
+
## Recommended Nodejs version
+
Nodejs 20
+
## Install dependencies
+
You can install dependencies for all workspaces using
+
```
npm i
```
+
Or, for a specific workspace. e.g. for web:
+
```
npm i --workspace=web
```
## Install dependencies (desktop native modules)
+
When dependencies in `desktop/`, use Electron's nodejs instead of local nodejs.
Make sure you have installed necessary build tools.
+
### For Windows
+
Nodejs Windows Installer should already include windows-build-tools. In addition, make sure [Windows SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk) is also available:
### For Linux
+
```
sudo apt install -y make python build-essential
```
Then you can rebuild native dependencies in `desktop/` using.
+
```
cd desktop
npm run rebuild-native
```
+
Electron may warn you need NODE_MODULE_VERSION xxx. If you have electron@35.0.2 installed (check desktop/package.json), you can run:
+
```
electron-rebuild -v 35.0.2
```
Start development:
+
```
npm run desktop-dev
```
+
Build production release:
+
```
npm run desktop-build
```
-
## Web Development
-Pulse Editor uses Next.js as the frontend (and backend -- TBD).
-You can get started with local development by running:
+
+Pulse Editor uses Next.js as the frontend (and backend -- TBD).
+You can get started with local development by running:
+
```bash
npm run web-dev
```
## Mobile Development
+
Pulse Editor uses Capacitor.js to create mobile apps on Android and iOS. To develop mobile app locally, try the following.
Start development:
+
```
npm run android-dev
```
Build production release
+
```bash
# Production
npm run android-build
```
## Desktop Development
+
Pulse Editor uses Electron.js to create desktop apps on Windows, Mac and Linux. To develop desktop app locally,
run:
+
```bash
# Development
npm run desktop-dev
@@ -185,6 +224,7 @@ npm run desktop-build
If you run `npm run desktop-build` for a production build, you can find an executable file inside `build/desktop`.
## VSCode Extension Development
+
> [!warning]
> The code in `vscode-extension` might be out of date, as it was made for an Alpha Demo.
> Support for using Pulse Editor as an extension in VSCode might be discontinued, or get simply replaced with a webview.
@@ -194,9 +234,11 @@ Pulse Editor uses VSCode Webview API to create a VSCode Extension. To develop VS
Note that you will also need to run the Nextjs server locally during development.
## Pulse Editor Extension Development
+
Pulse Editor uses [Modular Federation](https://module-federation.io/) to deliver its modular extensions.
For guides on how to start developing and using extensions locally, check out our [React template repository](https://github.com/ClayPulse/pulse-editor-extension-template).
Some of our official extensions are also open-source. Feel free to take examples from them and/or contribute to them.
+
- [Pulse Editor Code View](https://github.com/ClayPulse/pulse-editor-code-view)
- [Pulse Editor Terminal](https://github.com/ClayPulse/pulse-editor-terminal)
diff --git a/desktop/README.md b/desktop/README.md
deleted file mode 100644
index e0cc58d..0000000
--- a/desktop/README.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# Desktop User Guide
-### Installation
-
-Linux, MacOS, and Windows clients are available for download in our GitHub release page.
-
-(Only Windows is tested in the alpha release)
-
-You must then configure settings in the app. Specifically, to use Voice Chat, you need to have all STT, LLM, TTS configured; to only use Agentic Chat Terminal or Code Completion, you need to configure LLM.
-
-| Modality | Supported Provider |
-| --- | --- |
-| STT | OpenAI |
-| LLM | OpenAI |
-| TTS | OpenAI, ElevenLabs |
-
-(For TTS, you need to enter a voice name or voice ID which you can find from your provider. e.g. “alloy” for OpenAI TTS1, “Maltida” for ElevenLabs.)
-
-### Open File
-
-Click the menu at top-left corner, then click either “new file” to get an empty file or “open file” to select one from your file system.
-
-### Voice Chat
-
-(Make sure you have configured all STT, LLM, TTS providers and API keys)
-
-Click the microphone icon in the bottom toolbar, and grant permission if prompted. Then start chatting using voice. Any code changes will be made in the code view once the request completes.
-
-### Drawing Gesture
-
-Click the pen icon in the bottom toolbar, and start drawing using your cursor. If you wish to restart, simply toggle off and on the pen tool again.
-
-### Agentic Chat Terminal
-
-(Make sure you have configured LLM provider and API key)
-
-Click the “Open Chat View” icon in the bottom toolbar. Then select your desire agent, or define your own by clicking the plus icon. Next, start chatting by typing in text in the input box.
-
-### Code Completion
-
-(Make sure you have configured LLM provider and API key)
-
-Type anything in an open file, then a suggestion would become available in grey text. Press tab key to accept changes, or keep typing to refresh new suggest.
\ No newline at end of file
diff --git a/docs/docs/api-reference/index.md b/docs/docs/api-reference/index.md
new file mode 100644
index 0000000..6834b91
--- /dev/null
+++ b/docs/docs/api-reference/index.md
@@ -0,0 +1,6 @@
+---
+sidebar_position: 1
+---
+
+# Introduction
+This is
\ No newline at end of file
diff --git a/docs/docs/guide/develop-extensions/_category_.json b/docs/docs/guide/develop-extensions/_category_.json
new file mode 100644
index 0000000..20a6579
--- /dev/null
+++ b/docs/docs/guide/develop-extensions/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Development Guide",
+ "position": 6
+}
\ No newline at end of file
diff --git a/docs/docs/guide/develop-extensions/cli.md b/docs/docs/guide/develop-extensions/cli.md
new file mode 100644
index 0000000..14c8fe3
--- /dev/null
+++ b/docs/docs/guide/develop-extensions/cli.md
@@ -0,0 +1,20 @@
+---
+sidebar_position: 1
+---
+
+# Pulse Editor CLI
+
+## Installation
+```bash
+npx -g install @pulse-editor/cli
+```
+
+## Create extension project
+```bash
+pulse create
+```
+
+## Publish extension to marketplace
+```bash
+pulse publish
+```
\ No newline at end of file
diff --git a/docs/docs/guide/develop-extensions/index.md b/docs/docs/guide/develop-extensions/index.md
new file mode 100644
index 0000000..768a3af
--- /dev/null
+++ b/docs/docs/guide/develop-extensions/index.md
@@ -0,0 +1,18 @@
+# Develop Extensions
+
+## Choose your framework
+
+Pulse Editor uses [Module Federation](https://module-federation.io/guide/start/) to enable extension system. Thanks to the [Micro-Frontend](https://en.wikipedia.org/wiki/Micro_frontend) architecture of [Module Federation](https://module-federation.io/guide/start/), you can (technically) use any frontend web development framework to develop your extensions.
+
+For you to get started quickly, we offer starter templates for the following frameworks
+
+- React
+- More to come!
+
+## Use Pulse Editor CLI
+
+You can use Pulse Editor CLI tool to manage developer credentials, create projects, and publish extensions, etc. Check out the [cli guide](/docs/guide/develop-extensions/cli).
+
+import DocCardList from '@theme/DocCardList';
+
+
diff --git a/docs/docs/guide/develop-extensions/react/_category_.json b/docs/docs/guide/develop-extensions/react/_category_.json
new file mode 100644
index 0000000..ef302b8
--- /dev/null
+++ b/docs/docs/guide/develop-extensions/react/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Develop Extensions with React",
+ "position": 2
+}
\ No newline at end of file
diff --git a/docs/docs/guide/develop-extensions/react/index.md b/docs/docs/guide/develop-extensions/react/index.md
new file mode 100644
index 0000000..90dcc5f
--- /dev/null
+++ b/docs/docs/guide/develop-extensions/react/index.md
@@ -0,0 +1 @@
+# React
\ No newline at end of file
diff --git a/docs/docs/guide/develop-extensions/react/react-template.md b/docs/docs/guide/develop-extensions/react/react-template.md
new file mode 100644
index 0000000..31a87e8
--- /dev/null
+++ b/docs/docs/guide/develop-extensions/react/react-template.md
@@ -0,0 +1 @@
+# React Starter Template
\ No newline at end of file
diff --git a/docs/docs/guide/index.md b/docs/docs/guide/index.md
new file mode 100644
index 0000000..0957ed0
--- /dev/null
+++ b/docs/docs/guide/index.md
@@ -0,0 +1,41 @@
+---
+sidebar_position: 1
+---
+
+# Introduction
+
+Welcome to Pulse Editor's Documentation.
+
+## About Pulse Editor
+
+Pulse Editor is your creative platform — modular, AI-enhanced, and ready for any device.
+
+From idea to execution, creators and developers can create, build, and automate using a growing library of tools and extensions from the Pulse Editor Marketplace.
+
+Whether you're editing text, generating images, coding apps, or producing videos, Pulse Editor adapts to your workflow — on desktop, mobile, or web.
+
+Powered by an AI-native foundation, Pulse offers intelligent planning, context-aware suggestions, real-time AI collaboration, and autonomous task execution — making creativity faster, smarter, and more connected than ever.
+
+## Why developing a creative app platform?
+
+Creative software hasn't kept pace with how people work—or with what AI makes possible.
+Despite rapid progress in AI, today's tools and ecosystems remain stuck in outdated paradigms. Creators and developers face two major roadblocks:
+
+1. **Creative workflows are fragmented and disconnected**
+ Most creative tools operate in isolation, with little to no collaboration across apps. Yet this isn’t just a product issue—it’s systemic. Traditional software distribution and app stores are designed around individual, siloed apps that don’t communicate, forcing users to manually stitch together fragmented workflows.
+
+2. **Existing ecosystems weren’t built for AI—and now they’re struggling to adapt**
+ Most leading tools were built on heavy, legacy codebases—long before AI was a factor. This makes it hard to retrofit intelligent, cross-platform capabilities. For example, AI coding tools like VSCode, Cursor, and Windsurf share the same decade old codebase and the same struggle of being desktop-bound.
+
+**What’s missing:**
+A modern, AI-native creative app platform that connects the dots—providing smart planning, creating, and executing across disciplines, so users can focus on ideas.
+
+## Get Started with Pulse Editor
+
+In this guide, you can learn and find useful information about Pulse Editor core, extensions, marketplace, and developer libraries.
+
+To get quick started, you can check the following pages.
+
+import DocCardList from '@theme/DocCardList';
+
+
diff --git a/docs/docs/guide/installation/_category_.json b/docs/docs/guide/installation/_category_.json
new file mode 100644
index 0000000..8e202f6
--- /dev/null
+++ b/docs/docs/guide/installation/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Installation",
+ "position": 2
+}
\ No newline at end of file
diff --git a/docs/docs/guide/installation/android.md b/docs/docs/guide/installation/android.md
new file mode 100644
index 0000000..c5fa9bf
--- /dev/null
+++ b/docs/docs/guide/installation/android.md
@@ -0,0 +1,11 @@
+# Android
+
+## Use Pulse Editor on Android phone
+
+Download the `.apk` file from our [GitHub repo](https://github.com/ClayPulse/pulse-editor/releases).
+
+:::warning
+
+đźš§ Coming soon: Installation via Play Store.
+
+:::
diff --git a/docs/docs/guide/installation/index.md b/docs/docs/guide/installation/index.md
new file mode 100644
index 0000000..3244d52
--- /dev/null
+++ b/docs/docs/guide/installation/index.md
@@ -0,0 +1,9 @@
+# Installation
+
+## Download latest builds
+
+The latest release builds are available on our [GitHub repo](https://github.com/ClayPulse/pulse-editor/releases). Please refer to the following sections for the platform that you use.
+
+import DocCardList from '@theme/DocCardList';
+
+
diff --git a/docs/docs/guide/installation/ios.md b/docs/docs/guide/installation/ios.md
new file mode 100644
index 0000000..a9c2ce8
--- /dev/null
+++ b/docs/docs/guide/installation/ios.md
@@ -0,0 +1,9 @@
+# iOS (Coming Soon)
+
+## Use Pulse Editor on iPhone
+
+:::warning
+
+đźš§ Coming soon.
+
+:::
diff --git a/docs/docs/guide/installation/linux.md b/docs/docs/guide/installation/linux.md
new file mode 100644
index 0000000..d4b8993
--- /dev/null
+++ b/docs/docs/guide/installation/linux.md
@@ -0,0 +1,11 @@
+# Linux (Experimental)
+
+## Use Pulse Editor on Linux
+
+Download the `.zip` file for Linux from our [GitHub repo](https://github.com/ClayPulse/pulse-editor/releases).
+
+:::warning
+
+đźš§ The Linux version is not fully tested as of this early stage.
+
+:::
diff --git a/docs/docs/guide/installation/macos.md b/docs/docs/guide/installation/macos.md
new file mode 100644
index 0000000..2d9212c
--- /dev/null
+++ b/docs/docs/guide/installation/macos.md
@@ -0,0 +1,11 @@
+# MacOS (Experimental)
+
+## Use Pulse Editor on MacOS
+
+Download the `.zip` file for MacOS from our [GitHub repo](https://github.com/ClayPulse/pulse-editor/releases).
+
+:::warning
+
+đźš§ The MacOS version is not fully tested as of this early stage.
+
+:::
diff --git a/docs/docs/guide/installation/web.md b/docs/docs/guide/installation/web.md
new file mode 100644
index 0000000..27583ea
--- /dev/null
+++ b/docs/docs/guide/installation/web.md
@@ -0,0 +1,11 @@
+# Web (Coming Soon)
+
+## Use Pulse Editor in your browser
+
+No installation required. Open [Pulse Editor Web](https://web.pulse-editor.com) in browser to get started.
+
+:::warning
+
+đźš§ Coming soon: Web Editor is under construction.
+
+:::
diff --git a/docs/docs/guide/installation/windows.md b/docs/docs/guide/installation/windows.md
new file mode 100644
index 0000000..58300bd
--- /dev/null
+++ b/docs/docs/guide/installation/windows.md
@@ -0,0 +1,5 @@
+# Windows
+
+## Use Pulse Editor on Windows
+
+Download the `.zip` file for Windows from our [GitHub repo](https://github.com/ClayPulse/pulse-editor/releases).
diff --git a/docs/docs/guide/pulse-editor-app/_category_.json b/docs/docs/guide/pulse-editor-app/_category_.json
new file mode 100644
index 0000000..3b792ab
--- /dev/null
+++ b/docs/docs/guide/pulse-editor-app/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Pulse Editor App",
+ "position": 4
+}
diff --git a/docs/docs/guide/pulse-editor-app/concepts.md b/docs/docs/guide/pulse-editor-app/concepts.md
new file mode 100644
index 0000000..74d42e1
--- /dev/null
+++ b/docs/docs/guide/pulse-editor-app/concepts.md
@@ -0,0 +1 @@
+# Concepts
diff --git a/docs/docs/guide/pulse-editor-app/extension-system/index.md b/docs/docs/guide/pulse-editor-app/extension-system/index.md
new file mode 100644
index 0000000..fad7923
--- /dev/null
+++ b/docs/docs/guide/pulse-editor-app/extension-system/index.md
@@ -0,0 +1 @@
+# Extension System
\ No newline at end of file
diff --git a/docs/docs/guide/pulse-editor-app/index.md b/docs/docs/guide/pulse-editor-app/index.md
new file mode 100644
index 0000000..9f92fdc
--- /dev/null
+++ b/docs/docs/guide/pulse-editor-app/index.md
@@ -0,0 +1,7 @@
+# Pulse Editor App
+
+## Learn about core concepts of Pulse Editor App
+
+import DocCardList from '@theme/DocCardList';
+
+
diff --git a/docs/docs/guide/quick-start/_category_.json b/docs/docs/guide/quick-start/_category_.json
new file mode 100644
index 0000000..c9c1c74
--- /dev/null
+++ b/docs/docs/guide/quick-start/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Quick Start",
+ "position": 3,
+ "link": {
+ "type": "generated-index",
+ "description": "Get started with Pulse Editor in just a few steps."
+ }
+}
\ No newline at end of file
diff --git a/docs/docs/guide/quick-start/configure-ai-agents.md b/docs/docs/guide/quick-start/configure-ai-agents.md
new file mode 100644
index 0000000..5e1f31d
--- /dev/null
+++ b/docs/docs/guide/quick-start/configure-ai-agents.md
@@ -0,0 +1,5 @@
+---
+sidebar_position: 3
+---
+
+# Configure AI Agents
diff --git a/docs/docs/guide/quick-start/how-to-use-extensions.md b/docs/docs/guide/quick-start/how-to-use-extensions.md
new file mode 100644
index 0000000..82c71cd
--- /dev/null
+++ b/docs/docs/guide/quick-start/how-to-use-extensions.md
@@ -0,0 +1,13 @@
+---
+sidebar_position: 2
+---
+
+# How to Use Extensions
+
+## Install extensions from marketplace
+
+Pulse Editor is a modular, extensible creative platform that allows users to install any extension they need for their creative workflow, and enables extension developers to publish extensions and have a chance to earn.
+
+:::info
+Pulse Editor provides a set of SDK libraries for extension developers. If you are interested in building and publishing extension apps to Pulse Editor Marketplace, check out the [extension developer guide](/docs/guide/develop-extensions).
+:::
diff --git a/docs/docs/guide/quick-start/set-up-pulse-editor.md b/docs/docs/guide/quick-start/set-up-pulse-editor.md
new file mode 100644
index 0000000..b6463bd
--- /dev/null
+++ b/docs/docs/guide/quick-start/set-up-pulse-editor.md
@@ -0,0 +1,34 @@
+---
+sidebar_position: 1
+---
+
+# Set up Pulse Editor
+
+## Configuring AI models in Pulse Editor
+
+Pulse Editor is an all-in-one AI creative platform that allows you to create workflows using countless many extension apps from our marketplace. With Pulse Editor, you can manage all AI models in one place at the platform level. There are mainly two ways that AI models are used during your creation process.
+
+1. The Pulse Editor Creative AI can interact with extensions on your behalf. Most extensions expose some commands that Pulse Editor Creative AI can understand. After chatting or talking with the user, Pulse Editor Creative AI may decide to run these commands to help user with some certain tasks.
+2. Some extensions may have features that use AI models (e.g. Code Agent from Pulse Editor Code needs to have access to a LLM). Pulse Editor core exposes unified AI calling APIs to these extensions.
+
+For both scenarios, you can choose to either bring your own AI model API keys from providers, or subscribe to [Pulse Editor's plans (Coming Soon)](https://pulse-editor.com/pricing) to use our managed AI services.
+
+:::info
+You can also choose not to set up AI if you do not need to use Pulse Editor Creative AI and installed extensions do not call AI models. There are still many non-AI functions from all kinds of extensions that might be helpful for your project. Jump to [next step](/docs/guide/quick-start/how-to-use-extensions) to get started using extensions right away.
+:::
+
+Before proceeding, make sure you have installed Pulse Editor on your desired platform by following [installation guide](/docs/guide/installation/). You can start configuring Pulse Editor's AI settings on your device with the following options to fully unlock the power of Pulse Editor AI.
+
+## Bring your own AI API keys
+
+1. Open Pulse Editor on your device.
+2. Go to settings.
+3. Scroll to AI settings section, and find the modality that you need.
+E.g. you need to configure LLM settings if you need to run LLM agents.
+4. Choose provider, model name, and other settings needed for that particular provider/model.
+
+:::warning
+đźš§ There are only limited providers and models that we support at this moment. In the future, we plan to enable more providers and arbitrary models from that provider.
+:::
+
+## Use Pulse Editor AI credits subscription (WIP)
diff --git a/docs/docs/intro.md b/docs/docs/intro.md
deleted file mode 100644
index 45e8604..0000000
--- a/docs/docs/intro.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-sidebar_position: 1
----
-
-# Tutorial Intro
-
-Let's discover **Docusaurus in less than 5 minutes**.
-
-## Getting Started
-
-Get started by **creating a new site**.
-
-Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**.
-
-### What you'll need
-
-- [Node.js](https://nodejs.org/en/download/) version 18.0 or above:
- - When installing Node.js, you are recommended to check all checkboxes related to dependencies.
-
-## Generate a new site
-
-Generate a new Docusaurus site using the **classic template**.
-
-The classic template will automatically be added to your project after you run the command:
-
-```bash
-npm init docusaurus@latest my-website classic
-```
-
-You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor.
-
-The command also installs all necessary dependencies you need to run Docusaurus.
-
-## Start your site
-
-Run the development server:
-
-```bash
-cd my-website
-npm run start
-```
-
-The `cd` command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there.
-
-The `npm run start` command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/.
-
-Open `docs/intro.md` (this page) and edit some lines: the site **reloads automatically** and displays your changes.
diff --git a/docs/docs/tutorial-basics/_category_.json b/docs/docs/tutorial-basics/_category_.json
deleted file mode 100644
index 2e6db55..0000000
--- a/docs/docs/tutorial-basics/_category_.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "label": "Tutorial - Basics",
- "position": 2,
- "link": {
- "type": "generated-index",
- "description": "5 minutes to learn the most important Docusaurus concepts."
- }
-}
diff --git a/docs/docs/tutorial-basics/congratulations.md b/docs/docs/tutorial-basics/congratulations.md
deleted file mode 100644
index 04771a0..0000000
--- a/docs/docs/tutorial-basics/congratulations.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-sidebar_position: 6
----
-
-# Congratulations!
-
-You have just learned the **basics of Docusaurus** and made some changes to the **initial template**.
-
-Docusaurus has **much more to offer**!
-
-Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**.
-
-Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610)
-
-## What's next?
-
-- Read the [official documentation](https://docusaurus.io/)
-- Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config)
-- Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration)
-- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout)
-- Add a [search bar](https://docusaurus.io/docs/search)
-- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase)
-- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support)
diff --git a/docs/docs/tutorial-basics/create-a-blog-post.md b/docs/docs/tutorial-basics/create-a-blog-post.md
deleted file mode 100644
index 550ae17..0000000
--- a/docs/docs/tutorial-basics/create-a-blog-post.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-sidebar_position: 3
----
-
-# Create a Blog Post
-
-Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed...
-
-## Create your first Post
-
-Create a file at `blog/2021-02-28-greetings.md`:
-
-```md title="blog/2021-02-28-greetings.md"
----
-slug: greetings
-title: Greetings!
-authors:
- - name: Joel Marcey
- title: Co-creator of Docusaurus 1
- url: https://github.com/JoelMarcey
- image_url: https://github.com/JoelMarcey.png
- - name: Sébastien Lorber
- title: Docusaurus maintainer
- url: https://sebastienlorber.com
- image_url: https://github.com/slorber.png
-tags: [greetings]
----
-
-Congratulations, you have made your first post!
-
-Feel free to play around and edit this post as much as you like.
-```
-
-A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings).
diff --git a/docs/docs/tutorial-basics/create-a-document.md b/docs/docs/tutorial-basics/create-a-document.md
deleted file mode 100644
index c22fe29..0000000
--- a/docs/docs/tutorial-basics/create-a-document.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-sidebar_position: 2
----
-
-# Create a Document
-
-Documents are **groups of pages** connected through:
-
-- a **sidebar**
-- **previous/next navigation**
-- **versioning**
-
-## Create your first Doc
-
-Create a Markdown file at `docs/hello.md`:
-
-```md title="docs/hello.md"
-# Hello
-
-This is my **first Docusaurus document**!
-```
-
-A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello).
-
-## Configure the Sidebar
-
-Docusaurus automatically **creates a sidebar** from the `docs` folder.
-
-Add metadata to customize the sidebar label and position:
-
-```md title="docs/hello.md" {1-4}
----
-sidebar_label: 'Hi!'
-sidebar_position: 3
----
-
-# Hello
-
-This is my **first Docusaurus document**!
-```
-
-It is also possible to create your sidebar explicitly in `sidebars.js`:
-
-```js title="sidebars.js"
-export default {
- tutorialSidebar: [
- 'intro',
- // highlight-next-line
- 'hello',
- {
- type: 'category',
- label: 'Tutorial',
- items: ['tutorial-basics/create-a-document'],
- },
- ],
-};
-```
diff --git a/docs/docs/tutorial-basics/create-a-page.md b/docs/docs/tutorial-basics/create-a-page.md
deleted file mode 100644
index 20e2ac3..0000000
--- a/docs/docs/tutorial-basics/create-a-page.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-sidebar_position: 1
----
-
-# Create a Page
-
-Add **Markdown or React** files to `src/pages` to create a **standalone page**:
-
-- `src/pages/index.js` → `localhost:3000/`
-- `src/pages/foo.md` → `localhost:3000/foo`
-- `src/pages/foo/bar.js` → `localhost:3000/foo/bar`
-
-## Create your first React Page
-
-Create a file at `src/pages/my-react-page.js`:
-
-```jsx title="src/pages/my-react-page.js"
-import React from 'react';
-import Layout from '@theme/Layout';
-
-export default function MyReactPage() {
- return (
-
- My React page
- This is a React page
-
- );
-}
-```
-
-A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page).
-
-## Create your first Markdown Page
-
-Create a file at `src/pages/my-markdown-page.md`:
-
-```mdx title="src/pages/my-markdown-page.md"
-# My Markdown page
-
-This is a Markdown page
-```
-
-A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page).
diff --git a/docs/docs/tutorial-basics/deploy-your-site.md b/docs/docs/tutorial-basics/deploy-your-site.md
deleted file mode 100644
index 1c50ee0..0000000
--- a/docs/docs/tutorial-basics/deploy-your-site.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-sidebar_position: 5
----
-
-# Deploy your site
-
-Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**).
-
-It builds your site as simple **static HTML, JavaScript and CSS files**.
-
-## Build your site
-
-Build your site **for production**:
-
-```bash
-npm run build
-```
-
-The static files are generated in the `build` folder.
-
-## Deploy your site
-
-Test your production build locally:
-
-```bash
-npm run serve
-```
-
-The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/).
-
-You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**).
diff --git a/docs/docs/tutorial-basics/markdown-features.mdx b/docs/docs/tutorial-basics/markdown-features.mdx
deleted file mode 100644
index 35e0082..0000000
--- a/docs/docs/tutorial-basics/markdown-features.mdx
+++ /dev/null
@@ -1,152 +0,0 @@
----
-sidebar_position: 4
----
-
-# Markdown Features
-
-Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**.
-
-## Front Matter
-
-Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/):
-
-```text title="my-doc.md"
-// highlight-start
----
-id: my-doc-id
-title: My document title
-description: My document description
-slug: /my-custom-url
----
-// highlight-end
-
-## Markdown heading
-
-Markdown text with [links](./hello.md)
-```
-
-## Links
-
-Regular Markdown links are supported, using url paths or relative file paths.
-
-```md
-Let's see how to [Create a page](/create-a-page).
-```
-
-```md
-Let's see how to [Create a page](./create-a-page.md).
-```
-
-**Result:** Let's see how to [Create a page](./create-a-page.md).
-
-## Images
-
-Regular Markdown images are supported.
-
-You can use absolute paths to reference images in the static directory (`static/img/docusaurus.png`):
-
-```md
-
-```
-
-
-
-You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:
-
-```md
-
-```
-
-## Code Blocks
-
-Markdown code blocks are supported with Syntax highlighting.
-
-````md
-```jsx title="src/components/HelloDocusaurus.js"
-function HelloDocusaurus() {
- return Hello, Docusaurus!
;
-}
-```
-````
-
-```jsx title="src/components/HelloDocusaurus.js"
-function HelloDocusaurus() {
- return Hello, Docusaurus!
;
-}
-```
-
-## Admonitions
-
-Docusaurus has a special syntax to create admonitions and callouts:
-
-```md
-:::tip My tip
-
-Use this awesome feature option
-
-:::
-
-:::danger Take care
-
-This action is dangerous
-
-:::
-```
-
-:::tip My tip
-
-Use this awesome feature option
-
-:::
-
-:::danger Take care
-
-This action is dangerous
-
-:::
-
-## MDX and React Components
-
-[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**:
-
-```jsx
-export const Highlight = ({children, color}) => (
- {
- alert(`You clicked the color ${color} with label ${children}`)
- }}>
- {children}
-
-);
-
-This is Docusaurus green !
-
-This is Facebook blue !
-```
-
-export const Highlight = ({children, color}) => (
- {
- alert(`You clicked the color ${color} with label ${children}`);
- }}>
- {children}
-
-);
-
-This is Docusaurus green !
-
-This is Facebook blue !
diff --git a/docs/docs/tutorial-extras/_category_.json b/docs/docs/tutorial-extras/_category_.json
deleted file mode 100644
index a8ffcc1..0000000
--- a/docs/docs/tutorial-extras/_category_.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "label": "Tutorial - Extras",
- "position": 3,
- "link": {
- "type": "generated-index"
- }
-}
diff --git a/docs/docs/tutorial-extras/img/docsVersionDropdown.png b/docs/docs/tutorial-extras/img/docsVersionDropdown.png
deleted file mode 100644
index 97e4164618b5f8beda34cfa699720aba0ad2e342..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 25427
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 |