Ко мне обращаются мои подруги с просьбой срочно спасти проект. Постановка задачи была такая что другие разработчики почти доделали, остались небольшие "правочки" без которых заказчик не хочет принимать работу, а старые подрядчики слились и не отвечают.

Хоть я и ненавжиу такие проекты, но во-первых это подруги, во-вторых мне предложили оплату в районе тысячи рублей в минуту =) И я согласилась.
Смысл проекта был в следующем: Синара Банк делали к новому году себе проект конструктор открыточек, что одни сотрудники могут создавать и посылать другим сотрудникам эти открытки. Позже выяснилось что они сначала хотели это сделать ко дню рождения банка, которое осенью, но подрядчики подвели по срокам, и я по факту спасала проект уже при двойных горящих сраках.
Функционал следующий: пользователь конструирует открытку на лендинге: выбирает шрифт, цвета, картинку-подложку, сверху ещё картинку, вводит тексты, и получается открытка. Эту открытку он может либо отправить по whatsapp либо по почте. А вот собственно скриншот функционала справа:
Итак, спустя 2 дня я внезапно обнаруживаю что там вообще нихуя не работает! Т.е. оно работает на первый взгляд, но если чуть внимательней посмотреть то это очевидно. То что конструировалось на лендинге, всё то что мы выбираем, оно не отображалось на итоговой открытке которая приходила получателю! Там всегда были одинаковые шрифты, всегда был жёлтый текст, и всё это ехало по размерам.

А заказчик из всего этого заметил лишь только что где-то не хватает переноса строки в пункте 5:

Они просто не меняли в этой открытке никакие шрифты а просто тестили на дефолтных настройках (видимо там этот жёлтый цвет, хехе), под который и был подогнан бекенд.

А родовая травма их архитектуры заключалась в том что они дважды генерировали открытку, совершенно разными методами. Одну на фронте, другую на бекенде через путухон и какие-то кривые библиотеки. Они передавали с фронта на бек все выбранные параметры а там снова пытались всё это обратно собрать. Представляю сколько они времени потратили на то чтобы сделать эту хуйню, и как они выгорели когда увидели что ничего не получается, что всё уродски и исправить это невозможно.
Но тут я взялась за дело. И я сразу поняла что надо просто сделать скриншот на фронте и отправить на бек готовую картинку, сохранить её там, а весь код по генерации удалить.
За несколько минут я нашла библиотеку:

И пошла к верстальщику с задачей:


На следующий день в 12:30 дня он начал работу. Через полтора часа уже было готово:

Я ему отправила 20 тысяч за 2 часа. Потому что хорошая работа (и неважно сколько времени затрачено) должна быть хорошо оплачена.
Ну и вот результат:

Сравнение что человек видит в браузере и какая открытка приходит на почту (они обрезаны):


А вот собственно и ссылка на этот сайт, она до сих пор работает: https://happy.sinara.team/
Перенос хостинга
Ну и бонусная история с этим же заказчиком:

Большинство разработчиков, получив такое задание, пойдут и начнут деплоить проект на новый сервер, в голову им не придёт что у хостинга есть оказывается какой-то скрытый функционал, о котором можно узнать в поддержке. Это что-то за рамками зоны конфморта.