Ciekawe strony

Windu CMS – system zarządzania treścią w polskim wykonaniu

Grzegorz Ułan
Windu CMS – system zarządzania treścią w polskim wykonaniu
107

Na projekt ten trafiłem przypadkiem na jednym z postów na Facebooku, zachwalającym zresztą ten pomysł. Nie omieszkałem więc przyjrzeć mu się z bliska, zwłaszcza, że Windu CMS stworzył polski programista, a dobrze wykonanych, darmowych alternatyw dla Joomli, Drupala czy WordPressa ze świeczką szukać....

Na projekt ten trafiłem przypadkiem na jednym z postów na Facebooku, zachwalającym zresztą ten pomysł. Nie omieszkałem więc przyjrzeć mu się z bliska, zwłaszcza, że Windu CMS stworzył polski programista, a dobrze wykonanych, darmowych alternatyw dla Joomli, Drupala czy WordPressa ze świeczką szukać.

Już wejście na stronę tego CMS-a zwiastowało mi obiecujący projekt. Jak się później okazało nie zawiodłem się, ale zacznijmy od początku. Pliki instalacyjne zajmują na dysku około 16MB. Po wgraniu na serwer i uruchomieniu adresu docelowego uruchomiła się od razu instalacja CMS-a. Tu już pierwsza niespodzianka - z wyborem języka, co pozwala przypuszczać, że plany twórców są ambitne i nie poprzestaną tylko na polskim rynku.

Sama instalacja zajęła dosłownie klika kliknięć i miałem gotowy CMS z szablonem strony i wgranymi domyślnymi danymi.

Panel administracyjny wykonany jest prosto i przejrzyście. Od razu wiadomo co, gdzie i jak.

Dodatkowo system powiadomień sugeruje pierwsze kroki, jakie należy wykonać do prawidłowego działania i uruchomienia serwisu. Tutaj spotyka mnie następna niespodzianka - automatyczna aktualizacja systemu.

Sama edycja i wprowadzanie treści bajecznie proste z wygodnym menu narzędzi do formatowania tekstu.

Dodatkowe zakładki pozwalają na szybkie przyporządkowanie lub zmianę położenia wpisów czy też wprowadzenie tagów oraz słów kluczowych danego wpisu.

Domyślnie instalowanych jest 5 szablonów. Osobiście najbardziej przypadł mi do gustu ten główny ze zmieniającym się "slajderem" i menu w górnej części serwisu.

W moim odczuciu wystarczy poświęcić dwie, trzy godziny na podmianę menu oraz treści, by w zasadzie mieć już gotowy pierwszy swój serwis ze stabilnie i szybko działającym systemem zarządzania treścią. Zamiast dalej się samemu wymądrzać i sięgać głębiej w tego CMS-a postanowiłem zapytać o więcej szczegółów twórcę Windu CMS Adama Czajkowskiego. Mam nadzieję, że wspólnie uda nam się przybliżyć Wam go bardziej i co więcej zachęcić do skorzystania z tej propozycji. Osobiście uważam ten w projekt za bardzo udany, no ale też oczywiście zależy nam również na Waszej opinii.

Może na początek, powiedz nam kim jesteś? Czym się zajmujesz na co dzień? Windu CMS to Twój pierwszy projekt, nad którym pracujesz? No i czy sam go tworzysz?

Na co dzień zajmuję się projektowaniem i tworzeniem stron www – prowadzę niewielką agencję interaktywną Wysoko.org. Przygodę z internetem zacząłem jednak już w szkole podstawowej. Pamiętam, że udało mi się nawet wygrać konkurs na stronę internetową poświęconą… Grupie Wyszehradzkiej :).

Dlaczego Windu? Skąd pomysł na stworzenie CMS-a?

To dłuższa historia. W podstawówce tworzyłem strony w notatniku w czystym html. Gdy zdobyłem już trochę wiedzy i doświadczenia zacząłem wykorzystywać różnego rodzaju CMSy: począwszy od Fusion PHP skończywszy na wczesnych wersjach WordPressa.

Niestety żaden z nich nie satysfakcjonował mnie w wystarczającym stopniu, każdemu czegoś brakowało, coś irytowało, frustrowało. W ten sposób krok po kroku dojrzewał pomysł o stworzeniu własnego systemu, opartego na realnych potrzebach użytkownika. Tak, w 2001 roku powstał mój pierwszy CMS. Potrafił niewiele, bardzo niewiele. W zasadzie jego funkcje ograniczały się do zapisania treści podstrony za pośrednictwem przeglądarki. Ale jaka to była frajda dla piętnastolatka! :)

Przełomowe okazało się wydanie Windu CMS 1 w 2006 roku. Pierwsza wersja Windu napisana była strukturalnie zgodnie z PHP 4. Posiadała własny system szablonów, podobny nieco do SMARTY – jednak znacznie uboższy. Założenia przy tworzeniu CMSa były bardzo proste:

  1. Brak bazy danych – priorytetem było uproszczenie instalacji, bez konieczności tworzenia baz danych
  2. Szybkość działania skryptu – w tamtym okresie posiadałem naprawdę słabej jakości hosting, dlatego szybkość i małe obciążenie dla serwera były kluczowe :)
  3. Ergonomia – ponieważ CMS miał przede wszystkim ułatwić mi pracę nad stronami dla klientów, zależało mi na wygodzie użytkowania. Dlatego chciałem np. ograniczyć dodawanie podstron do jak najmniejszej liczby kroków.

Oczywiście jak każdy prototyp, Windu 1 był niedoskonały. Kod strukturalny był ciężki do rozbudowy i tworzenia nowych, szerszych funkcjonalności. System najnormalniej w świecie się dusił.

W roku 2010 trafiłem do spółki Pomocni, tworzącej m.in. serwis Niania.pl. Tam pod okiem Marcina Popielarza, niesamowicie dużo się nauczyłem. Pracowałem nad rozwojem serwisów spółki, zarówno w aspektach wizualnych jak i programistycznych. Nie będzie chyba przesadą stwierdzenie, że przyswojony dzięki niemu Zend Framework i wiele innych nowoczesnych rozwiązań programistycznych zmieniły moje myślenie o programowaniu. A na pewno dały mi niesamowitą bazę i punkt wyjścia do dalszej pracy nad Windu. Rok później postanowiłem napisać system od nowa. Założenia były takie same, jak w 2006: prosta instalacja, szybkość i wygoda działania. Musiałem jednak zacząć praktycznie od zera, wykorzystując PHP obiektowe, podział struktury na niezależne pluginy, plikową bazę danych SQLite zamiast MySQL oraz wiele nowych sztuczek i pomysłów.

W efekcie już kilka miesięcy później gotowa była wczesna beta Windu CMS 2. W tym okresie pracowałem nad systemem całkowicie sam. Postanowiłem skontaktować się ze świetnym PHP Developerem Krzyśkiem Ruszczyńskim, prywatnie – kolegą z liceum. Jego doświadczenie w pracy nad dużymi serwisami jest niezwykle pomocne do dzisiaj.

Praca nad Windu nie ograniczała się tylko do programowania. Do 2012 roku sam zajmowałem się zarówno BackEndem jak i FrontEndem oraz grafiką. Dlatego zaangażowanie Krzyśka w projekt okazało się strzałem w dziesiątkę – wprowadził do projektu trochę ściślejsze podejście programistyczne, zajął się filarami Windu takimi jak silnik bazy danych czy serwer aktualizacji. Od tej pory pracujemy nad projektem razem.

Obecnie zespół tworzy pięć osób: oprócz mnie i Krzyśka przy projekcie pomaga Anna Karcz – specjalistka od promocji a prywatnie moja narzeczona :), Sebastian Miecielica, który wspiera użytkowników odpowiadając cierpliwie na ich pytania na forum praktycznie od wersji Windu1 oraz Robert Wdwiak – specjalista od SEO, dzięki któremu Windu jest niezwykle przyjazne wyszukiwarkom.

Z najbardziej znanych darmowych CMS-ów mamy teraz dostępne Joomla czy też Drupal, wykorzystywane najczęściej przy tworzeniu nowych stron przez początkujących użytkowników. Przy wykorzystaniu zaawansowanych płatnych szablonów, pozwalających na stworzenie atrakcyjnych i funkcjonalnych serwisów. Mamy też WordPress najczęściej wykorzystywany do blogów, ale nie tylko. Dla kogo skierowany jest Windu CMS? W moich pierwszych odczuciach to doskonały wybór dla mniejszych podmiotów na swoje pierwsze strony firmowe.

Windu CMS powstało głównie z myślą o małych i średnich agencjach interaktywnych, a także amatorach tworzących swoje prywatne strony internetowe. W tym momencie główną grupę użytkowników stanowią osoby posiadające już doświadczenie w budowaniu stron www lub zaczynające dopiero swoją przygodę z webdeveloperką ale posiadające minimalną wiedzę z tej kategorii.

Warto zaznaczyć, że aby stworzyć własną stronę na Windu należy posiadać podstawową wiedzę z zakresu HTML/CSS. Natomiast edycja treści już postawionej strony jest na tyle prosta, że poradzi sobie z nią każdy.

Windu to podstawowe narzędzie, które sam wykorzystuję w mojej pracy. Było więc dla mnie bardzo ważne, by panel administracyjny był jak najbardziej intuicyjny i prosty w obsłudze – chciałem, by moi klienci nie mieli problemów z dodawaniem i edycją treści.

W darmowej wersji Windu CMS jest mocno ograniczony, nie byłoby bardziej zasadne, by zachęcić użytkowników do płatnych wersji, aby udostępnić dodatkowe funkcje w wersji trial? Praktycznie wszystkie są dostępne za opłatą, a w panelu administracyjnym nawet nie są opisane.

Ciekawa uwaga, musimy się zastanowić nad tą sugestią. Natomiast w tym momencie użytkownicy mogą obejrzeć Windu PRO na naszej stronie w zakładce demo (http://windu.org/demo).

Warto przy tym zaznaczyć, że Windu FREE to w 100% funkcjonalny system CMS. Bardzo często słyszę pytanie i zarzut o określanie Windu mianem “darmowego” przy jednoczesnym pobieraniu opłat za wersje rozszerzone. Jednak Windu w istocie jest systemem darmowym. Wersje płatne posiadają dodatki i rozszerzenia ułatwiające pracę i dające wiele korzyści, jednak nie są one konieczne i niezbędne do korzystania z systemu. W wersji Free użytkownik otrzymuje wszystko, co jest potrzebne do stworzenia w pełni funkcjonalnej strony internetowej.

Muszę się do czegoś przyznać: z lenistwa (konieczność wygenerowania i wpisaniu klucza licencji…) sam tworząc strony dla klientów zazwyczaj wykorzystuję wersje FREE ;) Ma ona wszystko, co potrzebne a funkcjonalność nie odbiega od konkurencyjnych CMSów.

Wersja płatna posiada wiele dodatkowych narzędzi ale powtarzam: jest to forma dodatku dla osób, które postanowiły wspierać projekt i kupiły licencję.

Przejdźmy do konfiguracji serwisu. Szczerze przyznam, że to dla znacznej grupy użytkowników będzie czarna magia. Brakuje mi tu przy każdej pozycji małego tutoriala i wyjaśnienia dostępnych innych opcji ustawień. Centrum pomocy też wygląda mi na ukierunkowanie typowo na zaawansowanych użytkowników. Co z pozostałymi?

Dobre pytanie. Tak jak wspomniałem wcześniej: panel konfiguracji przeznaczony jest dla zaawansowanych użytkowników. Zwykły użytkownik stworzonej już strony praktycznie nie musi tam zaglądać; wszystkie wartości i parametry ustawione są w optymalny sposób.

Obecnie pracujemy nad Windu w wersji SaaS. Będzie ona przeznaczona dla użytkowników bez doświadczenia. Stworzenie strony nie będzie już wymagało “wiedzy tajemnej” :) Podążając za wskazówkami systemu, “przeklikując” kolejne kroki kreatora każdy użytkownik z łatwością poradzi sobie ze postawieniem strony. Jeśli jednak po jakimś czasie uzna, że gotów jest podjąć wyzwanie w zakresie HTML i CSS bez problemu przełączy się na wersję bardziej zaawansowaną.

Wprowadzenie nowej, SaaSowej wersji Windu to kwestia najbliższych kilku miesięcy.

Porozmawiajmy teraz o domyślnym szablonie. Najbardziej chodzi o jego układ. Mamy jasny podział na wpis na stronie głównej, grupy wpisów oraz aktualności. Wpis na stronie głównej pozbawiony jest komentarzy, podobnie jak grupy wpisów, aktualności natomiast już mogą być komentowane. W panelu administracyjnym znalazłem opcję, która odpowiedzialna jest za rodzaj tych wpisów, ale już edycji i dokonania zmian w tych szablonach czy dodawania kolejnych nie odnalazłem. To wszystko jest na sztywno zrobione, bez możliwości wprowadzania zmian w sposobie wyświetlania tych wpisów?

Jak już wspominałem, Windu w obecnej formie jest przeznaczony dla webdeveloperów. Założyliśmy więc, że użytkownik, który decyduje się na stworzenie strony posiada podstawową wiedzę z zakresu HTML/CSS.

Zmiana szablonu odbywa się z poziomu CMSa; należy uruchomić zakładkę “grafika”, wybrać dany szablon i zmienić jego kod. Możemy zatem stworzyć własny szablon praktycznie od zera bez konieczności łączenia się z FTP i jakiejkolwiek ingerencji w pliki systemu.

System składa się z tak zwanych “Widgetów”. Są to małe “programiki”, które pozwalają na wyświetlenie określonej rzeczy, na przykład panelu logowania, aktualności, komentarzy czy też boxa z ocenami podstrony. System jest otwarty i nasi użytkownicy piszą już sami takie dodatki, wymieniając się nimi na naszym forum.

Aby jeszcze bardziej ułatwić naszym użytkownikom korzystanie z Windu, opublikowaliśmy 6 wideoporadników pokazujących, jak tworzyć strony na Windu. Bardzo cieszy nas, że Windu wykorzystywane jest nawet przez bardziej ogarniętych w temacie gimnazjalistów czy licealistów. Na naszym CMSie powstało też kilka stron szkół i klas w ramach zajęć z informatyki! :)

Należy jednak podkreślić, że w głównym zamyśle system przeznaczony jest dla osób obeznanych z tematem.

Widzę, że domyślny szablon zrobiony jest w dwóch wersjach językowych, czy to standard w tym CMS-ie? Rozumiem, że każdy tworzony nowy szablon, dostępny na Waszej stronie, musi być również stworzony w tych wersjach językowych.

Nie, szablon może być tworzony w dowolnym języku. Windu posiada 2 pliki z tłumaczeniami dla każdego języka: jeden dla strony głównej a drugi dla panelu admina. Każdy może z poziomu CMSa dodać nowy język zarówno dla strony jak i panelu admina. Obecnie mamy już wersję angielską, w planach jest jeszcze niemiecka, hiszpańska i rosyjska. Oczywiście docelowo zależy nam na jak największej liczbie wersji językowych.

Teraz trochę o bezpieczeństwie. Czy uważasz, że przesyłanie haseł użytkownikom w jawnym tekście to bezpieczne rozwiązanie?

Poruszasz ważną kwestię jednak myślę, że nie ma powodów do obaw. Użytkownik podaje swój e-mail podczas rejestracji. Hasło wysyłamy specjalnie dlatego, by nikt nie wykorzystał do tego celu cudzego adresu e-mail. Ponadto jest to zabezpieczenie przed zapominaniem hasła przez użytkowników, co bardzo często się zdarza.

Tak na prawdę każda strona bez protokołu https może zostać podsłuchana przez hakera; to sprawia że przesłanie hasła mailem nie stanowi większego zagrożenia, niż zwyczajna procedura logowania. Prawdopodobieństwo takiej sytuacji jest niewielkie – podobnie jak przechwycenie tego e-maila z hasłem przez niepożądaną osobę.

Faktycznie pojawiło się kilka tego typu pytań od użytkowników, być może wrócimy więc jeszcze do tej kwestii i zmienimy stosowane rozwiązanie.
Generalnie tworząc Windu zwracaliśmy szczególną uwagę na bezpieczeństwo. Hasła są “solone” (szyfrowane z wykorzystaniem nowych danych) i wielokrotnie kodowane tak, że nawet po wycieku bazy danych haker nie zaloguje się do panelu admina. Zmienne sesyjne przechowywane są za pośrednictwem specjalnej tabeli tak aby hasło nie było zapisywane bezpośrednio w ciasteczkach. Podobnych rozwiązań, służących bezpieczeństwu danych, jest więcej.

W najnowszej – jeszcze tworzonej – aktualizacji Windu będzie umieszczony dodatkowo Firewall, który ochroni system przed atakami DDos (w pewnym zakresie: wycinając za pośrednictwem pliku .htaccess wrogie IP wykonujące podejrzane ilości requestów do naszej strony).

Jak w każdym, nie tylko tak młodym systemie, wiele jeszcze rzeczy z pewnością można poprawić. Nad częścią z nich już pracujemy, dlatego wszelkie sugestie i uwagi bardzo nam pomagają. Bardzo często sami użytkownicy podsuwają nam ciekawe pomysły albo krytykują niektóre rozwiązania, mobilizując nas do roboty :) Staramy się w każdej aktualizacji uwzględnić kolejne uwagi.

Opowiedz coś więcej o technicznych aspektach tego CMS-a. Czym zarządzane są bazy danych, dostępne języki programowania czy może są u Was jakieś innowacyjne rozwiązania w zakresie tworzenia treści?

Hmm… Nie będę udawał, że odkryłem Amerykę:). Windu nie wykorzystuje jakichś niesamowitych technologii nieznanych do tej pory. Wykorzystaliśmy w zasadzie to, co było już znane i dostępne. Inną kwestią był natomiast dobór i zestawienie różnych rozwiązań, aby jak najlepiej ze sobą współgrały. Poświęciliśmy na to sporo czasu i uważam, że było warto.

Po pierwsze nie zdecydowaliśmy się na skorzystanie z jednego z dostępnych frameworków PHP, takich jak np: Zend Framework. Ze względu na wydajność i chęć jak najlepszego dopasowania do specyfiki CMSa postanowiłem napisać własny framework.

Po drugie – wbrew trendom – nie skorzystaliśmy z bazy danych MySQL tylko z SQLite. To taka uproszczona wersja bazy danych, w której dane przechowywane są w pliku na tym samym serwerze co systemu. Takie rozwiązanie przyspiesza pracę CMSa – nie czekamy na połączenie z zewnętrznym serwerem bazy danych i nie tracimy cennych milisekund :).

SQLite w przypadku Windu i stawianych na nim stron wystarcza w zasadzie w 100%.
Z innych ciekawostek: Windu posiada wbudowane serwery plików oraz obrazków. Pozwala to programiście w bardzo prosty sposób zarządzać zdjęciami i plikami.

Na przykład, aby wywołać zdjęcie należy wpisać http://windu.org/image/ppmydzwsmkjj/480/480/smart/original/9/.
Ciąg liter ppmydzwsmkjj to klucz naszego zdjęcia, kolejne parametry to rozmiar i typ przycinania i na koniec skala kompresji. Zmieniając parametry w linku nasz image serwer przeskaluje i przytnie zdjęcie, a następnie zapisze wynik swojej pracy na serwerze.

Podobnie działa file server, gdzie wystarczy dopisać hasło “zip” do linku z plikiem i Windu sam stworzy paczkę .zip zawierającą wybrany plik.

Generalnie Windu to nie tylko CMS – to raczej cały framework pozwalający zaawansowanym użytkownikom (programistom PHP) tworzyć naprawdę spore portale.

Przybliż teraz trochę kwestię płatnych wersji. Czym się różni wersja CMS Windu Plus od CMS Windu Pro? No i zdradź, ile takich kont macie już sprzedanych w porównaniu z liczbą użytkowników darmowej wersji?

Jak już wspominałem, Windu powstało przede wszystkim z własnej potrzeby ułatwienia sobie pracy. Na samym początku nie nastawiałem się na jakikolwiek zysk. Kiedy zdecydowaliśmy się opublikować darmowy system kilka lat temu mieliśmy na celu przede wszystkim pomoc użytkownikom i rozwijanie CMSa – dzięki powiększającej się grupie testerów ciągle dopracowywaliśmy, szlifowaliśmy i naprawialiśmy błędy. Do tego czasu Windu było bezpłatne- naszym jedynym wymogiem wobec użytkowników było umieszczenie w stopce strony wykorzystującej nasz system linka do windu.org.

Myśl o komercjalizacji pojawiła się dużo później, pod wpływem pozytywnego feedbacku użytkowników. Z Windu zaczęła korzystać coraz większa grupa profesjonalnych i półprofesjonalnych twórców stron, których klienci nie życzyli sobie linka w stopce. Stąd pomysł na licencję PRO, dającą możliwość usunięcia linku ze stopki. Dodaliśmy też kilka rozszerzonych funkcjonalności. Zebrane w ten sposób fundusze nie były powalające :) ale wystarczyły na pokrycie kosztów utrzymania serwerów, kampanii Adwords czy Facebook Ads.

Ten model aktualny jest do dziś: Windu Free jest w pełni funkcjonalny, niczego mu nie brakuje zaś narzędzia obecne w wersji PRO są dodatkiem dla użytkowników, którzy kupując licencję wspierają rozwój projektu.

Kupując płatną licencję użytkownik wybiera spośród 5 produktów: 2 typy licencji PRO, licencja PLUS (różniące się zestawem narzędzi dodatkowych) oraz 3 pakiety ilościowe (licencje można wykorzystać na 1, 3 lub 25 domen).

Oczywiście nie będę mówił, że pieniądze nie są ważne: kiedy włożyło się mnóstwo pracy i czasu w pisanie systemu, fajnie jest widzieć wymierne korzyści. Dlatego Windu obecnie jest bardziej skomercjalizowane niż na początku; jest to też konieczne z punktu widzenia potencjalnych inwestorów z którymi zaczęliśmy rozmowy. Jednak absolutnie nie zamierzamy rezygnować z w pełni funkcjonalnej, bezpłatnej wersj.

W tej chwili ciężko mówić o konkretnych liczbach i porównywać statystyki, gdyż sprzedaż uruchomiliśmy dopiero 15 stycznia. Obecnie na Windu postawionych jest ponad tysiąc stron, ale dane do jakichkolwiek porównań będziemy mieć dopiero za jakiś czas. Mogę natomiast powiedzieć, że dotychczasowe wyniki są bardzo optymistyczne:).

Już wiemy, jaki macie model biznesowy dla swojego projektu, powiedz jeszcze, jak wygląda kwestia finansowania tego pomysłu. Tworzycie go we własnym zakresie czy macie jakiegoś inwestora, który zainteresował się już Windu CMS?

Tak jak wspomniałem wcześniej, do tej pory wszystko finansowaliśmy we własnym zakresie lub z pojedynczych wpływów z licencji PRO, które starczały akurat na utrzymanie serwerów, sporadyczne kampanie Adwords itd. Aktualnie prowadzimy rozmowy z kilkoma inwestorami; dzięki współpracy będziemy mogli dokończyć prace nad wersją SaaS. Rokowania są pozytywne, więc przy odrobinie szczęścia będzie ona gotowa za kilka miesięcy. Przed nami ogrom pracy, ale jesteśmy optymistycznie nastawieni:).

Cóż, pozostaje mi w takim razie życzyć samych sukcesów w rozwijaniu tego projektu. Sam będę mu się przyglądał teraz wnikliwie. Tymczasem oddaję Cię w ręce naszych Czytelników, to wymagająca widownia - życzę powodzenia:). Pozdrawiam i dziękuję za rozmowę.

Również dziękuję i niecierpliwie czekam na komentarze - wbrew pozorom to właśnie dzięki tym najbardziej krytycznym użytkownikom wprowadzamy zazwyczaj najbardziej wartościowe zmiany.

Hej, jesteśmy na Google News - Obserwuj to, co ważne w techu

Więcej na tematy:

CMS