Деволлим
226 subscribers
92 photos
15 videos
99 links
Привет, я Лёша - стартапер, фулл-стэк разработчик с 15+ годами опыта.

Делюсь тем, что реально помогает - как быстрее делать MVP, как балансировать между качеством, архитектурой и тем, что «работает сейчас».

@devall
Download Telegram
OpenRouter для решения задач

Я уже давно использую OpenRouter как API, но у него есть и чат: openrouter.ai/chat

Бывают задачи, с которыми Cursor (как и любой gpt клиент) справляется не всегда - по разным причинам:
- недостаточно контекстного окна
- нет нужной модели
- медленная скорость работы

В таких случаях отлично подходит OpenRouter: в нём есть множество моделей для разных сфер деятельности, с разным контекстным окном и на любой бюджет.

Для разработки в последнее время доступна бесплатно модель Sonoma с контекстным окном в 2 млн токенов, что must have при большой кодовой базе (есть разные теории о происхождении этой модели - по последним слухам, она от Grok, но подтверждений этому нет)

@devallim
🔥2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
#вайбкодидеи

Забудь о leetcode - я выращиваю еду с помощью Python.

https://store.steampowered.com/app/2060160/The_Farmer_Was_Replaced/

Представьте такую механику, но на three.js где интерпретируется js код (вставьте любой язык), а игрок по пути проходит алгоритмы и учится программированию.

Похожие проекты вроде есть, но в основном 2d и скучные. А тут можно было бы сделать полноценное обучение в формате 3d игры.

@devallim
😎2
#buildinpublic

Работаю над инструментом, который будет конкурировать с screen.studio и для этого понадобился Apple Developer аккаунт - делюсь опытом, как его зарегистрировать без ВНЖ в другой стране.

Что было и что пробовал:
- Белорусская карта + белорусский App Store. Проблема: Apple требует, чтобы доверенный номер был из того же региона (купить белорусский esim нельзя, а виртуальный номер грозит опасностью потерять аккаунт).
- Поменял страну на Россию (пробовал и Грузию) → карта уже не привязывается.

Рабочий вариант оказался только такой:
- Ставим российский стор
- В качестве оплаты используем мобильный телефон (МТС или Билайн; я, например, привязал номер жены)
- Делаем Enroll именно в Apple Developer приложении (через сайт с мобильного счета не оплатить и если уже начал там то нужно писать в поддержку с просьбой отменить enroll)
- Все данные заполняем честно по паспорту
- Ну и отдельный квест был с VPN: важно, чтобы все запросы к Apple шли не с российского ip, иначе регистрация просто не проходит

В итоге - аккаунт получен

Мораль: иногда проще не искать «серые схемы», а аккуратно пройтись по всем требованиям Apple, пусть и с костылями.

@devallim
🤩2🔥1
JSON - это дорого и медленно для LLM

Все привыкли просить у ИИ данные в формате JSON, но мало кто задумывается, что за это приходится платить - буквально. Оказывается, JSON может съедать в два раза больше токенов, чем другие форматы, а ответы на нём приходят в четыре раза медленнее.

Если гонитесь за скоростью и экономией, попробуйте вместо JSON использовать TSV, YAML или даже columnar JSON. Особенно если у вас большой поток данных - разница в цене и времени ощутимая.

@devallim
🤔2
Промпт для IDE

У меня часто бывает так что я вымучиваю у gpt какие то подходы и расскручиваю их до нужного функционала

После чего можно было бы пойти имплементировать их руками, но это уже неэффективный подход

Ведь можно попросить gpt составить prompt для IDE, которая сама сделает всю рутину

@devallim
2
Если нужно быстро и аккуратно освободить место в системе - Cursor в агентском режиме лучшее средство

Похоже ли это на заявку в #вайбкодидеи - клинер с локальной llm моделькой?

@devallim
🔥2
Уверен, многие уже читали разные пересказы статьи “Attention Is All You Need”, вдавались в ретроспективу развития нейронных сетей к текущему дню.

Но если вам всё ещё интересно, хочется пробежаться по верхам ещё раз или вы искали лаконичную статью для родственников - сделал перевод статьи, которая реально заслуживает внимания.

