Проект: Wannadocs — База знаний для ваших клиентов  Публичный пост
6 октября 2020  1193
Wannadocs - База знаний для ваших клиентов

Здаров народ! 👏

Несколько месяцев назад мы с моим корешем @yuhenobi объединились и сделали Wannadocs это было захватывающие путешествие к большой мечте - помочь компаниям создавать базы знаний для клиентов. У нас на двоих больше 20 лет опыта работы в ИТ и мы постоянно наблюдали один паттерн:

Нам нужно учить наших пользователей - берём Wordpress и пачку шаблонов или пишем сами подобие CMS с админкой

Мы видели проблему на всех уровнях. Менеджмент хочет удобный интерфейс и чтобы было готово за месяц. Разработчики принимают челлендж, не справляются так как требования растут как снежный ком в процессе имплементации ( какая досада в 2020 году статья это не просто textarea, а «глупый» парнишка редактор то и дело пытается сделать Drag-and-Drop картинки в это поле). Админы (или девопсы, у кого как) не хотят хостить и администрировать Wordpress, дрожат над безопасностью. Круг сужается, бюджеты на разработку растут, компания теряет деньги и клиентов.

Я и сам написал парочку таких монстров, вот один их них: https://cutt.ly/pgq5igS (специально скрыл за короткой ссылкой так как не реклама)

Продукт

Сегодня мы запускаем Wannadocs – сервис для создания баз знаний, который поможет избежать описанных выше проблем. У нас есть:

  • Удобный, интуитивно-понятный редактор
  • Встроенный поиск по статьям
  • Аналитика просмотров и кнопки фидбека
  • Крутой шаблон для миллениалов с кастомизацией
  • Мы собрали самые популярные интеграции: GoSquared, Intercom, Jivosite, Hotjar, Chatra, Disqus и тд.
  • Мы заморочились с SEO, прописали везде JSON-LD схемы, OpenGraph теги, генерируем превьюшки ваших статей для социальных сетей

Facebook preview
Facebook preview

Все это в пару кликов без страданий и СМС. Наш нескучный шаблон позволит вам сразу делиться знаниями с вашими клиентами. К слову, мы работаем над вторым не скучным шаблоном. 😏

Это не все! Вы сами решаете как хранить свои данные, у нас есть Self-hosted и SaaS тарифы!

Крутой энтерпрайз с кучей денег?

499$ долларов единоразово, получаете весь исходный код, 6 месяцев апдейтов и поддержки, делаете docker-compose run и дело в шляпе!

Компания по-проще?

30 долларов/месяц, сидите на SaaS. Если захотите переехать на self-hosted вышлем дамп вашей базы в подарок.

Мы собрали небольшую демку-презентацию по адресу: https://demo.wannadocs.com

Демка
Демка

Еще два скрина чисто показать мастерство:

Клиентский интерфейс создания статей
Клиентский интерфейс создания статей

Аналитика
Аналитика

Ку-кодинг

За техническую часть проекта отвечаю я ( @punk_navsegda) если по-честному это вторая итерация проекта, чего уж там даже бранч из которого деплою называется feature/newdash2 😒 первая версия была относительно сырой я по-старинке использовал jquery+рендер на бекенде, но по прошествию времени понял что я дед 👴 и сейчас требования к продукту совершенно изменились. Я быстро все переверстал и переделал на React/Redux и JSON-апишечку.

Бекенд крутится на Rails + Postgres. Статику раздает Minio во всем этом их прикрывает Nginx. Ваши документики индексирует ElasticSearch, а кеширует данные Redis. Аналитику пишем в time-series надстройку над Postgres TimescaleDB (I hate Influx 👹)

Отдельной истории достойна реализация шаблонов баз знаний, с начала была схема Backend API -> Next.js -> шаблончик. Могу сказать что Next.js очень крутая штука, всем кто не пробовал советую. Преимущество такой схемы – стандартизация и легкость верстки шаблонов. Минус – гонять данные через апиху. В итоге я от такой схемы отказался и перенес все на React, шаблоны в Rails, при рендере я генерирую JSON-props для отображения всей страницы + некоторые вещи отдаются статически в html, например title, OG теги, и JSON-LD схема.

Также хочу отметить то, что Rails структура resource -> controller отстой, файлов и папок становиться слишком много и поддерживать это проблематично, опытным путем я понял что мне нравиться подход Slack, у тебя нету REST модели, а каждый вызов это HTTP-RPC-style, все идет через POST, а урлы выглядят как https://wannadocs.com/api/SCOPE.METHOD например:

