Borek Bernard: VersionPress

Poprvé jsem se setkal se jménem Borek Bernard (Twitter) někdy počátkem roku 2013, kdy jsem náhodou zahlédl inzerát, že hledá vývojáře pro ambiciózní projekt. Po několika letech práce na projektu VersionPress se mu nyní podařilo získat investici v hodnotě přibližně 10 milionů Kč, která má usnadnit a urychlit další vývoj. Pojďme se společně podívat, jak vlastně VersionPress vznikal a co bude dál.

Borek Bernard

Všude jsi uváděn jako „Borek“, je to jen zapomenutý háček nebo upravené jméno „Bořek“ pro anglicky mluvící země?

Borek Bernard (BB): Mám to takto skutečně v občance, a v naší rodině jsem ještě jedno z normálnějších jmen :)

Pokud se zběžně podíváme na základní životopis, tak zatímco WordPress teprve pomalu vznikal, tak už jsi pracoval jako zkušený vývojář, a to i v zahraničí. Hodně se tam objevuje program Adobe Flex, jako jeden z prvních jsi pracoval se zajímavou technologií pro tvorbu mobilních aplikací a následně zkušenosti zúročil i v rámci vlastních školení. Představíš nám stručně Adobe Flex a jeho aktuální možnosti využití?

BB: Dnes už je Flex přežitý, ale svého času umožňoval stavět webové a později i mobilní aplikace nesrovnatelně rychleji než v HTML/JavaScriptu, resp. v nativních technologiích. Závislost na Flashi mu ale nakonec byla osudná a dnes už ani není důvod smutnit, HTML5 nabízí víc jak po stránce runtimu, tak i vývoje.

Našel jsem tě i jako autora knihy o Flexu. Jako pořadatel mnoha školení jsi měl asi mnoho zkušeností, ale jaké je to psát knihu? Nedávno jsem byl osloven, zda bych nenapsal nějakou příručku pro WordPress, ale moc se mi do toho nechce :-)

BB: Kniha byla zajímavá zkušenost, ale je to fakt hodně práce. Dneska už bych do toho nešel.

Následně vznikla firma Agilio, která oficiálně stojí za projekty VersionPress a Webshotter?

BB: Agilio bylo jenom takové jméno, abychom měli doménu pro maily :) V rámci Agilia postupně vznikalo několik samostatných projektů, z nichž světlo světa spatřily dva, které zmiňuješ. VersionPress je zdaleka nejúspěšnější a nadále si žije vlastním životem.

WordPress

S WordPressem jsi začínal už někdy v roce 2005, takže kolem prastaré verze 1.5 :-) Vzpomínám na dobu, kdy byla spousta podobných redakčních systémů (CMS), zkoušel jsem třeba i b2/cafelog, z něhož WordPress vznikl :-). A zatím nikdo ani netušil, že bude pohánět čtvrtinu webů na světě. Nějak tě WordPress zaujal už v té době nebo to byl jen jeden z mnoha?

BB: Hlavní motivací tehdy bylo, abych měl blog plně pod kontrolou, což na Bloggeru nebylo. Nějaký lehčí průzkum jsem asi tehdy dělal, ale u WordPressu jsem skončil nejspíš podobnou „náhodou“ jako další miliony lidí :)

Na internetu lze najít i některé tvoje starší články, třeba seriál o Drupalu (z roku 2006). Našel jsem dokonce jeden starý migrační skript z WordPressu na Drupal. Nabízí se tedy klasická otázka: WordPress nebo Drupal (Joomla)? :-) Drupal bude asi pro zkušeného vývojáře vhodnější?

BB: S Drupalem mám naposledy zkušenost ve verzi 4.x, možná 5, ale stále mám pocit, že je to hlavně o mindsetu. Drupal se tváří profesionálněji a byl jsem s ním svého času spokojený, ale jednoduchost a určitá „hackovatelnost“ WordPressu je jeho ohromná výhoda. Z pohledu VersionPressu pak už žádné rozhodování nebylo – svět prostě dneska statisticky jede na WordPressu.