https://telegra.ph/Vnimanie--ehto-vsyo-chto-vam-nuzhno-09-25

@devallim
❤‍🔥3🔥1
«4B-модель может гуглить сама? 😳»

Ollama выпустили Web Search API и дали возможность создавать поисковых агентов прямо из локальной модели - например, qwen3:4b.

Это не просто “интернет как контекст” - это когда модель сама принимает решение: “надо поискать” → делает запрос → подставляет результат в ответ.

Обо всем этом с примерами кода в свежей статье
https://ollama.com/blog/web-search#building-a-search-agent
👏21
Небольшой лайфхак на случай если нужно имплементировать что то размазанное по другому репозиторию

Уже давно должен быть известен repomix.com, но может казаться что загрузить в контекст целый проект неполучится, хотя на деле все решаемо внимательностью и… игнором бесполезных файлов (см скришоты)

⚡️В итоге репа на почти 5 млн токенов превращает в 50к - с этим уже можно работать и вместо copy paste доверить дело LLM

@devallim
🔥21
Есть одна игра, в которую я зависал лет 7 назад - NandGame

По сути это симулятор цифровой логики: начинаешь с базового NAND и шаг за шагом собираешь полноценный компьютер. Сначала простые логические элементы, потом память, процессор - и в итоге на собранном “железе” можно запускать простые программы.

Почему я считаю её must-have для программиста?
Потому что она очень наглядно объясняет, как всё работает под капотом. Когда видишь, что из примитивного NAND реально выстраивается полноценный CPU, по-другому смотришь на код, который пишешь каждый день.

Если бы в школе на информатике вместо “Word и Excel” давали пройти NandGame - многие наконец поняли бы, что компьютеры не магия.

Рекомендую пройти хотя бы пару уровней - это учёба, которая ощущается как игра 🎮
nandgame.com

@devallim
1🔥1
Если вдруг упустили - там в Cursor временно бесплатна моделька на 1млн контекста

@devallim
👀1
Достаточно бесшумно прошли последние обновления в Cursor, хотя за пару месяцев появились интересные и очень полезные фичи:

1. Plan Mode (линк; на скрине)
Фича с вайбом Kiro - и точно должна прописаться в вашем рабочем пайплайне. Агент теперь сам уточняет детали, собирает план и формирует Todo-лист в отдельном UI-табе (с кнопкой Build). Всё можно сохранить в .cursor/plans/ для будущих итераций.

2. Slash-команды (линк)
Это тоже прям must-have. Нажимаешь / и у тебя целая библиотека своих “вымученных” промптов. Всё хранится в .cursor/commands/. (потенциал - огромный, ведь можно делать кастомные цепочки с MCP и системными взаимодействиями в пару нажатий клавишь)

3. Prompt sharing (линк)
Теперь промпты можно шарить через deeplink - мой пример. Отличная возможность для внутренних каталогов или шаринга с командой. Ограничение 8к символов, но не страшно - ведь текст можно хранить где угодно и Cursor подтянет по ссылке web-tool’ом. (через эту историю можно как раз создавать “slash-команды”)

4. Browser integration (линк)
Cursor научился управлять браузером: навигация, клики, ввод текста, скролл страницы, скриншоты, в devtools мониторить консоль и сетевые запросы. Из кейсов звучит классно:
- разумеется дебаг
- автотесты
- генерация кода по скриншоту
- улучшение accessibility

5. Cursor Agent (линк)
Теперь агента можно запускать прямо из консоли. По сути, это те же локальные агенты, что и в IDE (видны в топбаре). При желании агент поднимается даже в GitHub Actions

6. Hooks (линк)
Позволяют вмешиваться в цикл работы агента и настраивать поведение под себя

@devallim
🔥2
Я немного устал от мешанины tailwind-классов и сделал свой пакет - styled-tailwind-variants

Когда используешь tailwindcss после styled-components или emotion, код выглядит как большая мешанина из классов, и очень хочется вынести его в отдельные мини-компоненты (особенно когда дублируется какой-то блок в коде). Для этого есть разные решения: class-variance-authority, tailwind-variants и ряд других, менее популярных. Так же раньше был классный twin.macro, который предоставляет нужный синтаксис и добавляет глубокую компиляцию, но выход tailwindcss@4 сломал всю совместимость. Автор говорит о невозможности перехода на следующую версию без поддержки со стороны tailwind (а они уже почти год отмалчиваются).

В целом, в индустрии, tailwindcss задал некоторый тренд по уходу от CSS-in-JS решений и я отчасти с этим согласен (вместо styled-components я предпочитал linaria - за возможность экстракции CSS во время билда - и старался минимизировать использование props)

Сейчас доступные инструменты для tailwindcss обычно предлагают создание CSS-классов, а не компонентов, которые сразу можно использовать. И я в этом вижу ущерб для DX, с которым решил разобраться - для себя и для тех, кому не безразлична эта тема.

Нехитрым образом, повайбкодя в Cursor с plan mode и доработав руками некоторые моменты, появилась библиотека, которую я теперь сам использую - styled-tailwind-variants.

Глобально это обертка вокруг популярной библиотеки tailwind-variants, но вместо классов на выходе готовые компоненты.

👉 Зову пробовать

@devallim
#buildinpublic #dx
🔥2
Если вам когда-то понадобится простой лендинг, а бюджета нет - начните с блоков с официального сайта TailwindCSS:
tailwindcss.com/plus/ui-blocks/preview

Примеры того, что получается, можно найти здесь (уже за денежку, но, думаю, вы найдёте способ это решить):
tailwindcss.com/plus/ui-blocks/marketing/page-examples/landing-pages

Также можно подобрать другой фон здесь - patterncraft.fun

Ну а для верстки конечно же возьмите styled-tailwind-variants (gpt отлично справится с конвертацией верстки в компоненты)

@devallim
#buildinpublic
2
Type-fest - это как “lodash”, но для типов.

Если вы разрабатываете продукты на TS - рано или поздно сталкиваетесь с вопросом: “почему этого типа нет из коробки?”

Дальше стандартный путь: идёте к GPT/гуглите, собираете свой “утилитарный” тип, радуетесь 5 минут… и забываете, где его сохранили.

Так вот - всё это уже сделали за вас. Есть пакет type-fest, где собрано вообще всё, что когда-либо нужно было в реальных проектах.

Мой топ SetRequired - превращает опциональные поля в обязательные (или наоборот SetOptional)

Советую пробежаться глазами и найти то, чему вы сами можете найти применение. Ну а если не хватает фантазии - все просто, посмотрите как другие люди его применяют

@devallim
#dx
👍3👀1
тест
1
Деплой пет-проектов

Для пет-проектов я давно использую dokploy - простая, но мощная штука для деплоя без боли (о ней вообще можно отдельный гайд писать).

Недавно захотел чуть оптимизировать рутину: под новый проект - агент для нейрокомментинга (собирает посты из каналов, генерит комментарии и шлет мне) - опять пришлось поднимать инфру, настраивать деплой, переменные и прочее.

Решил сделать удобнее:
- создать Cursor команду (о них уже упоминал)
- и использовать Dokploy API через MCP, чтобы одна команда запускала всё - создание проекта, деплой, конфиги.

Но оказалось что официальный mcp у Dokploy живёт своей жизнью - полусырой, почти не поддерживается (успел даже завести пару issues). Стало очевидно, что нужно создавать свой.

Eсли тоже деплоите пет-проекты через dokploy - зову пробовать
👉 github.com/tacticlaunch/dokploy-mcp

P.S. Были еще чуть шире идеи, но время ограничено на эксперименты:
- Сделать репу со всеми командами (в будущем скорее всего создам) и через промпт шаринг передать вам промпт, который бы скачал эту команду в проект
- Сделать хитрую систему поддержки пакета в духе настоящеего e/acc и меня очень впечатляет эта история:
- Настроить change detection на json swagger’а, чтобы мониторились изменения в dokploy api
- Слать запрос на вебхук (допустим в zappier), который бы создавал issue в репе моего dokploy-mcp и добавлял коммент с упоминанием cursor (их агент может в репах работать).
- Собственно агент бы создавал PR, который оставалось бы только проревьювить.


@devallim
#dx
1🔥1