Cannabivo.com
Legfrissebb hírek
Böngészés
Csomagok és előfizetésekTermékekÖsszes termék böngészése
Tudás és biztonságBiztonság és információÁrtalomcsökkentés és biztonságos használatKannabisz WikiSzakértői kannabisz tudástárRólunkKik vagyunk és mi a küldetésünk
Súgó és támogatásKapcsolatLépj kapcsolatba a csapattalGYIKGyakori kérdések megválaszolvaÜgyfélszolgálati chat oldalGYIK, útmutatók és élő chat egy helyen
Beállítások

App letöltése

Szerezd meg a Google PlayenTöltsd le az App Store-bólHamarosan

Kövess minket

Megjelenés

Kiemelő szín

Nyelv

Üdvözöljük

Jelentkezz be klubok mentéséhez, a fórumhoz és a tagság kezeléséhez.

A Cannabivo kabalafigurája egy neonfényű kannabisz társas klubban, kezében egy telefonnal, amely a Cannabivo alkalmazást és a klubkönyvtárat mutatja.

Belső

36 perc olvasás

Cannabivo: az infrastruktúra felépítése a nemzetközi Cannabis közösségi klubhálózathoz

A Cannabivo a jogszerű Cannabis közösségi klubok, holland coffeeshopok és smoking lounge-ok nemzetközi információs névjegyzéke és hírközpontja — egy hely a keresésre, a felfedezésre és a kapcsolódásra átlátható, naprakész, többnyelvű információk révén. Ami ezután következik, az ennek a történetnek a teljes változata: honnan jött a Cannabivo, mivé vált, és pontosan hogyan épül fel.

A 2024-ben látott hiány

Hogyan lett a „jobb névjegyzék Németországnak és Spanyolországnak” egy tíz országot, tizennyolc nyelvet és negyedmillió oldalt átfogó éles platformmá — és az azt megtartó élvonalbeli mérnöki megoldások összességévé.

Egy névjegyzék lehet több is, mint egy lista. Ha jogszerű, többnyelvű, ellenőrzött, privát és technikailag komoly, akkor már nem is pusztán lista. Infrastruktúrává válik.

„Cannabis közösségi klubok, coffeeshopok és smoking lounge-ok — egy nemzetközi névjegyzék és hírközpont.” Ez az egy mondatos ígéretünk, és szándékosan ilyen egyszerűen hagytuk. A Cannabivo nem fogyasztásösztönző kampány, nem a Cannabis piactere, és nem egy újabb vékony, másolt címekből összerakott adatlapos oldal. Ez egy nemzetközi információs névjegyzék jogszerű Cannabis közösségi klubok, holland coffeeshopok és smoking lounge-ok számára — úgy felépítve, hogy az emberek Keresés → Felfedezés → Kapcsolódás útján, átlátható, aktuális és saját nyelvükön elérhető információkhoz jussanak.

A cél mélyebbre mutat, mint egy névjegyzék. A Cannabivo a CSC közösség infrastruktúrájává válik: eleve privátra tervezett, nemzetközi léptékű, közösségvezérelt és 18 nyelven élő platform. A rendszer már most 225 792 oldalt, 211 397 geolokációs oldalt és 13 573 klubbejegyzést 10 országban szolgál ki. Emellett egy mély Cannabis-wiki, oktatási és megelőzési oldalak, hírfolyam, automatizált klubfrissítések, közösségi fórum és valós eszközökhöz kapcsolt AI-támogatási ügynök is működik benne. Mindez alatt egy teljesen házon belüli, keretrendszer nélküli architektúra fut: modern webes szabványok, tartós PHP-munkafolyamatok, HTTP/3, a lehető legszigorúbbra állított statikus elemzés, first-party analitika, valamint egyetlen típusos PHP → TypeScript → Dart szerződés, amelyet a web és a mobil közösen használ.

Ez a történet hosszú változata: honnan jött a Cannabivo, mi a mai formája, és — részletesen — hogyan épül fel.

Németország 2024 eleji legalizációja rávilágított valamire, amit addig könnyű volt figyelmen kívül hagyni: a Cannabis közösségi klubok online lefedettsége messze nem volt készen a menetrend szerint érkező valóságra. Egy tapasztalt webfejlesztő szemével a meglévő megoldások többsége félkésznek tűnt — széttöredezettnek, hiányosnak, rosszul lokalizáltnak, technikailag elavultnak és túl vékonynak ahhoz, hogy bárkinek ténylegesen segítsen.

Az embereket foglalkoztató kérdések nem voltak nehezek. Hol vannak a jogszerű klubok? Mely adatok naprakészek? Mit kell egy új belépőnek megértenie, mielőtt kapcsolatba lép egy klubbal? Mi a tényszerű, mi az elavult, és mi az, amit egyszerűen csak valahonnan bemásoltak? Túl gyakran szóródtak szét a válaszok gyenge minőségű listák, gépi fordítású töredékek és olyan oldalak között, amelyek láthatóan soha nem arra a közösségre készültek, amelyet kiszolgálni állítottak.

Az első ötlet szerény volt: egy jobb névjegyzék Németországnak és Spanyolországnak. De minél közelebb néztünk, annál világosabb lett a minta. A CSC közösségnek nem még egy helylistára volt szüksége. Egy többnyelvű, jogilag körültekintő, technikailag megbízható információs rétegre volt szüksége — olyasmire, amely országonként skálázható, miközben megőrzi a pontosságot város, régió, egyetlen klub, egy cikk, egy FAQ-bejegyzés, egy nyelv szintjén is.

A teljes, házon belüli fejlesztés 2024 késő nyarán/őszén indult. A Cannabivo 2026 februárjában indult el, mind a 18 nyelven az első naptól kezdve, és azóta szinte naponta fejlesztik. A sorrend itt a lényeg: a többnyelvű támogatás soha nem utólag lett hozzácsavarozva az indulás után. A kezdetektől a alapba öntöttük — az adatbázisba, az URL-ekbe, az útvonalkezelésbe, az SEO-rétegbe — már az első commitnál.