Jsi asi jeden z mála vývojářů v Česku, kteří byli nejdříve profesionální programátoři a nakonec skončili s nějakým zajímavým projektem u WordPressu. Většinou to funguje tak, že se někdo s WordPressem (vzhledem k jeho jednoduchosti) teprve programovat učí. Proč se tedy profesionál pustil do velkého projektu pro „zbastlený“ WordPress?

BB: Myslím, že obě skupiny jsou poměrně početné a určitě znám dost lidí, kteří byli dřív vývojáři / kodéři než „WordPressisti“. Pro VersionPress bylo toto klíčové, protože zkušenosti z jiných technologií nám daly a stále dávají vhled do toho, co by šlo dělat lépe.

Sleduješ podrobně aktuální směřování a vývoj WordPressu?

BB: Určitě, vývoj WordPressu mě teď zajímá víc než kdy jindy :)

Co se ti na něm nelíbí? Často je třeba kritizováno zarputilé trvání na zpětné kompatibilitě, která brání dalšímu rozvoji.

BB: Tohle se těžko hodnotí, protože určitá strnulost má i své výhody. Poukázal bych například na Drupal, kde už poněkolikáté přepisují základy toho systému a svět jim mezitím mizí v dáli. (Může se ukázat, že to byla dobrá strategická investice, ale osobně tomu moc nevěřím.)

Nicméně ano, některé věci ve WordPressu člověka „otravují“, ať už to je podpora archaických verzí PHP nebo i jmenné konvence, které jsou v rozporu v podstatě s libovolným jiným PHP projektem na světě, což přináší zbytečnou frikci.

Narazili jste v průběhu práce na nějaké zásadní problémy?

BB: U nás zásadním problémům říkáme výzvy :) Nepotěší například absolutní URL v postech, „GUIDy“, které nejsou skutečně unikátní, chybějící hooky na databázové úrovni apod. Všechno je ale ve výsledku nějak řešitelné.

Zdrojové soubory WordPressu se zásadně neupravují :-) V případě souboru db.php ale asi nebylo vyhnutí? Sledoval jsem, že ses pokoušel přímo u vývojářů prosadit některé změny WordPressu, ale nakonec to neprošlo.

BB: Ano, toto je dobrý příklad jednoho z těžších problémů, viz delší počtení zde. Zcela chápu argumenty core vývojářů, na druhou stranu nás to dostalo do úzkých a museli jsme to „kreativně“ vyřešit.

A výhody? Kromě neuvěřitelně obrovského množství uživatelů, kdy je možné se prosadit na celosvětovém trhu?

BB: WordPress vzal celkově mnoho věcí za správný konec. Bez ohledu na subjektivní názor, nebude náhoda, že pohání 24 % webů.

Kam směřuje budoucí vývoj WordPressu?

BB: Podle mě ho čeká změna především na dvou úrovních. Na té první se nejspíš něco stane s uživatelským rozhraním, protože uživatelská přívětivost není úplně tam, kde by mohla být. Lze si například všímat, jak se víc a víc věcí přesouvá do Customizeru, a rovněž REST API dá patrně vzniknout dalším (a zajímavým) backendům a frontendům.

Na druhé úrovni myslím, že se WordPress bude profesionalizovat. Základ je řekněme tak trochu bastl, ale kolem vzniká hezké, čisté REST API, řadu úkonů lze automatizovat přes WP-CLI, my se snažíme přidat Git-verzování, zkrátka věci se mění. Velikost komunity okolo WordPressu znamená, že na těchto funkcích pracuje řádově více lidí než u konkurence.

Vidíš pro WordPress v blízké době nějakou konkurenci?

BB: Když se člověk podívá na čísla, uvidí, že Drupal a Joomla jsou spíš technologickou alternativou než reálnou konkurencí (tyto systémy jsou cca 10x menší). Samozřejmě se občas objeví nějaká „vyhypovaná konkurence“ typu Squarespace, Wix nebo Ghost, ale patrně to není nic, z čeho by WordPress komunita nespala.

Z mého pohledu je hlavní konkurent jinde: v čistých vývojářských technologiích typu Ruby on Rails, ASP.NET nebo PHP. Přes všechny kvality WordPressu a jiných CMS si pořád cca 60 % projektů zvolí cestu „postavit vše na zelené louce“. Toto je ale možná spíš pro WordPress příležitost, nechme se překvapit…

Nemůže se třeba stát, že začne WordPress ztrácet svůj podíl na trhu a v horizontu několika let postupně zanikne? Už jsem někde podobný katastrofický scénář slyšel a má to i svou historickou logiku (po velkém růstu obvykle přichází pád). Také máš určitě podobné zkušenosti (viz zmiňovaný Adobe Flex). Ale na druhou stranu chystaný WordPress 4.4 vypadá velmi dobře a došlo k velkému pokroku v mnoha oblastech.

BB: Možné to určitě je, ale reálně je pro mě těžké si představit, co by mělo WordPress nahradit. Například Ghost kdysi celou svou existenci postavil na vymezení se vůči WordPressu a technologicky je určitě zajímavý, dalo by se možná říct i ideový nástupce WP, ale stejně je dnes někde pod hranicí statistické chyby. Obecně vyrůst tak, aby se dalo WordPressu konkurovat, je nesmírně těžké, a bude čím dál těžší.

Používáte WordPress i pro další účely (např. programování pluginů pro klienty, tvorba šablon)?

BB: Klientskou práci neděláme, plný focus je teď na VersionPressu.

Používáš WordPress pro svoje weby?

BB: Pro některé ano, pro některé ne. Nemám problém sáhnout po jiné technologii, když mi připadá vhodnější. Například homepage versionpress.net vznikla jako statická HTML stránka, a když potřebovala přidat trochu funkčnosti pro checkout proces, přidal jsem C#. Ne že by ve WordPressu nešla udělat taky, ale tehdy mi například chybělo verzování, staging, člověk musí řešit výkon, bezpečnost a podobně.

Znáš nějaké další ambiciózní české projekty pro WordPress?

BB: Znám tady mnoho šikovných lidí a vím, že tu vzniká řada pluginů, témat nebo i např. WP frameworků. Překlopit ale často soukromý projekt do něčeho světového je těžké; hodně těžké.

Nějaké konkrétní příklady českých projektů, které bys chtěl zmínit?

BB: Jmenovat další konkrétní projekty nechci, protože bych na něco zajímavého určitě zapomněl a bylo by mi to pak líto :) Ale i uvnitř firem zde vzniká mnoho zajímavého, například nový Respekt, kde se kombinoval WordPress s Nette.

Chystáš nějaký nový WordPress projekt? Nebo je něco alespoň ve stadiu nápadu?

BB: Patrně ne přímo, ale skrze VersionPress narážíme na určité oblasti WP světa, které by šlo vylepšit. Nemusí tak v našem případě skončit jenom u verzování, ale na to je teď opravdu brzo.

VersionPress

Pamatuji se, že jsem se o projektu VersionPress poprvé pořádně dozvěděl, když jsme chystali první český WordCamp. V podstatě jsi tam byl pouze jako náhradník, protože tě z komunity nikdo moc neznal :-) Ale nakonec to byla myslím povedená přednáška.

Jak ta myšlenka vlastně vznikla? Podobná funkce ti pro WordPress chyběla?

BB: Ano, přesně tak. Všude mimo WordPress jsem mohl mít svůj projekt v Gitu, svou práci pushovat na GitHub, sdílet s kolegy, staging nebyl nejmenší problém, mergování změn taktéž. A pak jsem měl pár svých WordPress webů, kde toto bylo peklo, protože databáze. Frustrovalo mě to dlouhodobě a v roce 2013 jsme se s kolegy rozhodli prozkoumat, jestli by s tím nešlo něco udělat.

Záměr se od původní myšlenky nezměnil nebo došlo k nějakým zásadním úpravám?

BB: Dobrá otázka, protože většina projektů „pivotne“, tj. obrátí se od původního záměru trochu jinam. Tady je ale technický cíl velmi jasný, WordPress web musí jít verzovat zcela stejně jako čistý projekt bez databáze, a tam není moc možností, jak to může dopadnout. Na druhou stranu se nám několikrát (a dost zásadně) otočil business model, takže v tomto nejsme jiní než jiné startupy.

Máte v současné době nějakou konkurenci? Jakou máte případně hlavní výhodu?

BB: Plnohodnotné verzování nikdo jiný nedělá, protože ho buď odradila technická obtížnost, nebo došel k závěru, že to nejde :) Takže už v základu dokážeme nabídnout dost unikátní hodnotu.

Jinak ale samozřejmě například před investory nejde říct, že „nemáme konkurenci“, protože nějaká se najde vždycky. V našem případě jsou to například backup pluginy, protože jeden stomegový ZIP jednou týdně / denně je taky svým způsobem uloženou „verzí“ webu. Už z tohoto popisu je ale asi jasné, jak je to oproti VersionPressu neohrabané a nepraktické řešení.

Druhým typem konkurentů jsou workflow pluginy typu WP Migrate DB Pro a podobní. Vůči nim máme hlavní výhodu, že pracujeme s historií, ne na úrovni statického porovnání, takže zatímco jiný plugin dokáže porovnat dvě databáze a říct „hele, na IDčku 85 je post jak na produkci, tak na stagingu“, my umíme pokračovat a říct „… ale nejsou to stejné posty, protože jeden vznikl takhle a druhý zase takhle. Vůbec staging v podání VersionPressu je krásná věc a až ji dotáhneme do uživatelsky přívětivé podoby, bude to podle mě taková menší revoluce.

Nedávno vyšel VersionPress 2.0, který přinesl velmi povedenou funkci, kdy je možné snadno vrátit provedené úpravy. Po takové funkci jsem dlouho toužil a občas VersionPress interně používám jako debugovací nástroj pro některé pluginy. Stačí provést v administraci potřebnou akci a pak už se jenom podívat, co konkrétní plugin napáchal v databázi.

BB: Ano, verze 2 pro toto přinesla uživatelské rozhraní, ač základní funkčnost je v produktu samozřejmě od začátku (musel se použít nějaký Git klient). Je to fakt hodně užitečné a používám to také :)

Kdo stojí ještě za vývojem? Dohledal jsem na internetu druhého vývojáře, kterým je Jan Voráček (Twitter). Jak jste se vůbec poznali?

BB: Ano, Honza je u projektu od začátku a je také jeho hlavním programátorem. Fungujeme zjednodušeně tak, že já dostávám šílené, nerealizovatelné nápady, a Honza je realizuje :) Myslím, že se krásně doplňujeme. Od letošního roku máme také nového kolegu Vaška, který stojí za novým uživatelským rozhraním, a v blízké době budeme hledat další kolegy, takže pro čtenáře-vývojáře, mrk mrk :)

Jak funguje spolupráce na větším projektu? Sedíte v jedné kanceláři? Podělíš se o nějaké technické zázemí? Co bys doporučil, kdyby se skupina (řekněme 2 – 3) lidí chtěla pustit do nějakého většího projektu? Nějaké oblíbené a prověřené aplikace a postupy?

BB: Ano, sedíme v jedné kanceláři (přesněji v jednom bytě), plus občas pracujeme vzdáleně, jak je dnes běžné. Na infrastrukturu jsme nenároční – řada věcí se dá ze začátku řešit „punkově“. Interně máme Slack, wiki, issue tracker a podobné věci, jak je asi běžné.

Předpokládám, že používáte také Github, když je Git hlavní technologií pro VersionPress?

BB: Na GitHubu (zatím) nejsme, ale Git pochopitelně používáme. Ve skutečnosti se zrovna tento týden přesouváme z naší staré infrastruktury, což byla JIRA + Bitbucket, na GitHub. Asi to nebude znít cool, ale já byl s nástroji Atlassianu spokojený a GitHub je v řadě ohledů drobným krokem zpět, na druhou stranu to samozřejmě vůbec není hrozné a do budoucna tam stejně být musíme, chceme-li VersionPress otevřít komunitnímu vývoji (jakože chceme). Více jsem o tomto přechodu nedávno psal na DevBlogu.

VersionPress je v současné době dostupný v podobě prémiového pluginu za 50 USD. Jaké jsou další plány (s ohledem na plánované otevření komunitnímu vývoji)?

BB: Jsem s označením „prémiový plugin“ dost opatrný, protože to vytváří určitá očekávání. My jsme zatím ve vývojové fázi, na což je uživatel na našem webu průběžně upozorňován. Placený Early Access Program (EAP) je napůl přístup k softwaru, napůl čistá a nezištná podpora. EAP je každopádně dočasný stav.

Do budoucna máme poměrně mnoho možností, kterými se vydat, a proto se nechci veřejně k nějaké určité zavázat. Není ale tajemstvím, že většina úspěšných WordPress projektů kombinuje základní verzi zdarma nebo ještě lépe OSS, plus přidává nějaké prémiové služby okolo. To bude skoro určitě i naše cesta.

Získaná investice sice vypadá jako poměrně vysoká částka (10 milionů Kč), ale když si vezmu, že na tom pracují na plný úvazek 3 lidé a další budou postupně přibývat, tak to zase není nic megalomanského. K čemu je investice konkrétně určena a na jak dlouho bude stačit?

BB: Je to jak říkáš, částka je tak akorát a v podstatě odpovídá zavedeným pořádkům takzvaného „seed roundu“ v evropských podmínkách. Nevybočujeme ani v dalších parametrech, kdy bývá investice zhruba na rok až dva dopředu a stojí za ní konkrétní plán a rozpočet. Přesto jsme ve světě WordPress pluginů dost unikátní, v podstatě vím jen asi o jednom dalším, kterému se něco podobného povedlo (američtí Timely v roce 2012). Musíme holt být průkopníci nejen technologičtí, ale i co se týče financování :)

Neobáváte se „klidu na práci“, který může snižovat motivaci? :-)

BB: Vnímám to přesně naopak. Před externí investicí má člověk mnoho důvodů (ať už objektivních, domnělých nebo vyložených výmluv), proč se projektu nemůže naplno věnovat. To se vstupem investorů končí. Nejenom že je konečně čas se projektu plně věnovat, je i daleko větší zodpovědnost a tím pádem i motivace.

Máte nějaké konkrétní cíle pro nejbližší měsíce?

BB: Ano, netechnickou prioritou číslo jedna i de facto pointou investice je rozšíření týmu, takže bych si znovu s tvým svolením dovolil oslovit čtenáře – pokud se nebojíte technologických výzev a chtěli byste dělat něco přelomového pro WordPress, ozvěte se mi prosím.

A co se chystá pro VersionPress do budoucna z hlediska nových funkcí?

BB: Máme s projektem mnoho plánů, ale mým největším snem je, aby „Undo“ funkcionalita byla dostupná na každém webu, použitelná každým. My jsme jako undo tlačítko někde vlevo nahoře ve Word a Excelu – WordPress je dnes systém, kde toto tlačítko chybí.

Investice

Když jsem testoval jednu ze starších verzí, tak jsem jen zběžně nahlédl do zdrojového kódu a je tam vidět obrovské množství práce. A někdo to asi musí zaplatit :-) Vývoj VersionPressu do nějaké funkční podoby trval odhadem dva roky? Pracovali jste na tom naplno nebo pouze ve volném čase? A co finance?

