6 миллионов фейковых звёзд на GitHub — Исследователи из CMU проанализировали 20 терабайт метаданных GitHub и нашли ~6 млн фейковых звёзд на 18 617 репозиториях от 301 000 аккаунтов. Stars продаются открыто — от $0.03 до $0.85 за штуку, прямо через Telegram. Основной юзкейс — продвижение malware-репозиториев через фейковую социальную доказательность.
Проекты
Portless — стабильные .localhost URL вместо портов — Инструмент от Vercel Labs заменяет localhost:3000 на myapp.localhost. На первом запуске генерирует локальный CA для HTTPS с HTTP/2, биндит порт 443 (с auto-elevate на macOS/Linux). Прокси стартует автоматически, назначает порт из диапазона 4000-4999 через PORT, настраивает rewrite для TLD в /etc/hosts. Работает с Next.js, Nuxt, Express из коробки; для Vite и Astro автоинжектит --port. В monorepo один portless.json покрывает все workspace-пакеты. Pre-1.0.
Статьи, мнения, туториалы
JS/TS
Vite выходит из Vitest — В Vitest завелась дискуссия о разделении с Vite. Vitest работает над собственным transform pipeline и пользовательский комьюнити запрашивает поддержку альтернативных bundlers — Rolldown, Rspack. Два проекта, которые долго шли вместе, могут пойти разными путями: Vitest получит независимость от Vite-specific решений.
CSS
Animating Focus with View Transitions — Cassidy Williams показывает как сделать «летающее» фокус-кольцо при Tab-навигации через View Transitions API — анимированное перемещение outline между элементами. WebAIM уже используют этот паттерн на своём сайте accessibility. Паттерн уважает prefers-reduced-motion и автор честно отмечает, что это скорее эстетический эксперимент, чем a11y-необходимость.
sizes=“auto” для адаптивных изображений — Мэт Маркиз, бывший председатель Responsive Image Community Group, рассказывает историю борьбы с атрибутом sizes за 10 лет. sizes="auto" вместе с loading="lazy" передаёт задачу выбора подходящего изображения браузеру — больше не нужно вручную описывать медиа-запросы и layout-размеры. Браузер сам определяет размер на основе layout и lazy-loading контекста.