Jak wybrałem system komentarzy na portal
Dostaliśmy od Was sporo wiadomości, w których pisaliście, że przydałyby się komentarze przy artykułach. W końcu nieraz pod postami na Facebooku, Wykopie czy LinkedInie wywiązywały się merytoryczne i wiele wnoszące dyskusje. Szkoda, żeby ginęły w odmętach internetu. W końcu przyszła pora, żeby na poważnie się tym zająć i dodać komentarze na Bulldogu.
Pierwsza próba
Do systemów komentarzy mam pewien uraz. Wynika on z tego, że na samym początku naszej działalności korzystaliśmy z Disqus. Jest to chyba najpopularniejszy system do komentarzy, bardzo łatwy do zainstalowania na stronie. Wystarczy w końcu dodać mały snippet w kodzie i gotowe.
Niestety ta łatwość dodania nie jest za darmo. Disqus jest ciężki - wczytanie skryptu i assetów to mniej więcej drugie tyle, co cała nasza strona. Dodatkowo firma ta żyje głównie z reklam displayowych, które prezentowane są przy komentarzach. Dlatego też ładuje kilkanaście trackerów z różnych sieci reklamowych, niektórych dość szemranych, co również nie wpływa pozytywnie na to, jak odbieram ten system.
W czasie gdy testowaliśmy Disqus, nie mieliśmy ani dużo treści ani dużo użytkowników, więc korzyści były dla nas znikome. Komentarzy było naprawdę mało, tych wartościowych jeszcze mniej, a koszty - np. w postaci wydłużonego ładowania strony, czy też moderowania komentarzy od botów, które wprost targetują Disqus - były duże. Stąd idea komentarzy na stronie poszła w odstawkę.
Poszukiwanie rozwiązania
Jakiś czas temu stało się jasne, że komentarzy naprawdę brakuje i jednak potrzebujemy systemu, który umożliwi wymianę opinii między czytelnikami. Zaczęły się więc poszukiwania i po przejrzeniu kilkunastu stron wyników Google’a jasne było, że możliwości wyboru jest sporo. Zostało pytanie, które z nich najbardziej do nas pasują. By się tego dowiedzieć, musieliśmy określić sobie podstawowe wymagania, które stawiamy przed systemem do komentarzy:
- Komentarze powinny być lekkie:
- Do kilkunastu kB kodu JS
- Brak większego wpływu na czas ładowania strony
- Nie powinny wczytywać trackerów 3rd-party, szczególnie jak nie wiemy, skąd one się biorą
- Możliwość wprowadzania kawałków kodu i sensownego formatowania
- Single Sign-On z naszym kontem - bo skoro mamy konta, to nie ma sensu, żeby do komentarzy było jakieś osobne logowanie.
Mimo tego, że minęło parę lat, Disqus wciąż jest najczęściej wspominanym systemem do komentowania. Nadal jednak ma takie same problemy jak kiedyś - jest ciężki i wczytuje masę skryptów 3rd party. W ich cenniku jest opcja wyłączenia reklam i włączenia SSO, ale obydwie te funkcje są dostępne dopiero w jakimś planie “Business”, o którego cenie trzeba pogadać z ich działem sales. Biorąc pod uwagę poprzednie doświadczenia, stwierdziłem, że warto zobaczyć, jakie są alternatywy.
Kolejnym prostym rozwiązaniem byłoby podłączenie wtyczki do komentowania Facebooka. Z jednej strony nie jest to zły pomysł, bo w końcu i tak większość naszej treści ląduje na Facebooku i najczęściej to właśnie tam odbywają się dyskusje, jednak jest też sporo osób, które Facebooka nie mają i mieć nie będą. Dodatkowo jest to treść z zewnętrznej strony, więc z punktu widzenia SEO, na którym nam zależy, nie jest to super mega optymalne.
Disqus ma też sporo konkurencji, która nie zarabia na reklamach, a na pobieraniu opłat za hostowanie komentarzy. W tej grupie mamy np. Commento, GraphComment, HyvorTalk, Muut i wiele, wiele innych. W tej grupie najważniejsze było dopasowanie funkcji do naszych potrzeb.
Są też alternatywy open source, które można hostować samodzielnie. Jest to możliwe np. w przypadku wspomnianego Commento, ale też Isso czy Remark42. Po wstępnym rekonesansie stwierdziłem, że łatwiej tu skorzystać po prostu z płatnych alternatyw, które po prostu oferują więcej i przy okazji nie bawić się w komplikowanie prostej jak budowa cepa infrastruktury, którą mamy obecnie, przez dodawanie kolejnych baz danych, domen, backendów itd.
Pojawiły się też dość “dzikie” pomysły, jak wykorzystanie forum discourse w formie boxa do komentarzy (co akurat jest oficjalnie wspierane) albo zrobienie komentarzy na GitHubie (poprzez stworzenie issue, które będzie odpowiadać naszemu artykułowi). Ale ok, szanujmy się.
Problemy
Do finalnych testów weszło dwóch konkurentów Disqus - Commento i GraphComment. Problemem w Commento (wersja self-hosted) było stylowanie i zmiana styli. Niestety dokumentacja nie okazała się na tyle dobra, żeby pomóc mi rozwiązać ten problem. To zniechęciło mnie do dalszych testów i sięgnąłem wtedy GraphComment.
System ten wyglądał dość obiecująco i udało mi się go zintegrować z naszym systemem przy pomocy Single Sign-On. SSO polegało w tym przypadku na rejestracji i logowaniu użytkownika z naszego systemu przy pomocy tokena JWT w systemie komentarzy. W najprostszym przypadku całość zadziałała nieźle, ale przy logowaniu z innego konta, coś nie zadziałało. Nie dostałem żadnej notyfikacji o błędzie -, system komentarzy po prostu zamarł.
Parę kliknięć w dev toolsy i okazało się, że jedno z żądań zakończyło się błędem 4XX. Z błędu wywnioskowałem, że mój użytkownik musi mieć całkowicie unikalną nazwę, a dodatkowo nie jest to jakieś ID przechowywane z boku, to nazwa wyświetlana użytkownika. Oznacza to, że nie moglibyśmy mieć w systemie dwóch użytkowników o nazwie ekranowej “Jan Kowalski”.
I to by było na tyle, jeżeli chodzi o testy rozwiązań 3rd party. By to kontynuować, musiałbym podłączać kolejne systemy i sprawdzać, jaki zestaw niedogodności dla mnie szykują, zastanawiając się jak i czy mogę je obejść. W zasadzie każdy z systemów oferuje szybkie podłączenie i pakiet funkcji dostępnych w standardzie. Schody zaczynały się przy próbie dostosowania do moich potrzeb.
Rozwiązanie
Finalnie stwierdziłem, że napiszemy system do komentarzy u nas tak, by pasował idealnie do naszego portalu. I tak się stało - spełnia on każde z założeń, które sobie postawiliśmy, a mianowcie jest lekki, nie dodaje żadnych trackerów, pozwala na używanie markdowna w komentarzach (i formatowanie snippetów kodu) oraz integruje się całkowicie z kontem Bulldogjob.
Dodatkowo pozwala na plusowanie komentarzy, ale też artykułów. Dodanie do tego systemu nowych funkcji jest łatwe i nie jesteśmy zdani na łaskę lub niełaskę firmy, która dostarcza dane rozwiązanie.
Przyszłość
Na ten moment nasz system jest dość prosty, więc jeżeli macie jakieś skargi, zażalenia i pomysły tego, co by było przydatne, to piszcie śmiało… w komentarzach!