Ami egy névjegyzék-koncepcióként indult, az AI-támogatott fejlesztés gyorsításával nemzetközi platformmá nőtt, amely Argentínát, Kolumbiát, Németországot, Máltát, Hollandiát, Dél-Afrikát, Spanyolországot, Svájcot, Thaiföldet és Uruguayt fed le. Minden ország lefedettsége még mindig folyamatban van, és ezt tudatosan mondjuk így. De az éles működésű lépték már valós, és a középtávú cél nem kérdéses: lefedni minden olyan országot, ahol a Cannabis legalizált vagy legalább dekriminalizált, beleértve a pilotprogramos országokat is, mint Svájc, amely már szerepel a rendszerben.

Mi a Cannabivo ma

A Cannabivo éles üzemben működik és aktívan karbantartott. A 2026-06-13-án ellenőrzött éles pillanatkép olyan platformot ír le, amely már régen túllépett a prototípus-fázison.

Egy széles, modern műveleti munkatér több nagy képernyővel, amelyeken térképek, listák és irányítópultok láthatók nyugodt, sötét témájú felületen.
A Cannabivo egyetlen nagy, élő platformként működik — névjegyzék, wiki, hírszerkesztőség és támogatási réteg egyetlen termékben.
Éles mérőszámJelenlegi darabszám
Összes oldal225,792
Geolokációs oldalak211,397
Klubbejegyzések13,573
Külön klub-adatlapok13,573
Cannabis-wiki cikkek106
Wiki-kategóriák9
FAQ-bejegyzések82
FAQ-kategóriák11
Publikált szerkesztőségi cikkek15
Automatizált klubfrissítési hírbejegyzések275
Regisztrált felhasználók1,216
Fórumtémák170

Ezek közül egyik sem hiúsági szám. Mindegyik mögött termékdöntés áll.

Egy nagy névjegyzéknek szüksége van geooldalakra, mert az emberek helyben keresnek. Szüksége van részletes oldalakra, mert minden klub megérdemli a kontextust, nem csak egyetlen sort egy listában. Szüksége van többnyelvű URL-ekre, mert a nemzetközi felhasználókat soha nem szabad utólagos gondolatként kezelni. Folyamatos gondozásra van szüksége, mert a bejegyzések elöregszenek, amint senki sem foglalkozik velük. Oktatási oldalakra van szüksége, mert az információ minősége az egész értelme. És fórumra is szüksége van, mert a CSC közösség nem csupán keresési probléma — beszélgetés is.

Ellenőrzött nemzetközi névjegyzék

A névjegyzék jelenleg 13 573 klubot sorol fel 10 országban:

Egy nagy, megvilágított falitérkép, amelyet Európában, Dél-Amerikában, Afrikában és Ázsiában csoportosuló helyjelölők borítanak.
Minden klubbejegyzést ellenőriznek és geokódolnak a saját oldalára, így a névjegyzék a valós jelenet ellenőrzött térképeként olvasható tíz országban.
OrszágKlubok
Thaiföld9,489
Spanyolország1,081
Uruguay810
Németország710
Hollandia673
Argentína495
Dél-Afrika243
Kolumbia41
Málta18
Svájc13

Thaiföld ma az adatbázis legnagyobb része, és ez a lépték valódi erősség. Spanyolország, Németország, Hollandia, Uruguay, Argentína és a többiek mind más jogi környezettel, eltérő helyi elvárásokkal és más felfedezési mintázatokkal érkeznek. Egy komolyan veendő nemzetközi névjegyzéknek mindezt egyszerre kell kezelnie anélkül, hogy zajba fulladna.

A Cannabivo ellenőrzöttként jeleníti meg a bejegyzéseit, és az ellenőrzés a platform alapvető ígérete — nem olyan címke, amelyet könnyelműen ragasztunk rá. Ekkora léptéknél ennek megtartása legalább annyira rendszerek kérdése, mint szerkesztői fegyelemé. Folyamatosan naprakészen tartjuk a bejegyzéseket: új nyitások, bezárások, költözött címek, módosult adatok. A cél nem az, hogy egy névjegyzéket megfagyasszunk az időben, hanem az, hogy a valós világ mozgásával együtt kövesse azt. Egy olyan névjegyzék, amely már a megjelenése napján elavul, rosszabb, mint ha nem is létezne.

A bejegyzések körül egy kereshető interaktív térkép, egy külön klubkereső és egy frissességre tervezett kezdőlap található — nemrég hozzáadott klubokkal, népszerű városokkal, országonkénti központokkal, valamint hírek és klubfrissítések élő folyamával.

Wiki, oktatás és megelőzés — reklámüzenetek nélkül

Egy egyszerű névjegyzék meg tudja mondani, hogy valami hol van. A Cannabivo arra épül, hogy megmondja, mit jelent.

A Cannabis-wiki 106 cikket tartalmaz 9 kategóriában, mély anyagokkal a botanikáról, a történetről, a jogról és a fogyasztással kapcsolatos tudásról. Ez nem egy jelentősnek látszani próbáló, felpuffasztott szójegyzék; kutatással és írással készült, hogy önmagában is megálljon. Mellette oktatási és megelőzési oldalak állnak — tényszerűek, reklámmentesek, és arra készültek, hogy a megértést segítsék, ne egy terméket toljanak.

Ez a határ nem díszlet. A Cannabivo információs névjegyzék. Nem teszünk orvosi állításokat, és nem ösztönzünk fogyasztásra. Szervezett, többnyelvű, jogszerű információhoz adunk hozzáférést, és ezt a határt tudatosan tartjuk, mert az egész platform hitelessége ezen nyugszik. A wiki, valamint az oktatási és biztonságos használattal kapcsolatos részek tovább fognak növekedni — több cikk, több kép, több videó.

Hírek, automatizált frissítések és közösség

A hírszekció új, és már most forgalmas. Kutatott szerkesztőségi cikkeket párosít automatizált klubfrissítési hírekkel. A jelenlegi éles pillanatkép szerint a Cannabivo 15 publikált szerkesztőségi cikket és 275 automatizált klubfrissítési hírbejegyzést tartalmaz.

A párosítás szándékos. A szerkesztőségi cikkek adják a tágabb kontextust — szakpolitikai változások, jogi fejlemények, kulturális pillanatok. Az automatizált klubfrissítési hírek azért léteznek, mert egy névjegyzék soha nem áll meg: klubok nyílnak, adatokat javítanak, címek változnak. Egy élő hírfolyam megmutatja ezeket a változásokat, ahelyett hogy egy néma adatbázis alatta lassan átíródna.

