Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions .github/workflows/jekyll-gh-pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Sample workflow for building and deploying a Jekyll site to GitHub Pages
name: Deploy Jekyll with GitHub Pages dependencies preinstalled

on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./
destination: ./_site
- name: Upload artifact
uses: actions/upload-pages-artifact@v3

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
65 changes: 65 additions & 0 deletions .github/workflows/jekyll.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

# Sample workflow for building and deploying a Jekyll site to GitHub Pages
name: Deploy Jekyll site to Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Ruby
# https://github.com/ruby/setup-ruby/releases/tag/v1.207.0
uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4
with:
ruby-version: '3.1' # Not needed with a .ruby-version file
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
cache-version: 0 # Increment this number if you need to re-download cached gems
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Build with Jekyll
# Outputs to the './_site' directory by default
run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
env:
JEKYLL_ENV: production
- name: Upload artifact
# Automatically uploads an artifact from the './_site' directory by default
uses: actions/upload-pages-artifact@v3

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
110 changes: 110 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,113 @@ Bolt.new supports most popular JavaScript frameworks and libraries. If it runs o

**How can I add make sure my framework/project works well in bolt?**
We are excited to work with the JavaScript ecosystem to improve functionality in Bolt. Reach out to us via [hello@stackblitz.com](mailto:hello@stackblitz.com) to discuss how we can partner!
# [![Bolt Open Source Codebase](./public/social_preview_index.jpg)](https://bolt.new)

Добро пожаловать в открытый исходный код **Bolt**! Этот репозиторий содержит простой пример приложения, использующего основные компоненты из bolt.new, который поможет вам начать создавать **инструменты разработки программного обеспечения на основе ИИ** с использованием **WebContainer API** от StackBlitz.

### Почему стоит использовать Bolt + WebContainer API для разработки приложений?

Используя Bolt + WebContainer API, вы можете создавать браузерные приложения, позволяющие пользователям **запускать, редактировать и развертывать** полнофункциональные веб-приложения непосредственно в браузере, без необходимости использования виртуальных машин. С помощью WebContainer API вы можете создавать приложения, предоставляющие ИИ прямой доступ и полный контроль над **сервером Node.js**, **файловой системой**, **менеджером пакетов** и **терминалом разработчика** прямо во вкладке браузера пользователя. Эта мощная комбинация позволяет создать новый класс инструментов разработки, поддерживающих все основные библиотеки JavaScript и пакеты Node сразу после установки, без удаленных сред или локальной установки.

### В чём разница между Bolt (этот репозиторий) и [Bolt.new](https://bolt.new)?

- **Bolt.new**: Это **коммерческий продукт** от StackBlitz — размещенный в браузере инструмент для разработки ИИ, позволяющий пользователям запускать, редактировать и развертывать полнофункциональные веб-приложения непосредственно в браузере. Он создан на основе [репозитория с открытым исходным кодом Bolt](https://github.com/stackblitz/bolt.new) и работает на базе **API WebContainer** от StackBlitz.

- **Bolt (Этот репозиторий)**: Этот репозиторий с открытым исходным кодом предоставляет основные компоненты, используемые для создания **Bolt.new**. В репозитории содержится пользовательский интерфейс Bolt, а также серверные компоненты, созданные с помощью [Remix Run](https://remix.run/). Используя этот репозиторий и **WebContainer API** от StackBlitz, вы можете создавать собственные инструменты разработки на основе ИИ и полнофункциональные приложения, работающие полностью в браузере.

# Начните создавать с помощью Bolt

Bolt объединяет возможности ИИ с изолированными средами разработки, создавая среду для совместной работы, где ассистент и программист могут разрабатывать код вместе. Bolt использует [WebContainer API](https://webcontainers.io/api) с [Claude Sonnet 3.5](https://www.anthropic.com/news/claude-3-5-sonnet) с помощью [Remix](https://remix.run/) и [AI SDK](https://sdk.vercel.ai/).

### API веб-контейнера

Bolt использует [WebContainers](https://webcontainers.io/) для запуска сгенерированного кода в браузере. WebContainers предоставляют Bolt полнофункциональную изолированную среду с помощью [WebContainer API](https://webcontainers.io/api). WebContainers запускают полнофункциональные приложения непосредственно в браузере без затрат и проблем с безопасностью, связанных с облачными агентами ИИ. WebContainers интерактивны и редактируемы, что позволяет ИИ Bolt запускать код и понимать любые изменения, внесенные пользователем.

API WebContainer (https://webcontainers.io) бесплатен для личного использования и использования в проектах с открытым исходным кодом. Если вы разрабатываете приложение для коммерческого использования, вы можете узнать больше о ценах на коммерческое использование API WebContainer здесь (https://stackblitz.com/pricing#webcontainer-api).

### Приложение Remix

Bolt создан с помощью [Remix](https://remix.run/) и
Развернуто с использованием [CloudFlare Pages](https://pages.cloudflare.com/) и
[Работники CloudFlare](https://workers.cloudflare.com/).

### Интеграция SDK для ИИ

Bolt использует [AI SDK](https://github.com/vercel/ai) для интеграции с ИИ.
модели. В настоящее время Bolt поддерживает использование Claude Sonnet 3.5 от Anthropic.
Для использования с Bolt вы можете получить ключ API в [консоли Anthropic API](https://console.anthropic.com/).
Посмотрите, как [Bolt использует AI SDK](https://github.com/stackblitz/bolt.new/tree/main/app/lib/.server/llm)

## Предварительные условия

Прежде чем начать, убедитесь, что у вас установлено следующее:

- Node.js (v20.15.1)
- pnpm (v9.4.0)

## Настраивать

1. Клонируйте репозиторий (если вы еще этого не сделали):

```bash
git clone https://github.com/stackblitz/bolt.new.git
```

2. Установите зависимости:

```bash
pnpm install
```

3. Создайте файл `.env.local` в корневом каталоге и добавьте в него свой ключ API Anthropic:

```
ANTHROPIC_API_KEY=XXX
```

При желании можно установить уровень отладки:

```
VITE_LOG_LEVEL=debug
```

**Важно**: Никогда не добавляйте файл `.env.local` в систему контроля версий. Он уже включен в файл `.gitignore`.

## Доступные скрипты

- `pnpm run dev`: Запускает сервер разработки.
- `pnpm run build`: Выполняет сборку проекта.
- `pnpm run start`: Запускает собранное приложение локально с помощью Wrangler Pages. Этот скрипт использует `bindings.sh` для настройки необходимых привязок, чтобы вам не приходилось дублировать переменные окружения.
- `pnpm run preview`: Собирает проект, а затем запускает его локально, что полезно для тестирования производственной сборки. Обратите внимание, что потоковая передача HTTP в настоящее время работает некорректно с `wrangler pages dev`.
- `pnpm test`: Запускает набор тестов с помощью Vitest.
- `pnpm run typecheck`: Выполняет проверку типов TypeScript.
- `pnpm run typegen`: Генерирует типы TypeScript с помощью Wrangler.
- `pnpm run deploy`: Собирает проект и развертывает его на Cloudflare Pages.

## Разработка

Для запуска сервера разработки:

```bash
pnpm run dev
```

Это запустит сервер разработки Remix Vite.

## Тестирование

Запустите набор тестов с помощью:

```bash
тест pnpm
```

## Развертывание

Для развертывания приложения на Cloudflare Pages:

```bash
pnpm run deploy
```

Убедитесь, что у вас есть необходимые разрешения и Wrangler правильно настроен для вашей учетной записи Cloudflare.
Loading