Запускаю 12 стартапов за 12 месяцев #2: Save Emails from Gmail as PDF - Новости о поисковых системах, SEO и интернет-маркетинге
Интернет и медиа

Запускаю 12 стартапов за 12 месяцев #2: Save Emails from Gmail as PDF

Второй проект, который мы запустили в рамках челленджа — это браузерное расширение для скачивание писем из Gmail в PDF. В этой статье я расскажу про то, как мы нашли идею, разработали продукт и бесплатно привлекли 896 установок за 3 месяца.

Запускаю 12 стартапов за 12 месяцев #2: Save Emails from Gmail as PDF

Привет! Я Антон Георгиев. Работаю Frontend-разработчиком, а после работы делаю свои пет-проекты. Мы с другом решили запустить 12 стартапов за 12 месяцев. Про это пишем в нашем Телеграм-канале «Инди-хакеры: стартапы из 💩 и 🥢».

Эта история про наш 2-й продукт из 12. Весь путь от идеи до запуска мы прошли за 1 месяц. А первых 100 пользователей мы привлекли уже через 2 недели, не потратив ни копейки на маркетинг. Вот результаты за 90 дней жизни продукта Save Emails from Gmail as PDF:

Запускаю 12 стартапов за 12 месяцев #2: Save Emails from Gmail as PDF

Выбор идеи

Идея возникла довольно просто. Мы изучали рынок расширений для Google Chrome, перебирали разные направления, пока не наткнулись на нишу плагинов для Gmail. Заинтересовались, начали глубже копать и нашли компанию CloudHQ, которая делает исключительно расширения для работы с сервисами Google.

Мы нашли все их расширения и отсортировали по самым популярным. Среди топ-5 их расширений был продукт «Save Emails as PDF», у которого было 100 000 пользователей. Это функция сохранения писем и вложений из Gmail в формате PDF. Можно выделить сразу несколько писем, нажать кнопку экспорт и все письма вместе с файлами, картинками, видосиками и документами сохраняются на компьютер.

Я сразу вспомнил личный опыт. Однажды мне нужно было выгрузить около 50 писем, чтобы заверить переписку у нотариуса. Делать это вручную, особенно с вложениями, оказалось неудобно и заняло несколько часов.

Мы проверили спрос по ключевым словам в поиске и изучили обсуждения на Reddit. Оказалось, у многих такая же проблема. Пользователи ищут способы массово сохранять письма из Gmail в PDF.

Запускаю 12 стартапов за 12 месяцев #2: Save Emails from Gmail as PDF

Так родилась идея создать простое расширение, которое одним кликом формирует PDF-документ со всеми выбранными письмами и вложениями.

Разработка

Разработка оказалась непростой. Сначала я изучил множество библиотек для конвертации HTML в PDF и JPEG в PDF на фронтенде, но большинство из них были устаревшими и плохо справлялись с задачей. Я рассматривал вариант делать обработку на backend. Просто отправлять туда HTML или URL и генерировать PDF на сервере. Но быстро понял, что это небезопасно. Важно было избежать пересылки и хранения личных данных.

В итоге я решил реализовать всё полностью на frontend. Чтобы разобраться, как это лучше сделать, я даже скачал исходники расширения одного из конкурентов. Посмотрел, как все устроено у них. Понял, что идея собирать PDF из HTML с помощью JavaScript, вполне рабочая. Это позволило сохранить верстку писем и оставить текст выделяемым.

Самой сложной проблемой была «плавающая» верстка. Элементы постоянно смещались, ломались стили. После множества экспериментов мне удалось подобрать оптимальное решение. Сейчас большинство писем и вложений отображаются корректно.

Весь контент в PDF (текст, изображения, линии) позиционируется вручную по координатам x, y. Для этого используется библиотека jsPDF.

Логика работы:

  1. Обработка DOM-дерева.

Я прохожу по каждому узлу DOM, получаю размеры и стили элементов через:

node.getBoundingClientRect() — размеры и положение элемента на экране.

window.getComputedStyle() — CSS-стили (шрифты, цвета, границы).

2. Элементы добавляются в PDF, используя методы jsPDF.

Для текста:

doc.text(value, x, y);

Для изображений:

doc.addImage(imageData, ‘PNG’, x, y, width, height);

Для линий (границ элементов):

doc.line(x1, y1, x2, y2); значения x, y здесь — это абсолютные координаты относительно текущей страницы PDF.

Я выделил несколько особенностей:

  • Каждая страница PDF имеет фиксированный размер (например, Letter — 612×792 pt).

  • Чтобы текст и изображения не упирались в края, я использую padding. Всё содержимое размещается внутри страницы, ограниченной отступами.

  • Если элемент не помещается в оставшееся пространство текущей страницы, то я вставляю невидимые элементы-заполнители (fake-объекты), чтобы автоматически переместить контент на следующую страницу. Из-за этого на странице бывают пустоты.

Загрузка вложений и изображений

Сначала я простым селектором “.att a” нахожу все ссылки на вложения и изображения из письма, а потом скачиваю их. Данные загружаются в виде Blob, затем преобразуются в DataURL с помощью FileReader. SVG конвертируется в PNG при помощи библиотеки Canvg, чтобы затем вставить в PDF:

const v = await Canvg.fromString(ctx, svgText);

await v.render();

const pngDataUrl = canvas.toDataURL(‘image/png’);

const img = document.createElement(‘img’);

img.dataset.fileName = fileName;

img.src = pngDataUrl;

// Вычисляем коэффициент масштабирования:

// Если изображение больше доступного пространства, то scale < 1, иначе scale === 1 (не увеличиваем)

const scale = Math.min(1, availableWidth / origWidth, availableHeight / origHeight);

const renderWidth = origWidth * scale;

const renderHeight = origHeight * scale;

img.style.width = renderWidth + ‘px’;

img.style.height = renderHeight + ‘px’;

Изображения масштабируются так, чтобы вписаться в доступную область страницы без искажений.

Заполнение fake-объектами и перенос контента

Если масштабированное изображение не помещается в оставшееся пространство на текущей странице, я вставляю fake-объекты (пустые HTML-элементы), которые сдвигают контент на следующую страницу.

Логика вставки fake-объекта:

function addFakeElement(rect, element, pageHeight, padding) {

const effectivePageHeight = pageHeight — padding;

const finalTop = rect.top % effectivePageHeight;

const availableSpace = pageHeight — padding / 2 — finalTop;

if (rect.height > availableSpace) {

const filler = document.createElement(‘div’);

filler.style.setProperty(‘display’, ‘block’, ‘important’);

filler.style.setProperty(‘padding-top’, availableSpace + ‘px’, ‘important’);

filler.style.setProperty(‘width’, ‘100%’, ‘important’);

element.parentNode.insertBefore(filler, element);

}

}

Как это работает

  • Я рассчитываю, сколько свободного места осталось до конца текущей страницы (availableSpace).

  • Если высота текущего элемента (например, изображения) больше, чем свободное место, перед ним вставляется пустой элемент-заполнитель с нужной высотой (padding-top).

  • Этот заполнитель «толкает» следующий элемент вниз, автоматически перемещая его на следующую страницу PDF.

Этот подход обеспечивает предсказуемое расположение изображений и вложений в PDF-документе, несмотря на сложности, связанные с разметкой и размерами исходных данных из Gmail.

Дизайн и лендинг

Дизайн интерфейса, иконки и изображения для Chrome Store мы сделали на основе конкурентов. Главной задачей было сделать яркую иконку и привлекательную картинку для превью, которая выводится в результатах поиска и в блоке рекомендаций.

Запускаю 12 стартапов за 12 месяцев #2: Save Emails from Gmail as PDF

На главной картинке для страницы расширения мы показали решаемую проблему и основные преимущества продукта. На остальных картинках показали, как работает расширение в интерфейсе Gmail.

Запускаю 12 стартапов за 12 месяцев #2: Save Emails from Gmail as PDF

Сделали простой лендинг на Google Sites. Быстро и самое главное бесплатно. Вот что получилось — https://sites.google.com/view/email-to-pdf/. Наша цель — привязать сайт в форме публикации расширения, чтобы получить статус «Verified publisher». Также лендинг позволяет нам поставить ссылку на страницу расширения, чтобы передать немного веса для SEO.

SEO и локализация

Для оптимизации страницы расширения под поисковые запросы нам нужно было найти ключевые слова, которые люди вводят в Google, когда ищут способы сохранения или конвертации писем из Gmail в PDF. Мы проанализировали конкурентов, Google Trends, сервис WordStream и составили список ключевых слов.

Запускаю 12 стартапов за 12 месяцев #2: Save Emails from Gmail as PDF

Ключевые слова с самым высоким спросом мы использовали в названии расширения, а остальные вписывали в описание. В генерации описания на английском языке нам помогал DeepSeek.

Мы составили промт, с помощью которого получили уникальный текст с вписанными ключевыми словами и с учетом функций расширения. За основу брали тексты конкурентов. Вот такой промт у нас получился:

Представь себя в роли копирайтера, SEO-специалиста и носителя английского языка.

Напиши описание для браузерного расширения, которое сохраняет e-mail письма из Gmail как PDF файлы.

Функции моего расширения:

— Сохранение 1 письма или всей истории переписки

— Сохранение облегченной версии письма без картинок и без вложений

— Сохранение полной версии письма с картинками и с вложениями. Картинки и PDF-файлы из письма выводятся в экспортированном PDF-файле

— Сохранение нескольких выделенных писем. Сохранение до 50 выделенных писем с 1 страницы.

— Выбор формата экспортируемого файлы: A0-A8, Letter, Legal

Проанализируй описания конкурентов моего расширения ниже, объедини их в 1 самый подробный текст, который включает в себя смыслы и факты из всех текстов написанных ниже.

Используй в тексте следующие ключевые слова для SEO, не нарушая грамматику:

Ключевые слова:

[Тут список ключевых слов]

——

Описание конкурента 1:

[Тут текст 1]

——

Описание конкурента 2:

[Тут текст 2]

После нескольких итераций правок в DeepSeek мы получили практический готовый текст. Немного подредактировали его вручную и довели вхождения ключевых слов в нужном количестве.

Затем мы перевели описание и интерфейс расширения на 55 языков с помощью API ChatGPT. Так мы получаем более широкий охват потенциальных пользователей за счет языковых версий страницы расширения.

Бесплатный маркетинг

Мы попросили друзей оставить первые отзывы, чтобы повысить доверие пользователей и получить звездочки рейтинга. На этом этапе расширение было полностью упаковано.

Далее мы подали заявку на фичеринг. Про то как получить статус «Featured» я писал в предыдущем посте. Это позволило увеличить показы расширения в Chrome Store.

Запускаю 12 стартапов за 12 месяцев #2: Save Emails from Gmail as PDF

Для привлечения первых пользователей в наши продукты, мы активно используем бесплатные площадки и SEO.

Мы разместили ссылки на UGC-площадках: ProductRadar, ProductHunt, VC, Reddit, Quora, Stackoverflow, Github, Medium, Dev.to, indiehackers.com. Это дало немного новых установок, но в большей степени ссылки увеличивают вес для SEO в Google.

Пример размещения на Reddit:

Запускаю 12 стартапов за 12 месяцев #2: Save Emails from Gmail as PDF

Пример размещения на Dev.to:

Запускаю 12 стартапов за 12 месяцев #2: Save Emails from Gmail as PDF

Запуск на ProductHunt

Запускаю 12 стартапов за 12 месяцев #2: Save Emails from Gmail as PDF

Запуск на ProductRadar

Запускаю 12 стартапов за 12 месяцев #2: Save Emails from Gmail as PDF

Результаты

Что мы имеем за 3 месяца:

  • 896 установок.

  • 696 активных пользователей в неделю.

  • Получили статус «Featured» в Chrome Store 🏆.

  • Получили обратную связь от пользователей, поправили баги и залили уже 3-ю версию.

Самая большая доля по странам — это пользователи из США, Сербии и Индии. А основные источники трафика — Chrome Store (попадает в Direct и Unassigned) и поиск Google. Это органический трафик, который позволяет протестировать продукт без вложений в маркетинг.

Запускаю 12 стартапов за 12 месяцев #2: Save Emails from Gmail as PDF

Сколько мы вложили

  • Разработка — $0 и 4 недели своего времени.

  • Маркетинг — $0 и 1 неделя на SEO и контент-маркетинг.

Выводы и планы

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

В планах:

  • Добавить новые функции: загрузка в Google Drive, объединение нескольких писем в 1 PDF.

  • Улучшить конвертацию. Чтобы корректно сохранять сложные письма с нестандартной версткой.

  • Протестировать платную версию.

  • Эксперименты с контентом и новыми каналами трафика.

Заходите к нам в Телеграм-канал «Инди-хакеры: стартапы из 💩 и 🥢» и следите за нашим челленджем «12 проектов за 12 месяцев».

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»