Van egy közösségi fórum is, és nő — eddig 1 216 regisztrált felhasználó és 170 fórumszál. A fórum nem utólag rászerelt elem. A CSC kultúra egyszerre helyi, jogi, gyakorlati és közösségi. Egy névjegyzék segít megtalálni az információt; egy közösség segít megvitatni, összevetni és egymástól tanulni. Mindkettőnek egy fedél alatt a helye.

Az AI-támogatási chat valódi eszközökkel dolgozik

A Cannabivo támogatási chat nem egy dísz-chatbot, amelyet a lap sarkára ragasztottunk. Egy Cannabivo-ra betanított AI-támogatási ügynök, a weben és az appban, valós platformeszközökhöz kapcsolva, nem pedig magára hagyva találgatni.

A gyakorlatban az ügynök képes erre:

1. Megtalálni egy konkrét Cannabivo-oldalt, és átadni a valódi, kanonikus linket — a felhasználó nyelvén, soha nem hallucinált URL-t. 2. Klubokat keresni név, város, régió vagy közelség alapján, beleértve azt is, hogy egy klub éppen nyitva van-e. 3. Válaszolni a FAQ tudásbázisából. 4. Valós támogatási jegyet nyitni, ha nem tud segíteni — kategóriával, címmel és leírással —, hogy egy ember átvehessen a folyamatot.

A különbség itt az egész lényeg: ahelyett, hogy tippelne, az ügynök meghatározott platformhatárokon belül működik, és valóban létező linkeket és klubokat ad vissza. Emellett magától is pontosabbá válik, ahogy a FAQ bővül, mert a FAQ-rendszer dinamikusan karbantartott és önjavító — minden rés, amit betömünk, olyan tudássá válik, amelyre az ügynök legközelebb támaszkodhat. A háttérben a chat WebSocket-átjátszón fut Redis pub/sub és folyamatos streamelt válaszok mellett, és a modell telepítésenként konfigurálható.

A filozófia egyszerű: az AI vegye le a súrlódást anélkül, hogy fekete dobozzá válna. Ha az ügynök megbízhatóan tud válaszolni a Cannabivo saját adataiból, tegye meg. Ha nem tudja, akkor a kérdést egy valós támogatási folyamathoz kell továbbítania — nem kitalálnia egy választ a csend kitöltésére.

Egy platform, tizennyolc nyelv

A Cannabivo az első napon mind a 18 nyelven indult. Nem ez volt a könnyű út. Ez volt a helyes.

Egy falnyi kis, egymáshoz hasonló tábla, mindegyiken egy-egy köszöntés különböző világnyelven, rendezett rácsba foglalva.
Ugyanaz az oldal natívan létezik tizennyolc nyelven, mindegyikhez saját tiszta URL tartozik — a lokalizáció az infrastruktúrába van beépítve, nem utólag hozzátoldva.

Az oldal jelenleg 225 792 oldalt futtat, és mindegyik mind a 18 nyelven létezik. Adatbázisszinten ez nagyjából 4 millió oldalfordítási sor — egy alap `pages` tábla plusz 17 nyelvenkénti tábla, tökéletes szinkronban ellenőrizve. A platform emellett 211 397 geolokációs oldalt — városokat és régiókat — is tartalmaz, mindegyik teljesen lefordítva mind a 18 nyelvre.

Ez nem URL-előtagos fordítás. Nem tesszük oda a `/de/`-t egy angol URL elé, és nem nevezzük ezt lokalizáltnak. Minden nyelv saját lokalizált URL-szletet kap minden oldalhoz. Például:

  • `/news/2`
  • `/de/nachrichten/2`

Ehhez teljes `hreflang` támogatás és valódi jobbról balra elrendezés társul az arab nyelvhez. Az arab itt nem „angol szöveg arab szavakkal” — olyan RTL elrendezést kap, amely illeszkedik a nyelvhez, és át van vezetve az oldalon, az SEO-fejrészen és a felületen is.

A platform szellemiségében és szerkezetében angol-központú, de soha nem angol-azonos, és soha nem csak angol nyelvű. A teljes nyelvi felület az angolt, a németet, a franciát, a spanyolt, az olaszt, a lengyelt, az arabot, a csehet, a hindit, a magyart, a japánt, a koreait, a portugált, a portugált (Brazília), az oroszt, a törököt és a kínait fedi le — az arab pedig jobbról balra kezelt.

Miért ilyen fontos ez? Mert a CSC közösség nem korlátozódik egyetlen nyelvre, egyetlen országra vagy egyetlen jogi modellre. Egy felhasználó Németországban, egy klubtulajdonos Spanyolországban, egy olvasó, aki a svájci pilotprogram-megközelítéseket hasonlítja össze, egy utazó, aki az uruguayi jogi környezetet ellenőrzi — egyiküknek sem kell angol-only élménybe kényszerülnie ahhoz, hogy egyenes választ kapjon.

A többnyelvű infrastruktúra azt is megváltoztatja, hogy mit tud egy klub tenni. A tulajdonos egyszer megírhat egy leírást, ha akarja, csiszolhatja az AI-íróasszisztenssel, elmentheti, és egyetlen kattintással mind a 18 nyelvre lefordíthatja. Ez nem pusztán kényelem. Ez nemzetközi felfedezhetőség, ami különben egy kis helyi klub számára elérhetetlen lenne.

A fordítás nem a Cannabivo szélére tett funkció. Átível az adatbázison, az URL-eken, az SEO-rétegen, a felületen és a klubtulajdonosi munkafolyamaton.

A kluboknak: a Club Manager már elérhető

A Cannabivo a közösségnek épül, és ebbe a közösségbe azok is beletartoznak, akik ténylegesen klubokat vezetnek. A Club Manager már elérhető — egy teljes önkiszolgáló szerkesztő a tagsági fiókon belül, ahol a tulajdonos a saját bejegyzését kezeli anélkül, hogy akár egy morzsányi technikai tudásra is szüksége lenne.

Egy ember kezei egy laptopot használnak, amelyen egy tiszta klubmenedzsment-irányítópult látható egy faasztalon, meleg szobában.
A klubszervezők a már elérhető önkiszolgáló irányítópultról kezelik saját bejegyzésüket, nyitvatartásukat és adataikat — nincs táblázatkezelő, nincs közvetítő.

Mobilra optimalizált, mert a klubtulajdonosok többsége nem asztal mögül kezeli a nyilvános jelenlétét. Egy perc alatt kell javítaniuk egy adatot, arról a telefonról, ami már a kezükben van.

A Club Manager azokat a gyakorlati részleteket fedi le, amelyek egy bejegyzést tényleg hasznossá tesznek:

  • Leírás és szlogén, AI-íróasszisztenssel a vázlatoláshoz és csiszoláshoz
  • Egy kattintásos fordítás mind a 18 nyelvre
  • Logó, hero kép és átrendezhető galéria, képkivágással
  • Nyitvatartás
  • Helyszín és húzható térképtű
  • Kapcsolati adatok
  • Kb. 11 közösségi csatorna mező
  • Tagsági adatok
  • 22 elemes szolgáltatásválasztó

Minden szakasz külön mentődik — nincs nyers JSON, nincs SEO-házi feladat, nincs képarány-számolgatás a tulajdonosra tolva. A tulajdonjogot minden mentésnél szerveroldalon érvényesítjük, és a platform soha nem bízik a kliens által megadott azonosítóban, így egyik tulajdonos sem tud benyúlni egy másik klubjába.

Itt találkozik a Cannabivo névjegyzéke és a többnyelvű architektúra a klubvezetés napi valóságával. Egy jó bejegyzésnek nem kell webügynökséget fogadni. Nem követelheti meg a tulajdonostól, hogy értse az SEO-t, a képarányokat, a fordítási folyamatokat vagy a strukturált adatokat. A szerkesztő azért létezik, hogy a jó megjelenés legyen az alapértelmezett, ne a technikai ügyesség jutalma.

A Premium Club Microsites a háttérben várakozik

Ennek a víziónak a következő szintje a Premium Club Microsites — jelenleg a háttérben várakozik, és még nincs megépítve.

Az ötlet egyszerű: minden prémium, igényelt klubnak képesnek kell lennie arra, hogy saját Cannabivo-alaldomainjén egy kifinomult, elsődleges homepage-et kapjon.

{club}.cannabivo.com

A kívánt szintünk a „lenyűgöző alapértelmezés szerint”: gondosan összeállított presetek, teljes SEO 18 nyelven, és olyan oldal, amely ugyanarra a bejegyzési adathalmazra kapcsolódik, nem pedig egy külön rendszerre, amelyet a klubnak kézzel kell szinkronban tartania. Az információt egyszer frissíted, és a névjegyzék meg a microsite ugyanazt az igazságforrást tükrözi.

Ezzel kapcsolatban tudatosan használjuk az időt. A Club Manager már elérhető. A Premium Club Microsites tervezett vízió. Ennek a határnak az élessége maga is a termék része, mert a hitelesség az.

A motorháztető alatt: miért valóban élvonalbeli a Cannabivo

Ekkora platform nem véletlenül tűnik gyorsnak, marad többnyelvűnek, védi a magánszférát és hajt natív appokat. A Cannabivo belülről, házon belül épült, olyan mérnöki döntésekkel, amelyek egy nyilvános névjegyzékhez képest szokatlanul szigorúak.

Egy fejlesztői munkaállomás közeli, részletes nézete, sötét képernyőn kóddal és egy kis hálózati hardverállvánnyal, amely lágyan világít.
A barátságos felszín alatt kézzel épített, típusbiztos stack fut — tartós PHP, HTTP/3, natív appok és egyetlen típusos szerződés minden platformon.

Az „élvonalbeli” kifejezést óvatosan használjuk. Nem azt jelenti, hogy azt a könyvtárat kergetjük, amelyik ebben a negyedévben épp divatos. Azt jelenti, hogy modern szabványokat vezetünk be ott, ahol azok valódi termékproblémát oldanak meg, majd elég kemény minőségellenőrzést alkalmazunk ahhoz, hogy a rendszer tovább tudjon skálázódni anélkül, hogy észrevétlenül belülről rohadna szét.

Összerakva, webes keretrendszer-mag nélkül

A Cannabivo teljes házon belüli fejlesztés webes keretrendszer-mag nélkül. Nincs alatta Laravel- vagy Symfony-alap, a Symfony csak néhány elkülönülő könyvtárként jelenik meg ott, ahol valóban kiérdemli a helyét.

Ez a döntés teljes kontrollt ad az útvonalkezelés, a renderelés, a gyorsítótárazás, a lokalizáció, a szerződések, a biztonsági szabályok és a futásidejű viselkedés felett. Előre többe kerül. Cserébe a platform a termékhez hajlik, nem a terméket hajlítja a keretrendszer alapértelmezett viselkedéséhez és életciklusához.

Az architektúra egy kódbázis, több termék — közös maggal és projektenkénti rétegekkel, amit belül Common/Projects modellként ismerünk. Ennek azért van jelentősége, mert a Cannabivo nem egyetlen, ezerszer lemásolt oldalsablon. Ez egyszerre névjegyzék, wiki, FAQ-rendszer, hírrendszer, támogatási rendszer, klubtulajdonosi szerkesztő, közösségi felület, analitikai platform, automatizálási motor és natív appok backendje. A közös mag mindenhol érvényesíti a közös szabályokat; a projektspecifikus rétegek pedig a termékspecifikus viselkedést hozzák anélkül, hogy bárki másolgatná a platformot.

Modern futtatókörnyezet: tartós PHP, HTTP/3 és gyorsaságra épített tömörítés

A backend PHP 8.5.7 alatt fut, FrankenPHP worker módban, és ez valódi architekturális döntés, nem alapértelmezés. A klasszikus PHP általában kérésenkénti életciklust jelent: felébreszti az alkalmazást, kiszolgál egy kérést, mindent lebont, majd kezdi elölről. A Cannabivo ehelyett tartós munkafolyamatokat tart melegen Unix socketen keresztül, így az alkalmazás nem fizet hidegindítási adót minden egyes találatnál.

Az adatbázis MariaDB 12.3.2. A frontend eszközlánc TypeScript 7, amelyet a Go-natív fordító (`tsgo`) fordít és a Vite 8 csomagol; a Node és a TypeScript a rendszer egyes részeiben szerveroldalon is fut.

A webszerver- és edge-rétegben a Cannabivo nginx-et HTTP/3-mal (QUIC), TLS 1.3-at 0-RTT-vel, dinamikus zstd tömörítést és előre tömörített brotli statikus elemeket használ, a nyilvános domainek előtt Cloudflare-rel. Mindegyik elem konkrét feladatot végez:

  • HTTP/3 over QUIC csökkenti az átvitel súrlódását a modern, veszteséges mobilhálózatokon.
  • TLS 1.3 0-RTT-vel csökkenti a kézfogás költségét, amikor ezt biztonságosan meg lehet tenni.
  • A zstd hatékony, menet közbeni tömörítést ad a dinamikus válaszokhoz.
  • A brotli (statikus) a lehető legkisebbre préseli az előre legyártott elemeket.
  • A FrankenPHP worker mode megakadályozza, hogy a PHP minden kérésnél hideg szkriptként viselkedjen.

Itt nincs egyetlen csodatrükk. Kis késleltetési döntések sora van, amelyek összeadódnak.

Az azonnali SPA: Navigation API, View Transitions és fokozatos fejlesztés

A termékkérdés nyers: ki élvezi, ha linkre kattint és várakozik?

A Cannabivo modern egyoldalas alkalmazásként viselkedik ott, ahol ez javítja az élményt, miközben elsődlegesen szerveroldalon renderelt marad. A modern Navigation API-t és a View Transitions API-t használjuk, hogy az oldalcserék natívnak hassanak — összefüggőnek, animáltnak, azonnalinak — ahelyett, hogy teljes dokumentumlebontás történne. Ott, ahol a böngésző támogatja, a Cannabivo használata inkább appélménynek érződik.

De ez nem „JavaScript vagy semmi” architektúra. A Cannabivo valódi fokozatos fejlesztésre épül. Ha kikapcsolod a JavaScriptet, vagy egy olyan böngészőben nyitod meg, amely nem ismeri a modern API-kat, a sima szerveroldali linkek továbbra is működnek. Ez fontos az akadálymentesség, a robusztusság, az SEO és a puszta műszaki őszinteség szempontjából. A renderelés a szerveren kezdődik; az interakció csak azt teszi jobbá, ami már ott van.

A gyorsítótárazott oldalaknál a Cannabivo még tovább megy: egy előrenderelt statikus HTML cache négy téma-változatban (auto, sötét, világos és tiszta fekete mód), amelyet közvetlenül az nginx szolgál ki, teljesen megkerülve a PHP-t. Egy cache-találat soha nem ébreszti fel az alkalmazási réteget — az nginx a már renderelt HTML-t adja vissza, és statikus találatként jelöli. A négy változat azért létezik, mert a megjelenés nem egyetlen univerzális forma; mindegyik előrenderelése gyorsan tartja az oldalt anélkül, hogy a designrendszert egyetlen kompromisszummá lapítaná. A rendereléskor egyszer írjuk ki őket, majd egy fájlrendszer-figyelő daemon a háttérben tömöríti őket, így a kérési útvonal soha nem fizet ezért.

A frontend teljesítményrétegéhez még ez is tartozik:

  • Kritikus CSS beágyazva és hash-hez kötve a Content Security Policy-ben
  • AVIF képek pontos dimenziókkal, nulla layout shiftért
  • Kapkodó, magas prioritású betöltés a fold feletti hero számára; lusta, alacsony prioritású betöltés alatta
  • Hover és touch előtöltés a valószínű következő navigációkhoz
  • Early Hints a betöltési stratégia részeként

A közös úton az Early Hints Cloudflare-közvetítettek — ez az őszinte leírás arról, hogyan találkozik velük a legtöbb látogató —, és a dinamikus cache-miss úton valódi HTTP 103 kerül kibocsátásra. Nem állítjuk, hogy minden látogató minden hálózati úton szó szerint 103-at kap. Azt állítjuk, hogy a rendszer a modern hinting modell köré van tervezve, egészen az oldalszintű LCP-kép-előtöltésig, amely az edge-en kerül beillesztésre.

A lényeg, amit érdemes megőrizni: a teljesítmény itt nem egy bundle-méret dashboardra van kiszervezve. Be van építve a renderelésbe, a gyorsítótárazásba, az átvitelbe, a képekbe, a CSS-be, az előtöltésbe és a fokozatos fejlesztésbe — minden réteg ugyanabba az irányba húz.

A többnyelvű URL-ek infrastruktúra, nem díszítés

A többnyelvű réteg mérnöki oldalról másodszor is említést érdemel, mert skálán az egyik legnehezebben jól megoldható dolog. A Cannabivo lokalizációja nem csupán tartalomfordítás. Lokalizált slugekről, szinkronban tartott oldal-sorokról, `hreflang`-ről és RTL-elrendezésről van szó, amelyeket a platform elsőrangú dimenziójaként kezelünk, nem utólagos simításként.

A 225 792 oldal × 18 nyelv léptéknél minden gyengeség megszűnik kozmetikainak lenni, és szerkezeti problémává válik. Egy hiányzó fordítássor nem apró elírás — megtörheti az SEO-t, a navigációt, a belső linkelést vagy a felhasználó bizalmát az egész oldallal kapcsolatban. Ezért tartjuk tökéletes, ellenőrzött szinkronban az alap `pages` táblát és a 17 nyelvenkénti táblát, és ezért élnek a kluboldalak, geooldalak, wiki-cikkek, FAQ-bejegyzések és hírek mind ugyanazon nemzetközi struktúrán belül, nem pedig egy mellé tett fordítótábla oldalán.

Kódkvalitás: maximum PHPStan, ultra-szigorú TypeScript és szabályokba foglalt irányelvek

A Cannabivo PHPStan Level 10-en — a maximumon fut, 121 egyedi statikus elemzési szabállyal együtt. A frontenden a TypeScript ultra-szigorú módban fut, 14 egyedi lintszabállyal és kilenc hibaszintű pluginnal.

Ez nem esztétikai tisztaságról szól. Arról szól, hogy hibák egész osztályait tegyük eleve lehetetlenné a kiadásban.

Az egyedi szabályok kódba foglalt politika. Néhány valós példa:

  • `RequireRateLimitOnEveryRouteRule` — egy API-útvonal, amelyhez nincs deklarált rate limit, megbuktatja a buildet. A biztonsági pozíció nem azon múlik, hogy valaki emlékszik-e egy ellenőrzőlistára a review során.
  • `NoRawIdInResponseDtoRule` — a külső válaszoknak UUID-ket kell használniuk, soha nem nyers egész számú adatbázis-azonosítókat, így a belső azonosítók nem szivárognak ki az ügyfelekhez.
  • `NoInlineStylesRule` — az inline stílusokat a build elutasítja, így a szigorú Content Security Policy érvényesíthető marad.
  • DTO-fegyelem — a kezelőknek típusos kérés DTO-t kell fogadniuk és típusos válasz DTO-t kell visszaadniuk; a sima tömböket elutasítjuk, és ez teszi lehetővé az alábbi, platformok közötti típusfolyamot.

Ugyanez a szemlélet fut végig a teljes kódbázison: a generált szerződéseket nem lehet kézzel szerkeszteni, a backend és a frontend alakjai nem sodródhatnak szét csendben, és a biztonságérzékeny feltételeket gépileg ellenőrizzük ott, ahol a gép ellenőrizni tudja őket. A statikus elemzés nem látványos munka, de nagy része annak, hogy egy gyorsan mozgó platform hiteles maradhasson. Szinte naponta szállítunk; a szigorú elemzés teszi lehetővé, hogy gyorsan haladjunk anélkül, hogy úgy tennénk, a „mozogj gyorsan” szükségképpen „fogadd el a káoszt” jelentene.

Egy típusos szerződés: 1 518 PHP DTO → 1 518 TypeScript típus → 1 518 Dart típus

A Cannabivo egyik legerősebb mérnöki döntése a típusos API-szerződés.

A backend adatalakjai egyszer definiálódnak PHP DTO-ként, majd automatikusan generálódnak TypeScriptbe és Dartba is. A megfeleltetés egy az egyhez:

1,518 PHP DTOs ↔ 1,518 TypeScript types ↔ 1,518 Dart types

A weboldal és a natív appok ugyanazt a generált szerződést fogyasztják, mint a backend. Amikor egy backend-alak megváltozik, a TypeScript és a Dart fogyasztók nem sodródhatnak el egy párhuzamos valóságba — a generált fájlok csak olvashatóra vannak zárva, így senki sem szerkesztheti őket kézzel, és a forrás DTO-k és a generált típusok közötti bármilyen eltérés buildet törő hibává válik, nem pedig futás közben, felhasználó által észlelt meglepetéssé.

Ennek azért van jelentősége, mert a Cannabivo több, mint egy weboldal. Natív appok is készülnek párhuzamosan, és az API-alakok megosztása a web és a mobil között megkerül egy klasszikus hibamintát: a backend fejlődik, a webcsapat foltozza az egyik értelmezését, a mobilapp megtart egy másikat, és a hibák csendben felhalmozódnak a varratoknál. Mi szándékosan a szigorúbb modellt választottuk — egyszer definiálni az igazságforrást, ebből generálni a platform-szerződéseket, és az eltérést buildidejű problémává tenni a felhasználói helyett.

Adatvédelmi elsőbbségű analitika: nincs Google Analytics, nincs harmadik féltől származó követő

A Cannabivo nem használ Google Analytics-et és harmadik féltől származó követőket. Helyettük egy teljesen egyedi, first-party analitikai rendszert építettünk — valós felhasználói Core Web Vitals mérésével együtt —, amelyet saját betöltési pipeline és tucatnyi célzottan épített tábla támogat a nyers eseményekhez, az órás és napi összesítésekhez, valamint a botok által szűrt, csak embereket tartalmazó nézetekhez. A látogatói adatok nem hagyják el a Cannabivót a technológiai óriások felé.

Ez egyszerre adatvédelmi és termékdöntés. Továbbra is tudnunk kell, hogy az oldalak valóban gyorsak-e a terepen, nem csak tesztpadon. Egyszerűen úgy döntöttünk, hogy ezt magunk mérjük, ahelyett hogy látogatóink viselkedését valaki más megfigyelő gépezetébe etetnénk. Egy jogszerű CSC-információs névjegyzéknek komolyan kell vennie az adatvédelmet, és senkinek sem kellene a böngészési kontextusát feláldoznia az alapfunkciókért.

Banki szintű biztonság, mérve és érvényesítve

A Cannabivo banki szintű, többrétegű biztonsági architektúrát futtat:

  • Content Security Policy inline szkriptek és stílusok nélkül, kivéve, ha egyenként hash-whitelistelve vannak
  • Trusted Types a DOM-beszúrás egész kategóriáinak semlegesítésére
  • Többszintű rate limiting, IP és felhasználó szerint — azzal a buildidejű szabállyal, hogy bármelyik útvonal, amelynek nincs limite, nem fordul le
  • HMAC request signing az érzékeny belső végpontokon
  • CSRF védelem az azonosított, állapotmódosító kéréseknél
  • HSTS preload
  • AI-támogatott biztonsági tesztelés

A platform A+ minősítést kap a Mozilla Observatory-n — 135 a 100 pontból. Ez megerősített eredmény, és olyan szint, amelyet nagyon kevés webhely ér el.

A CSP megér egy közelebbi pillantást. Rengeteg oldal hirdet CSP-t, miközben alatta továbbra is széles körű inline végrehajtást enged. A Cannabivo álláspontja szigorúbb: inline szkriptek és stílusok egyáltalán nincsenek széles körben engedélyezve — mindegyiket hash-whitelistelni kell —, és a Trusted Types-szal együtt ez sok böngészőoldali beszúrási kategóriát sokkal nehezebben kivitelezhetővé tesz. A rate limiting ugyanilyen bánásmódot kap: nem opcionális köztes réteg, hanem architektúra, amely nélkül a build nem hajlandó elkészülni. Az ismétlődő gondolat ugyanaz végig — a biztonsági feltételezést magába a rendszerbe kódolni, hogy ne lehessen csendben elfelejteni.

Végpontok közötti titkosított közvetlen üzenetküldés

A Cannabivo tartalmaz végpontok közötti titkosított közvetlen üzenetküldést zéró ismeretű szervertervezéssel: a szerver csak nyilvános kulcsokat és átláthatatlan ciphertextet tárol, az üzenet tartalmát soha nem.

A titkosítás Signal-szintű, többeszközös és libsodiumra épül. Az ellenőrzött primitívkészlet a következőket tartalmazza:

  • X25519 kulcscsere
  • XChaCha20-Poly1305 hitelesített titkosítás
  • Ed25519 aláírások
  • BLAKE2b kulcsszármaztatás
  • BIP-39 mnemonikus kulcsmentés
  • egy Sender Key séma csoportos beszélgetésekhez

Az érdekes rész a többeszközös modell. Egy üzenet egyszer kerül titkosításra egy üzenetszintű tartalomkulccsal; ezt a kulcsot aztán külön-külön becsomagoljuk a címzett minden eszköze számára átmeneti kulcscserén keresztül, és szétküldjük — így ugyanaz az üzenet elérheti a telefont, a tabletet és a webet anélkül, hogy a szerver valaha is plaintextet érintene. A megvalósítás platformok között közös: a weben minden kriptográfia, kulcstárolás és socketmunka a főszálon kívül fut egy Web Workerben, a kulcsok IndexedDB-ben tárolva; a natív appokban ugyanezek a primitívek sodium FFI-kötésen keresztül futnak, a kulcsok pedig biztonságos eszköztárolóban vannak.

A terminológiával óvatosak vagyunk. Ez Signal-szintű, libsodium-alapú, többeszközös E2E titkosítás. Nem nevezzük „the Signal Protocol”-nak, és nem állítjuk a Double Ratchetet vagy az üzenetenkénti forward secrecy-t. Az erősség így is jelentős: a szerver nem tudja elolvasni az üzeneteket, és a kriptográfiai modell minden kliensen azonos. Egy CSC közösségi platformnál a privát kommunikáció nem díszfunkció — ha egyáltalán van üzenetküldés, akkor azt már az első kódsortól kezdve komoly adatvédelmi határral kell megtervezni.

Natív appok: Flutter, offline-first, magas frissítési fegyelem

A natív appok Flutterrel készülnek — három app egy közös maggal —, offline-first helyi adatbázison és az oldallal azonos, generált típusos szerződésen keresztül. Az állapotkezelés és a helyi tároló reszponzív, offline-képes élményre készült, nem pedig vékony burkolatként egy webview fölé terítve.

A teljesítményfegyelem szigorú, és egyedi lintszabályok kényszerítik ki: a magas frissítési gyakoriságú, 120fps viselkedés a cél, olyan linterekkel, amelyek tiltják a jankot okozó mintákat — korlátlan képfelbontás, drága blur effektek, nem-builderes lista-renderelés —, így a szabályok már azelőtt elkapnak egy regressziót, hogy az ember észrevenné. Ez azért számít, mert a mobilos teljesítmény nem csupán az átlagos betöltési idő. Hanem az érintésre adott válasz, az animáció stabilitása, a lista simasága és az, hogy az app megbízhatónak érződik-e azon az eszközön, amelyet valaki egész nap magánál hord.

Az appvízió gyakorlatias: a legjobb klub a közeledben, hamarosan egy gombnyomásra, mindig a zsebedben. Az Android app indul elsőként, az iOS követi.

Automatizálás: tartalom, fordítás, frissítések, média és sitemapek

A Cannabivo tartalmaz egy önálló tartalommotort, amely üzemeltető által aktiválható. Ez a szó itt valóban dolgozik: ez nem azt állítja, hogy egy bot felügyelet nélkül, éjjel-nappal publikál. Ez egy olyan rendszer, amelyet az üzemeltető be tud kapcsolni, és ki tud kapcsolni.

Ha engedélyezve van, a motor több forrásból képes Cannabis-híreket kutatni, deduplikálni a saját történeti memóriájával szemben, hogy ugyanaz az esemény ne jelenjen meg kétszer, strukturált cikket generálni, publikálás előtt mind a 17 másik nyelvre lefordítani — atomikusan, hogy soha ne kerüljön ki félig lefordított cikk —, majd 16 közösségi és broadcast csatornán szindikálni: Telegram, X, Bluesky, Mastodon, LinkedIn, Reddit, Discord, Matrix, Facebook, Instagram, Threads, WhatsApp, Web Push, hírlevél, generikus webhookok és egy böngésző-automatizációs csatorna. A nyilvánosan megnevezett indulás a Telegrammal, az Instagrammal és az X-szel kezdődik, a többi később következik.

Az automatizálási réteg azt a kevésbé látványos gépezetet is működteti, amely egy nagy, többnyelvű névjegyzéket életben tart:

  • Automatizált klubfrissítési hírek
  • Kép- és videóoptimalizáló munkafolyamatok (reszponzív AVIF/WebP/JPEG létra; adaptív videó)
  • Éjszakai többnyelvű sitemap-generálás
  • Ütemezett munkafolyamatok flottája systemd timerrel vezérelve, nem törékeny cron-jobokkal

Így marad naprakész egy több százezer oldalas platform. A tartalomnak szerkezet kell. A fordításoknak sorrend kell. A sitemapeknek a többnyelvű valóságot kell tükrözniük, nem az angolt. A klubfrissítéseknek meg kell jelenniük úgy, hogy ne kelljen minden apró változtatásnál szerkesztői jóváhagyás. Az automatizálás itt nem helyettesíti az ítélőképességet — csak elhárítja az ismétlődő súrlódást, hogy az emberek azokra a részekre tudjanak koncentrálni, ahol tényleg szükség van rájuk.

Hol tartunk most

A Cannabivo webplatformja éles üzemben van és aktívan karbantartott. A jelenlegi fázis egyszerre két pályán fut.

Az első a stabilizálás, finomhangolás és ellenőrzés: a meglévő klubtartalmak frissítése, az adatok javítása és a platform folyamatos szorosabbra húzása. Egy olyan névjegyzéket, amelynek 13 573 klubbejegyzése és 211 397 geooldala van, és amelyet folyamatosan pontosan és naprakészen tartunk, nem lehet „befejezettnek” tekinteni. Az információ változik, a helyi adatok változnak, és a platformnak lépést kell tartania.

A második a natív mobilfejlesztés párhuzamosan — ugyanazzal a Flutter maggal, offline-first, ugyanazzal a típusos szerződéssel, ugyanazzal a teljesítményfegyelemmel. A cél egyszerű és ambiciózus egyszerre: a legjobb klub a közeledben, hamarosan egy gombnyomásra, mindig a zsebedben.