https://wannadocs.com/api/articles.create или https://wannadocs.com/api/articles.unpin

Я сделал route-хелпер который позволяет генерировать такие урлы:

initializers/routes_helper.rb

module ActionDispatch::Routing
  class Mapper
    def rpc_resource(resource_name, controller: nil, default_methods: %w[list info create update delete], additional_methods: [], only: nil, &block)
      (default_methods + additional_methods).each do |method|
        if only.present? && !only.include?(method)
          next
        end
        post "/#{resource_name}.#{method}", action: method.to_sym, controller: resource_name || controller
        yield if block_given?
      end
    end
  end
end

routes.rb

scope :api, module: :api do
  scope :v1, module: :v1 do
    rpc_resource(:articles, additional_methods: %w[search pin unpin emoji])
  end
end

В итоге мы получаем плоскую структуру по файлам, но вложенную по урлам. 👨‍👩‍👦 Это намного ускоряет разработку фронтенда так как тебе нужно меньше думать что куда роутится, где у тебя POST где GET и какой ресурс владеет другим ресурсом.

Продакт

За продуктовую часть отвечает @yuhenobi, господи, это крутой чувак, который расписывает наше пространство в Notion как Бог, у него куча планов и правильный вижен продукта. Он шарит за дизайн и верстку, может поднять докер и четко говорит что это гавно, а это не гавно, без него я бы не вывез. Если тащите проект в одно лицо – не надо так, найдите себе своего Стива 🤓

У нас еще куча планов, мы хотим сделать виджет для клиентского сайта который бы понимал на какой он странице и давал подсказки по статьям из базы знаний. Хотим сделать автоматизацию с клиентскими CRM. Впереди еще много работы, мы не боимся и готовы фигачить👌🏻

Мы долго нализывали каждый аспект нашего продукта и больше не в силах держать это в себе. Предлагаем вам стать первыми критиками, первыми клиентами или просто друзьями.

Пишите комментарии здесь или на почту hello@wannadocs.com

P.S Мы прошли длинный путь и нам действительно важно ваше мнение.

Связанные посты
24 комментария 👇
Alexander backend-разработчик 6 октября 2020

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

  Развернуть 1 комментарий

@Alexander, просто зарегистрируйся, редактор надо тестить вживую ;)

  Развернуть 1 комментарий

@Alexander, демо-презентация это готовая база-знаний которую можно собрать, редактор потыкать можно после регистрации ;))

  Развернуть 1 комментарий
Yury Katkov в шаббатикале 7 октября 2020

А как выглядит юзкейс, ну или бизнес-процесс? Я просто думал что управление знаниями - это некоторая викоидная история. А тут кто-то башковитый все сам пишет?

  Развернуть 1 комментарий

@ganqqwerty, Юзкейс допустим у вас есть продукт и нужна база знаний, например у вас хостинг https://www.digitalocean.com/docs/ вот что-бы получить такую документацию нужны определенные инструменты, конкретно на https://www.digitalocean.com/docs/ мы видим поиск+шаблон+отзывы естественно где-то есть back-office в котором создаеться контент. У нас есть готовый шаблон/поиск/удобный редактор/хостинг/SSL сертификаты и тд. это позволит не тратить деньги на разработку своего решения. Так же у вас будет свой домен https://mycompany.wannadocs.com на который можно сделать ссылку с главного сайта, сейчас плотно работаем над возможностью свой кастомный домен привязать. Но статьи всетаки пишите вы сами))

  Развернуть 1 комментарий

@punk_navsegda, а пишет специально обученный единственный редактор (CMS-схема) или коллектив редакторов (wiki-схема)?

  Развернуть 1 комментарий

@ganqqwerty, CMS-схема. Но есть в беклоге хотелки по ролям/юзерам/коментариям к статье

  Развернуть 1 комментарий

@ganqqwerty, Я вживую видел кейс: интегратору надо сделать для клиентов вики по своему продукту + где-то вести внутреннюю документацию. И никаких облаков конечно, это же РФ. Разработка ребят идеально подходит :)

  Развернуть 1 комментарий

@CyberThroe, Ага, именно поэтому мы предлагаем self-hosted с открытыми исходниками ))

  Развернуть 1 комментарий