BB: Vývoj začal v roce 2013 a skutečně to nebyla žádná sranda. Verzování nad databází je složitý problém a bylo tak potřeba postupovat jinak než u běžných pluginů, které většinou rychle dokážou vydat verzi 1, začít inkasovat peníze a z toho financovat verze 2, 3 a tak dále. VersionPress je problém vysoké složitosti, ale snad i s vysokými benefity, pokud se nám to podaří, takže bylo potřeba k tomu přistoupit jako k budování startupu.

O chystané investici jsem věděl už několik měsíců, protože jsem byl osloven investory, abych jim nezávisle řekl, co si o projektu myslím. Investor se objevil sám nebo ses snažil na projekt upozornit a sehnat peníze na jeho dokončení?

BB: V rané fázi se investor nikdy neobjeví sám. Celý proces byl v našem případě mnohaměsíční, započatý z mé strany zhruba v únoru, březnu tohoto roku.

Spustili jste i kampaň na získání finančních prostředků pomocí Kickstarteru, která se sice nakonec nepovedla, ale asi jste se dostali do podvědomí komunity a začali o vás psát různé specializované servery (např. WPtavern)?

BB: Ano, to bylo minulý rok v červnu, a ačkoliv jsme v kampani nevybrali tolik, kolik jsme chtěli, jsem zpětně hrozně rád, že jsme tím prošli. Zjednodušeně řečeno, nebýt oné „neúspěšné“ kampaně, není dnes VersionPress tady. Kromě vzbuzení zájmu v zahraničí a samozřejmě nějaké vybrané částky byla velmi důležitá i validace nápadu, což mnoho startupů podceňuje. Crowd-funding můžu jedině doporučit.

Co spolupráce s investory? Domluvili jste se hned nebo jste se dlouho dohadovali o podmínkách?

BB: Hledání investora (správně bych měl říct investorů, protože jich bylo víc) a výsledné uzavírání investice je zajímavý proces. Velmi správně poznamenáváš, že investice není jen o penězích, ale i mnoha dalších věcech, takže je důležité, kdo je konkrétním partnerem. My jsme v Credo Ventures měli skvělého partnera a obecně jsem hrozně rád, že zrovna oni naši investici vedli.

Konečná podoba dohody je vždy o kompromisu, ale jaké přinese spolupráce konkrétně výhody?

BB: Asi evidentní výhodou je, že je nyní VersionPress zdravě zafinancovaný a budeme se moci soustředit na práci. Každý investor pak přináší nějakou další přidanou hodnotu, např. síť kontaktů, obecnou pomoc s budováním businessu apod. Do třetice je zde motivační složka, protože úspěch nebo neúspěch už není jen věcí founderů.

A co naopak nevýhody?

BB: Mechanicky by se zde daly vypsat věci jako např. ztráta absolutní kontroly, uvázání se k některým věcem apod., ale to vše je součást balíčku, který tlačí VersionPress dopředu. Což je z mého pohledu jasně pozitivní.

Nějaké „veselé příhody“ z vyjednávání?

BB: Možná to nesouvisí s nejčerstvější investicí, ale když jsme se před rokem snažili zajistit VersionPressu živobytí skrze crowd-fundingovou kampaň, snažil jsem se (velmi naivně) získat podporu od někoho vysokého z Automatticu, ideálně od Matta. Stačil by mi tehdy hloupý tvít a snažil jsem se ho získat tak, že jsem poslal email asi na čtyři adresy, včetně té jeho. Zhruba za týden mi pípnul mobil v kapse s emailem od něj – hurá! V kampani ještě nebylo pozdě. Odpověď zněla takto: „Je to zajímavý projekt, ale prosím přestaň spamovat lidi z Automatticu“. To bylo vše. No, asi to nebyl úplně nejlepší začátek :)

Díky moc za rozhovor a držím palce!

Ideální český hosting pro český WordPress CZECHIA

2 komentáře u „Borek Bernard: VersionPress“

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *