Я выбрал Angular не потому, что он крутой. Я выбрал его, потому что устал: устал гнаться за хайпом, устал переписывать фронтенд каждые 18 месяцев, устал от 17 разных мнений о том, как сделать одно и то же.
“Лучший фреймворк — тот, о котором вы забываете, что используете.”
Три месяца назад у меня был рабочий бэкенд, видение продукта и пустой шаблон create-react-app. Все говорили мне использовать React, Vue, Svelte, Next.js. Только 1 команда из опрошенных строила то, что мне было нужно.
Я не создавал свой фреймворк. Я использовал Angular. И это было самое скучное, правильное техническое решение, которое я принял в этом проекте.
Критерий принятия решений для соло-основателей
Я не оптимизировал для developer experience, звёзд на GitHub или скорости DOM. Я оптимизировал для четырёх вещей:
- Я один человек. Никаких 100 мелких решений каждый день.
- Оно должно работать точно так же через 3 года. Никаких переписываний. Никакого коллапса экосистемы.
- AI-ассистенты должны писать правильный код с первого раза.
- Ровно один очевидный способ делать всё.
💡 Инсайт 1: Большинство сравнений фреймворков измеряют неправильные метрики. Для соло-основателей скорость принятия решений и стабильность важны в 10 раз больше, чем производительность или звёзды на GitHub.
Почему все остальные фреймворки мне не подошли
React: Отлично для команд, ужасно для одного человека
React идеален для команд из 10 фронтенд-инженеров, которым нужна гибкость. Но для одного человека? Каждый раз, когда я открываю React-кодбазу в 2026 году, мне нужно ответить на 12 вопросов, прежде чем написать хоть строку кода: клиентские или серверные компоненты? TanStack Query или SWR? Zod или Yup? Zustand или Jotai? App Router или Pages Router?
У каждого выбора есть 1000 горячих мнений, и каждое из них устареет через 18 месяцев. У меня нет на это времени. Я хочу строить свой продукт.
Vue: Хорошо, пока не становится плохо
Vue хороший. Документация хорошая. Но у него та же проблема: 17 разных способов сделать всё (Options API, Composition API, <script setup>, Pinia, Vuex). Хуже того, экосистема крошечная — большинство библиотек заброшены или еле поддерживаются. И обновления версий всё ещё ломают вещи.
Svelte / SvelteKit: Отлично, пока не упрёшься в стену
Я хотел любить Svelte. Он быстрый, умный, чистый. Но каждый раз, когда я строю что-то нетривиальное, я упираюсь в стену: отсутствующая фича, неисправленный баг, или все говорят “просто жди Svelte 6”. Я не хочу ждать. Я хочу строить сейчас.
💡 Инсайт 2: Циклы хайпа фреймворков созданы для создателей контента, не для строителей. Самые продуктивные инструменты обычно те, о которых никто не твитит.
Почему Angular действительно работает для соло-разработчиков
Все высмеивают Angular. Он для предприятий. Он скучный. Это Google. Именно поэтому я его и выбрал.
“Angular не решает твои самые сложные проблемы. Он не даёт им возникнуть в первую очередь.”
Самая большая победа — это отсутствие решений:
- Формы: Никаких npm install, никаких сторонних библиотек. Signal Forms встроены, типизированы и полностью реактивны.
productModel = signal({ name: '', price: 0, description: '' }); productForm = form(this.productModel, { validators: { name: [Validators.required], price: [Validators.min(0), Validators.max(10000)] } }); - HTTP: Никакого Axios, никаких перехватчиков для написания.
HttpClientпросто работает.private http = inject(HttpClient); private entityService = inject(EntityService); entity = signal<BusinessEntity | null>(null); loadEntity(id: string) { this.http.get<BusinessEntity>(`/api/entities/${id}`).subscribe(entity => { this.entity.set(entity); // Предзаполнение формы напрямую из ответа API this.productModel.set(entity); }); } async onSubmit() { if (this.productForm().invalid) return; await this.entityService.save(this.productModel()); } - Маршрутизация: Никакой магии, никаких сюрпризов. Ровно один способ определить маршруты.
const routes: Routes = [ { path: 'entities', component: EntityListComponent }, { path: 'entities/:id', component: EntityDetailComponent } ];
И главное: Claude, GPT и GLM пишут идеальный Angular-код. Никаких умных абстракций, никаких придуманных паттернов. Я могу написать “сделай мне CRUD-таблицу с сортировкой, фильтрацией и пагинацией” и получить рабочий код за 30 секунд. Никаких правок не требуется.
Хорошие стороны
-
Внедрение зависимостей: Все жалуются, что оно слишком сложное. Это не так. Используйте
inject()для сервисов, и оно просто работает — без контекста, без проброса пропсов, типизировано, тестируемо. Я потратил 3 дня в прошлом году на отладку React Context-провайдера, который обновлял только половину компонентов. В Angular у меня такой проблемы никогда не было.private entityService = inject(EntityService); -
Signals: Angular 17+ signals идеальны. Никаких замыканий со stale-данными, никаких странных подводных камней. Они просто обновляются, когда должны. Используйте
signal()для локального состояния,computed()для производного состояния и всегда предпочитайтеupdate()илиset()вместоmutate(). -
Современный Angular: Все компоненты по умолчанию standalone, не нужно устанавливать
standalone: true. Используйтеhost-bindings в декораторах компонентов вместо@HostBinding/@HostListener. Используйте функцииinput()/output()вместо декораторов. ИспользуйтеChangeDetectionStrategy.OnPushдля всех компонентов. -
Шаблоны: Используйте нативный контроль потока
@if,@for,@switchвместо структурных директив. Используйтеclass/stylebindings вместоngClass/ngStyle. Signal Forms чисто интегрируются с шаблонами:<input type="text" [formField]="productForm.name" /> <input type="number" [formField]="productForm.price" /> <textarea [formField]="productForm.description" /> @if (productForm.name().invalid && productForm.name().touched) { <p class="error">Name is required</p> } -
Оптимизировано: Используйте
NgOptimizedImageдля изображений, реализуйте ленивую загрузку для фича-маршрутов.
Плохие стороны
- Кастомные элементы управления формами:
ControlValueAccessor— это безумие. Я потратил 3 дня на date picker, который должен был занять 2 часа. Но написав это один раз, я больше никогда о нём не думал. - SSR: Сейчас хороший, но настройка заняла 2 дня борьбы с устаревшей документацией.
💡 Инсайт 3: Стоимость изучения Angular один раз бесконечно ниже, чем стоимость переизучения лучших практик React-экосистемы каждые 18 месяцев.
Реальные компромиссы, о которых никто не говорит
Это не пост “все должны использовать Angular”. Это то, что работает для меня.
Что я теряю:
- Социальный капитал. Все его ненавидят. Это не техническая проблема — это проблема шума в социальных сетях. Вас будут высмеивать в Twitter. Половина фронтенд-сообщества назовёт вас бумером. Никто не будет писать крутые посты о вашем стеке.
- Больший начальный бандл (~100кб вместо 10кб). Никто не замечает для B2B.
- Меньше гибкости. Делайте вещи по-angularному, или будет плохо.
- Случайные “повреждения мозга” Google: случайные новые фичи, которые тихо устаревают.
Что я не теряю: сон. Я не просыпаюсь от уведомлений об устаревании фреймворка. Я не трачу выходные на рефакторинг. Я не учу 3 новых паттерна каждый месяц.
Angular двигается медленно. Это фича, а не баг.
Вердикт для строителей, не для твиттеров
Для меня, прямо сейчас, это идеальный фронтенд-фреймворк.
Я могу построить целый CRUD-интерфейс с валидацией, обработкой ошибок и маршрутизацией за 2 часа. Не за 2 дня. AI пишет идеальный код для него. Он будет работать точно так же в 2029 году.
Этот фреймворк не оптимизирован для 100 разработчиков, спорящих о лучшем способе написать кнопку. Он оптимизирован для одного разработчика, которому нужно запустить 5 фич на этой неделе.
Именно это и нужно QuotyAI. Мне не нужен самый быстрый или крутой фреймворк. Мне нужен фреймворк, который уходит с дороги и позволяет мне строить.
Если вы соло-основатель, устали гоняться за хайпом, перестаньте думать слишком много. Используйте Angular. Вы сможете переписать потом — если будете достаточно успешны, чтобы это потребовалось.
Часто задаваемые вопросы
Почему стоит выбрать Angular как соло-основатель?
Angular устраняет усталость от принятия решений благодаря встроенным решениям для форм, HTTP, маршрутизации и внедрения зависимостей. Он остаётся стабильным годами, не требует постоянного слежения за экосистемой, и AI-ассистенты пишут идеальный, идиоматический код без правок. Документация Angular исчерпывающая и поддерживается, с нулевым количеством битых ссылок или устаревших примеров.
Каковы самые большие недостатки Angular?
Все его ненавидят. Это не техническая проблема — это проблема шума в социальных сетях. Вас будут высмеивать в Twitter. Половина фронтенд-сообщества назовёт вас бумером. Никто не будет писать крутые посты о вашем стеке. Фактические технические компромиссы незначительны: немного больший размер бандла (~100кб), более крутая кривая обучения и случайные “повреждения мозга” Google с экспериментальными фичами. Политика устаревания Angular гарантирует как минимум 6 месяцев уведомления о критических изменениях.
Может ли AI писать хороший Angular-код?
Да. Claude, GPT и GLM пишут идеальный идиоматический Angular-код с первого раза, потому что в нём есть один очевидный способ делать всё, никаких умных абстракций и стабильная документированная поверхность API, которая принципиально не менялась годами. Эта предсказуемость делает его идеальным для workflows разработки с AI-ассистентами.
Angular всё ещё актуален в 2026 году?
Безусловно. Angular питает enterprise-приложения в Google, Microsoft и тысячах компаний по всему миру. Roadmap Angular фокусируется на стабильности, улучшениях производительности и developer experience вместо критических изменений.