@punk_navsegda, Ага, поэтому я и отправил лиду в интеграторе ссылку на вас. Молодцы, лайк, подписка :)

  Развернуть 1 комментарий
Сергей Игнашев Леттеринг | Техническое писательство 6 октября 2020

Никогда таким не пользовался, но вот тебе охуенный логотип от меня::)

  Развернуть 1 комментарий

@Sio, Пасиб)) значит ли это что наш хуевый? 🧐

  Развернуть 1 комментарий

@punk_navsegda, мне ваш нравиться больше, потому что название и лого матчатся. вот в такой формат в голове складывается 🤘🏻wanna rock, это прикольно.

  Развернуть 1 комментарий

@punk_navsegda, нет, нооооо есть над чем поработать, линии не очень плавные:;)

  Развернуть 1 комментарий
Artem Golovin Стартапер и консультант 7 октября 2020

Оооо, выглядит круто, мы как раз сейчас ищем что-то подобное.

Но в целом эту проблему решает Ноушен и шаринг guest-аккаунтов, но мы столкнулись с тем что во многих местах нужно вставлять повторяющиеся блоки, — и ноушен не позволяет ембеддить блоки (ака если его поменять в одном месте, то меняется везде).

Поэтому использовали gitbooks, но эти ребята перешли на новую версию и убрали !include. Сейчас смотрим в сторону https://readme.com/, но тот дороговат, хотя очень удобен именно для апишек.

  Развернуть 1 комментарий

@ArtemGolovin, Ноушен кажеться больше для внутрених процесов заточен, мы же ориентируемся на ваших кастомеров)) Но если у вас есть боль то давайте прям сюда пишите возможно мы сможем решить вашу проблему

  Развернуть 1 комментарий

@ArtemGolovin, инклюды это хорошо, запишем, спасибо.
У нас пока подобного нет.

  Развернуть 1 комментарий
Evgeniya Mungalova Редактор в декрете 7 октября 2020

Кстати тоже вот хотела спросить: планируете поддерживать какие-нибудь принципы единого источника?
В написании всяких руководств и инструкций очень полезная вещь. Особенно, если это инструкции для разных ролей: что-то похоже, а что-то различается.

  Развернуть 1 комментарий

мы хотим сделать виджет для клиентского сайта который бы понимал на какой он странице и давал подсказки по статьям из базы знаний

Классная штука ))

  Развернуть 1 комментарий

@Evgeniya,

Особенно, если это инструкции для разных ролей: что-то похоже, а что-то различается.

Я так понимаю, что сейчас в большинстве случаев это решается именно дублированием контента?

  Развернуть 1 комментарий

@yuhenobi, возможно да, просто копипастят общий контент. Но это непродуктивно, что-то можно забыть. У нас раньше такая проблема была, когда вся документация хранилась в ворде )
Правда, не знаю, насколько это актуально для базы знаний. В моем понимании база знаний — это набор сценариев и ответов на вопросы. Часто они не привязаны к конкретной версии продукта, и возможно там не нужно переиспользовать контент.

  Развернуть 1 комментарий

@Evgeniya, да, идея понятна, спасибо, подумаем над инклюдами ;)

  Развернуть 1 комментарий
Антон Дуковский Продакт и IT-бюрократ в офисе цифровой трансформации 4 декабря 2020

Очень крутой инструмент и он, кажется, может быть востребован и как внутренняя база знаний.

Думали ли в эту сторону?
Есть ли в роудмэпе интеграции с интранетами типа Jive или Workplace?

  Развернуть 1 комментарий
Ivor Barhansky Сетевой инженер 4 декабря 2020

Как сидящий в производстве и залетавший в крайне кровавый энтерпрайз скажу, что для этой ниши не хватает инструментов для валидации материала. Там не прокатит "Уот вам клуовая статейка по красивой ссылке". Надо чтобы документацию проверила приёмка, завизировала, то есть ЭЦП от всех сторон, сброс всех ЭЦП при возврате документации на доработку, явное отслеживание всех этапов жизни документа, чёткая идентификация каждого рецензента вот этот вот весь энтерпрайз буллшит.

У энтерпрайзов уже есть такие штуки, но они ОЧЕНЬ неудобные и устаревшие и в принципе спрос есть. Но с текущей подачей вы не вкатитесь. Названий не скажу, NDA, но штука очень нишевая, гуглите крупного игрока, 80% что попадаете с первого раза.

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб