Bolt First Exp

Что можно сказать о bolt.new после 20 часов использования и создания 2 приложений:

  • Удалось сделать простой проект отображения данных из ansible inventory файлов в виде таблицы. После первого же запуска он сделал проект, который работал, показывал все, что нужно, и делал это красиво. 2-3 часа ушло на то, чтобы понять, что я хочу, и реализовать. Сам бы я такое делал 1-2 дня.
  • Средний проект универсального бота для chatops на базе LLM сделать не удалось, хотя у меня есть развернутое ТЗ, и я знаю, как оно должно быть устроено. Bolt постоянно тянуло сделать веб, хотя это вторично. Он порывался писать на js вместо ts. Каждая итерация занимала много времени и стоила дорого. В итоге надоело его мучать.
  • Пока не подходит даже для средних проектов, так как есть очевидные сложности с размером контекста.
  • Bolt практически не интегрирован с их собственной online ide stackblitz, вплоть до того, что код может потеряться.
  • Интерфейс бесконечного чата, по-моему, не лучшая идея, т.к. длина контекста постоянно растет.
  • Иногда приходится бороться с моделью. Например, она постоянно пыталась использовать gpt-4 вместо gpt-4o-mini, хотя я явно это написал. Вообще модель очень своенравная, и ее сложно переубедить.
  • Очень заточено именно на генерацию кода. В ответ на вопросы о том, как сделать что-то, он предлагает генерировать код.
  • Скорость генерации как у современных моделей. Попросил что-то изменить и идешь что-то делать. 1, 2, 3 минуты сидеть и смотреть на генерацию не очень интересно.
  • После каждой модификации приложение пытается запустить приложение, но непонятно с какой именно командой. В итоге в какой-то момент все сломалось, и дальше пришлось запускать сборку руками.
  • Видит логи, но часто не определяет в них ошибки. Приходится подсказывать.
  • Можно быстро откатить изменения, сделанные агентом. Работает отлично!
  • Не генерирует тесты, если не попросить.
  • Не хватает подсветки ошибок прямо в коде. Но это опять же к интеграции с IDE.
  • Гораздо лучше работает с typescript, чем с javascript. Что логично, т.к. для этого нужно меньше контекста.
  • Начинает теряться, если правок много. В какой-то момент статический анализатор нашел сразу 20 ошибок, и на исправление пришлось потратить около 10 генераций.
  • Базового платного аккаунта хватает на весь день, если проект небольшой.

Это следующий уровень после copilot и даже zed. Оно ближе всего к тому, как должны быть устроены IDE в будущем - полноценный ассистент, который пишет код по заданию. Но пока с детскими болячками. Хотелось бы что-то более быстрое, более интегрированное в IDE и более интерактивное. И желательно в моей IDE локально, а не в облаке. Вообще удивительно что Jetbrains до сих пор не сделали ничего подобного, а занимаются всякими мелочами.


After 20 hours of using bolt.new and creating two applications, here are my observations:

  • I successfully created a simple project that displays data from Ansible inventory files in a table format. The initial setup was straightforward, and the project functioned beautifully, meeting all requirements. I spent an additional 2-3 hours refining the result, a task that would have taken me 1-2 days to complete manually.

  • However, I struggled to develop a universal bot for ChatOps based on LLM, despite having a detailed specification and clear structure. Bolt.new persistently focused on web development, which was secondary, and insisted on using JavaScript instead of TypeScript. Each iteration was time-consuming and costly, leading to frustration and eventual abandonment of the project.

  • Currently, bolt.new is not suitable for medium-sized projects due to limitations with context size. It lacks proper integration with its own online IDE, StackBlitz, risking code loss.

  • The infinite chat interface is problematic as it causes the context length to grow excessively. The model often requires persuasion, such as when it defaults to using GPT-4 instead of GPT-4o-mini, despite explicit instructions.

  • Bolt.new is heavily oriented towards code generation. When asked how to perform a task, it typically suggests generating code. The generation speed is comparable to modern models, meaning you often have to wait several minutes for changes.

  • After each modification, the application attempts to run, but the command used is unclear, leading to potential breakdowns that require manual rebuilding.

  • Although it can view logs, it often fails to identify errors without prompting. On the positive side, it allows for quick rollback of changes, which is very effective.

  • Tests are not generated unless specifically requested, and there is no error highlighting directly in the code, highlighting a need for better IDE integration.

  • Bolt.new performs better with TypeScript than JavaScript, which makes sense given the reduced context requirement. However, it struggles with numerous edits, as evidenced by a static analyzer finding 20 errors at once, requiring about 10 generations to resolve.

  • A basic paid account is sufficient for a full day of work on small projects.

Overall, bolt.new represents a step forward from tools like Copilot and Zed, moving towards the ideal of a full-fledged coding assistant. However, it still has significant issues to address. I desire a faster, more integrated, and interactive solution, preferably within my local IDE rather than the cloud. It’s surprising that JetBrains hasn’t developed something similar, instead focusing on less impactful projects.