Serverless Horrors 🔥 Горячее 💬 Длинная дискуссия
Сборник коротких серверлес-кошмаров
- $1189 – Webflow снял за месяц вместо $69.
- $100 000 – DoS на игровом сайте → счёт за Firebase за сутки.
- $738 – Vercel Pro + лимит $120 ≠ защита от «сюрприза».
- $70 000 – Проснулся с таким счётом за Firebase при тарифе $50.
- $22 640 – BigQuery на публичных данных.
- $250/мес – 9 тыс. просмотров в Framer.
- $1274 – AI Devin случайно устроил ддос в PostHog.
- $530 – Платный PostHog после нулевого периода.
- $384 – Документация на Mintlify.
- $103 – AWS Free Tier ловушка.
- $96 281 – Vercel: «я просто молчу».
- $120 000 – Cloudflare выключает сайт, требуя деньги за сутки.
- $1301 – Пустой приватный S3 + ддос.
- $11 000 – Mailgun во время атаки.
- $104 500 – Письмо от Netlify «переплата».
- $23 000 – Спам-атака на EchoFox в Vercel.
- $3000 – Тестовый деплой в Vercel.
- $620 – Sitemap.txt сожрал трафик.
- $72 000 – Тест Firebase + Cloud Run чуть не разорил.
Хочешь поделиться своим счётом-ужасом — пиши в твиттере или PR на GitHub.
Комментарии (406)
- Пользователи делятся историями о «серверлес-ужасах» — внезапных счетах за десятки и сотни тысяч долларов из-за DDoS, ошибок в конфигурации или забытого ресурса.
- Критика сосредоточена не на технологии serverless, а на модели оплаты «плати за использование» без жёстких потолков: бюджет — лишь уведомление, а не отключение.
- Многие считают, что провайдеры могли бы автоматически отключать сервис при превышении лимита, но не делают этого, теряя деньги на «ошибках» новичков.
- Участники советуют: ставить rate-limit, использовать VPS с фиксированной ценой, поднимать bare-metal или хотя бы включать billing-alerts и «пауz-лимиты» вроде Vercel.
- Поддержка AWS/GCP/Azure часто прощает счета после публичных твитов, но это выживший эффект: официальной политики нет, и никто не гарантирует прощение.
Next.js is infuriating 🔥 Горячее 💬 Длинная дискуссия
Next.js выводит из себя
Наконец-то написал пост: злость лучший мотиватор.
В $COMPANY упал сервис на Next.js, а логов в проде нет. Задача — добавить логирование.
Middleware
Дока обещает: «Middleware выполняется до рендера, удобно для логов».
Пробуем pino + AsyncLocalStorage:
// middleware.ts
export async function middleware(req: NextRequest) {
LoggerStorage.enterWith(requestLogger());
logger()?.debug({ url: req.url }, "start");
return NextResponse.next();
}
Запускаем — логи летят в браузер. Почему? Runtime по умолчанию edge
. Меняем на nodejs
— в новом проекте работает, в боевом нет.
Страницы и layouts
Пишем в компоненте:
logger()?.info("from page");
Тишина. logger()
возвращает null
: рендер и middleware живут в разных async-контекстах.
Решение
Передаём requestId
через заголовки:
// middleware.ts
const id = crypto.randomUUID();
loggerInstance.child({ requestId: id }).debug("start");
return NextResponse.next({ headers: { "x-request-id": id } });
// page.tsx
const id = headers().get("x-request-id");
loggerInstance.child({ requestId: id }).info("from page");
Итог: чтобы просто логировать, нужно городить костыли через заголовки.
Комментарии (445)
- Пользователи жалуются на игнорирование сотен старых issue, перегруженность абстракциями и постоянные «канареечные» решения, которые не доходят до продакшена.
- Сообщество считает Next.js «самой худшей» технологией: сложно понять, где выполняется код, нельзя цепочкой middleware, а апи-шлюзы выглядят «как будто их писали выпускники буткемпа».
- Разработчики предлагают уходить на Remix, React Router v7, Nuxt, SolidStart, Deno Fresh или даже «чистый HTML/CSS» ради простоты и контроля.
- Представитель Vercel признаёт DX-проблемы и обещает улучшения, но многие уже мигрируют на Vite или Django/Rails/Phoenix.