Mindkettő mellett automatizált klubinformációt is bevezetünk a közösségi média csatornákon és a Cannabivo hírlevelében. A kezdőlap már most is mutatja a platform élő természetét — nemrég hozzáadott klubok, népszerű városok, országközpontok, valamint a hírek és klubfrissítések folyamai.

Mind a 10 ország továbbra is folyamatban van. Ez nem olyan gyengeség, amiért bocsánatot kell kérni; ez őszinte hatókörkezelés. A nemzetközi lefedettség nem egy jelvény, amit egy statikus adatbázisra tűzöl. Ez egy működtetési vállalás, és minden egyes nap újra meg kell erősíteni.

Mi jön ezután

A Cannabivo ütemterve szakaszokra bontott, és kemény vonalat húzunk aközött, ami már elkészült, ami tervezett, és ami még vitatott.

Egy modern okostelefon, amelyen Cannabis klubnévjegyzék app látható, mögötte fényes ablak és városkép enyhén életlenül.
Ezután jönnek a natív appok és a tagi eszközök — először az Android-indulás, aztán az iOS, majd a menedzsment és egy piactér a tágabb szcénának.
IdőkeretÜtemterv
1–2 hónapAndroid app indulása a Play Áruházban; több közösségi csatorna, köztük Telegram, Instagram, X és sok más
2–3 hónapiOS app indulása az App Store-ban
3–12 hónap és azon túlKlub- és tagmenedzsment minden klub számára; piactér eszközöknek, grow space-nek és kapcsolódó igényeknek
BacklogPremium Club Microsites a `{club}.cannabivo.com` alatt, gondosan összeállított presetekkel és SEO-val 18 nyelven
VitábanCannabivo-ID a gyors klubos beléptetéshez az appon keresztül
VitábanMonetizációs modell

Android először, aztán iOS

Az Android app a Play Áruházba 1–2 hónapon belül tervezett, az iOS app pedig 2–3 hónapon belül követi az App Store-ban. Mindkettő ugyanahhoz a technikai stratégiához tartozik: egy magot megosztó Flutter appok, offline-first helyi adatbázis, magas frissítési fegyelem és ugyanaz a generált típusos szerződés, mint a weboldalnál. Mivel ezt a szerződést megosztják, az appok a backend helyességét öröklik, nem pedig újraimplementálják — és a legtöbb platformközi hiba pontosan az újraimplementálásból születik.

Klub- és tagmenedzsment

A 3–12 hónapos horizonton és azon túl a Cannabivo célja, hogy minden klub számára klub- és tagmenedzsmentet kínáljon — a már elérhető Club Manager kiterjesztésével a nyilvános bejegyzésszerkesztésről mélyebb operációs eszközökre. A szándék az, hogy megfeleljünk azoknak az adminisztratív valóságoknak, amelyekkel a klubok már most is szembenéznek, anélkül hogy minden klubot arra kényszerítenénk, hogy a semmiből maga írja meg a saját szoftverét.

Piactér-vízió

Egy piactér is a 3–12 hónapos horizonton szerepel, amely az eszközökre, a grow space-re és a CSC működéséhez kapcsolódó igényekre fókuszál. Pontosítva, hogy mi ez és mi nem: nem Cannabis-értékesítési állítás, és nem fogyasztásra buzdító felhívás. Olyan platformirány, amely az ökoszisztéma működéséhez szükséges infrastruktúrára és ellátmányra összpontosít.

A Cannabivo-ID aktív értékelés alatt áll

A Cannabivo-ID vitában van: egy digitális identitás, amely lehetővé tehetné a tagok számára, hogy gyorsan belépjenek a klubokba az appon keresztül — kevesebb bürokráciával a kluboknak, gördülékenyebb érkezéssel a tagoknak. Technikailag és jogilag is megvalósíthatónak tartjuk, és aktív értékelés alatt áll. Még nincs elérhetővé téve, és ezt a különbséget világosan fogjuk tartani.

A monetizáció még nyitott

A monetizáció továbbra is nyitott kérdés. A terítéken szereplő lehetőségek között van a szabad klubnézetek korlátozása, prémium tagságok, hirdetések, együttműködések vape- vagy CSC-berendezésboltokkal, valamint az, hogy a klubok a Cannabivót használják tagjaik kezelésére. Még nem mutatunk be végleges modellt. Bármit is választunk, annak hűnek kell maradnia a platform szerepéhez: egy nemzetközi információs névjegyzék, amely átlátható, jogszerű, többnyelvű és valóban hasznos a CSC közösség számára.

A Cannabivo célja, hogy azzá a nemzetközi infrastruktúrává váljon, amelyre a CSC közösségnek eddig soha nem volt lehetősége — átlátható, jogszerű, többnyelvű és tartós. A névjegyzék az első ajtó. Minden más az épület mögötte: a wiki, az oktatási és megelőzési oldalak, a hírrendszer, a FAQ, a fórum, a Club Manager, az AI-támogatási ügynök, a natív appok, a titkosított üzenetküldés, az automatizálási motor, a típusos szerződések, a first-party analitika és a biztonsági architektúra. Ezek közül egyik sem áll önmagában; mind ugyanazt szolgálja: hogy a jogszerű Cannabis-információt könnyebb legyen megtalálni, és nehezebb legyen elrontani. Egyetlen nyilvánvaló hiánnyal kezdtük Németországban és Spanyolországban. Most tíz országban, tizennyolc nyelven, éles működésű léptékben építünk, olyan mérnöki alapra támaszkodva, amelyet a növekedésre terveztek. Itt semmi sincs befejezve — és inkább mondjuk ezt ki őszintén, mintsem úgy tegyünk, mintha egy névjegyzék valaha is kész volna. A legegyszerűbben megfogalmazható ambíció ez: a maga nemében a világ legjobb portálja. A kihívás elfogadva. Maradj velünk.

Install · one tap

Cannabivo.com
Clubs, coffeeshops & news — on your home screen.
Instant load
Saved offline
News alerts
Adds to your home screen — no store needed
Tap Share, then Add to Home Screen to install Cannabivo.
or get the native app
Google PlayApp StoreSoon