Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
Translation pending
Hostlio Pro hotel management software: the Lio AI assistant answers guests 24/7 in 30+ languages and the channel manager syncs 100+ OTAs. Free 7-day trial.
BusinessPython · JavaScriptGitHub @lotimembersllc-codeOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Python statik üretici, 6 dil (EN, TR, ES, IT, PT-BR, FR). Canlı alan adı hostliopro.com (www → apex). Aşağıdaki "v5 … v14" bölümleri sürüm geçmişidir; geçerli mimari bu bölümdedir (3 Ekim 2026).
| Dosya | Görev |
|---|---|
build.py | Giriş noktası: rotalar (ROUTES), ortak düzen (layout, finish), JSON-LD, sitemap, llms*.txt, vercel.json üretimi, CSP, yönlendirmeler. python3 build.py → dist/ |
pricing.py | Tek fiyat kaynağı: aylık/yıllık/Early Bird fiyatları, AI mesaj kotası, oda limiti, deneme günü, dile göre para biçimi. Metinlerde rakam yerine ⟦price:starter⟧, ⟦annual:pro⟧, ⟦annual_mo:growth⟧, ⟦regular:…⟧, ⟦quota:…⟧, ⟦rooms:…⟧ yazılır |
content_<dil>.py | Sayfa içerikleri (6 dil); home_v3.py ana sayfa, pages_v4.py tesis tipi/karşılaştırma sayfaları, lang_<es/it/pt/fr>.py dil sözlükleri |
booking_templates.py | Booking.com otomatik cevap yazısının (6 dil) başlık/açıklaması ve 12 kopyalanabilir mesaj şablonu; pages_v4.guides() yazıya ekler, blog listesi başlığı post_meta() ile aynı kaynaktan |
legal_v6.py, legal_v6_intl.py, legal_v5.py | Gizlilik, şartlar, hesap silme (alt işleyici listesi SUBPROCESSORS) |
security_page.py, roi_page.py, signup_page.py | Güvenlik + DPA, ROI hesaplayıcı, kayıt/ödeme sayfaları |
tools_pages.py | Ücretsiz araçlar (6 dil): Araçlar dizini, RevPAR/ADR/doluluk ve OTA komisyonu hesaplayıcıları. Hesap src/assets/kpi.js; formül testi node scripts/kpi.test.js |
compare_pages.py | Karşılaştırma merkezi + Hostlio vs HotelRunner/Cloudbeds, Cloudbeds/Amenitiz/HiJiffy alternatifleri + genel karşılaştırma sayfası (GEN, 6 dil; pages_v4.compare_page buraya yönlendirir). v2 (8 Ekim 2026): Hostlio önce (fayda kartları → Hostlio sütunu vurgulu tablo → kimin için → geçiş adımları → SSS), "X ne zaman daha uygun" bölümleri yok. Rakip bilgisi YALNIZ resmî sayfadan, SRC + kontrol tarihiyle; tabloda yalnız iki tarafı da doğrulanmış satırlar; 3 ayda bir yeniden doğrulayın. CSS: style.css sonundaki "Comparison pages v2" bloğu |
guides_tr.py | Yalnız TR: channel manager nedir, KBS bildirimi (Hostlio KBS'ye otomatik bildirim YAPMAZ), otel programı fiyatları 2026, otel WhatsApp asistanı |
src/ | Olduğu gibi kopyalanan dosyalar: assets/ (CSS, JS, görsel, font, video), attribution.js, Google doğrulama dosyası, robots.txt, vercel.json tabanı |
page_dates.json | Sayfa başına içerik özeti + tarih (dateModified / sitemap lastmod). Build günceller; commit edin |
scripts/check.py | Kapı: kırık link/asset, JSON-LD, hreflang, title/description tekrarı ve uzunluğu, satır içi betik (CSP), fiyat yer tutucusu, yönlendirme hedefleri. --live-prices canlı plans ucuyla karşılaştırır |
scripts/attribution-check.mjs | src/attribution.js ilk temas + 90 gün testi (kök attribution.js birebir kopya olmalı) |
preview.py, shots/*.py | Yerel önizleme ve ekran görüntüsü/erişilebilirlik betikleri (build'e bağlı değil) |
Tek dilli sayfalar (ör. yalnız TR): hreflang yalnız var olan dili listeler, x-default sayfanın kendisidir (xdefault()). Araç/karşılaştırma sayfalarına bağlamsal link PAGE_EXTRA ("Ayrıca bakın" satırı) ile verilir.
İç link (S4, 8 Ekim 2026): yazılarda "İlgili yazılar", ürün/segment sayfalarında "İlgili rehberler" bloğu build.py
RELATED_POSTS / PAGE_GUIDES eşlemesinden üretilir; yeni yazı eklerken bu iki tabloya da ekleyin.
404: Vercel tek /404.html verir; sayfa 6 dilin metnini taşır, site.js dil önekine göre gösterir.
Tarayıcı betikleri (src/assets/): site.js (menüler, fiyat düğmesi, iletişim formu, video), prices.js
(sayfadaki hostlio-pricing JSON'u + canlı plans ucu, early_bird=false ⇒ Early Bird metinleri gizlenir),
signup.js (kayıt formu → signup-checkout, sunucu hata kodlarının 6 dile çevirisi), roi.js, consent.js (GA4 + çerez izni).
Satır içi <script> ve onclick= yasak (CSP script-src 'self'; check.py yakalar). Veri gerekiyorsa
<script type="application/json"> bloğu kullanın.
build.py → GA4_ID (şu an G-W74GFJQYJ4). "" yapılırsa hiçbir analitik yüklenmez: consent.js yok, bant yok,
altbilgi düğmesi yok, CSP'de Google kökeni yok, gizlilik politikası eski metninde kalır.src/assets/consent.js (<head>'de, senkron): Consent Mode v2 varsayılanı dördü de denied; bant 6 dilde; gtag.js yalnız
"Kabul et"ten sonra yüklenir (izinden önce Google'a istek yok). ad_* sinyalleri hep denied, Google sinyalleri kapalı.
Seçim localStorage.hostlio_consent (6 ay). Altbilgide ve gizlilik politikasında "Çerez tercihleri" düğmesi bandı açar.
"Reddet" _ga* çerezlerini siler. CSP eklemeleri csp()'de (Google'ın GA4 listesi).analytics_consent.py (GA4_TEXT, 6 dil; build çerez h2'sini bulup ekler, id="cookies").window.hostlioTrack):| Olay | Nerede | Parametreler |
|---|---|---|
page_view | her sayfa (otomatik) | — |
signup_cta_click | /xx/signup/ bağlantısı tıklanınca; kayıt sayfası açılınca gönderilir | cta_location (header/footer/hero/pricing_plans/final_cta/content), cta_page, plan, billing |
signup_form_start | kayıt formuna ilk odak | plan, billing |
signup_plan_select | kayıt sayfasında plan değişimi | plan |
signup_submit | geçerli form gönderimi (başarılıysa Stripe dönüşünde gönderilir) | plan, billing |
begin_checkout | Stripe'a yönlendirme (Stripe dönüşünde gönderilir) | plan, billing |
signup_error | sunucu/ağ hatası | plan, error_field |
sign_up | ?checkout=success dönüşü | method=stripe_checkout |
checkout_cancelled | ?checkout=cancelled dönüşü | — |
generate_lead | iletişim formu başarılı | form=contact |
pricing_billing_toggle | aylık/yıllık düğmesi | billing, context (pricing/signup) |
Ayrılmadan hemen önceki olaylar (signup_cta_click, signup_submit+begin_checkout) sekmenin sessionStorage'ına yazılıp
sonraki sayfada gönderilir: gtag olayları ~5 sn toplu gönderir, hemen gezinince kayboluyordu (test edildi).
GA4'te anahtar olay (key event) önerisi: sign_up, generate_lead, begin_checkout.
/xx/signup/ (her dilde; CTA'lar finish() ile doğrudan buraya gider). /signup/ dil algılayan giriş
noktası (Stripe dönüşü ?checkout=success|cancelled, eski bağlantılar).trailingSlash: true, cleanUrls KAPALI ⇒ /google3ccd63ec6d0747db.html, /llms.txt gibi dosyalar
yönlendirmesiz 200 döner. Eski .html adresleri lang_redirects() + src/vercel.json ile açıkça yönlenir.planConfig.ts EARLY_BIRD bayrağını çevirin.pricing.py'yi aynı değerlere getirin (EARLY_BIRD=False için regular_annual doldurulmalı, yoksa build durur).
Early Bird metinleri (SSS, plan kartı notları) "ilk 50 müşteri" der — kapanınca metinleri de güncelleyin.python3 build.py && python3 scripts/check.py --live-prices → RESULT: OK.
Fiyat ve ödeme sayfaları canlı ucu zaten okuduğu için bu adımlar yapılana kadar da doğru tutarı gösterir.vercel.json build tarafından üretilir; buildCommand build.py içindeki BUILD_COMMAND'dır. Python varsa
build + check.py hatası deploy'u düşürür; yalnız python3 hiç yoksa commit'li dist/ kullanılır..github/workflows/kapilar.yml (build, check.py, attribution testi, git diff --exit-code dist).
Push için workflow yetkili token gerekir./privacy/, /terms/ (eski URL'ler korunur), TR çevirileri /gizlilik-politikasi/, /kullanim-sartlari/ (İngilizce metin esastır notuyla). Footer'da linkler + /delete-account.signup.html, delete-account.html, attribution.js (UTM ilk temas takibi, tüm sayfalarda yüklenir) ve Google Search Console doğrulama dosyası korunur./signup, giriş https://dashboard.hostliopro.com./en/blog/...); eski URL'ler ve /about, /contact, /faq, /channels için 301 yönlendirmeleri src/vercel.json'da. Eski overbooking yazısı yeni overbooking rehberine yönlenir.llms-full.txt (tüm sitenin düz metni), responsive görseller (480w srcset), ana görsel preload + fetchpriority.src/vercel.json'da.build.py başında: GA4_ID, PLAUSIBLE_DOMAIN, GSC_VERIFY, BING_VERIFY, SAME_AS, APP_STORE_URL. Boş bırakılanlar sayfaya yazılmaz./<INDEXNOW_KEY>.txt).sitemap.xml gönder.frontend-design, ui-ux-pro-max, taste-skill (soft-skill: double-bezel kartlar, buton içinde ikon, özel easing), Vercel web interface guidelines.src/assets/img/Framework yok. python3 build.py → dist/ klasörü (24 sayfa + sitemap, robots, llms.txt, 404).
python3 build.py, Output: dist.
(Ya da doğrudan dist/ klasörünü sürükle-bırak ile yükle.)www.hostliopro.com. Eski URL'ler için src/vercel.json içine redirects ekle.https://www.hostliopro.com/sitemap.xml gönder.| Ne | Nerede |
|---|---|
| Kayıt/giriş linki, form endpoint, e-posta | build.py üstündeki sabitler (APP_URL, FORM_ENDPOINT, EMAIL) |
| Fiyatlar | build.py → PLANS + content_*.py → PLAN_TXT, FAQ metinleri, llms.txt bloğu |
| Türkçe metinler | content_tr.py |
| İngilizce metinler | content_en.py |
| Tasarım (renk/tipografi) | src/assets/style.css (üstteki :root token'ları) |
| Yeni blog yazısı | ROUTES'a anahtar ekle, content_*.py içinde POSTS + post_xxx() fonksiyonu, pages() listesine ekle |
Formu gerçek bir servise bağlamak için FORM_ENDPOINT'e Formspree/Basin/kendi Supabase edge function URL'ini yaz; boşsa mailto ile çalışır.
hreflang (tr, en, x-default), Open Graph + Twitter kartı (og-tr.png, og-en.png)@graph: Organization, WebSite, WebPage (About/Contact/FAQ/Collection tipleri), BreadcrumbList, SoftwareApplication (+ fiyat teklifleri), FAQPage, BlogPostingsitemap.xml hreflang alternatifleriyle; semantik HTML, tek H1, sıralı başlıklarrobots.txt GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended vb. için açık/llms.txt: ürünün tek dosyalık, gerçeklere dayalı özeti + tüm sayfa linkleridateModified, "Son güncelleme"), rakamlar tutarlı (30+ dil, 100+ OTA, 20+ ülke, 7 gün deneme)Eski sitede olmayan, benim varsaydığım bilgiler — yanlışsa content_*.py içinde düzelt:
app.hostliopro.com/signup ve /logincontent_es/it/pt/fr.py (sayfalar) + lang_es/it/pt/fr.py (arayüz, ana sayfa, tesis tipi sayfaları, karşılaştırma, rehberler, yasal metin çevirileri).plans fonksiyonundan canlı fiyat (mevcut sitedeki anon anahtarla; yanıt gelmezse sayfadaki fiyatlar kalır). Early Bird kapanırsa "early-bird" satırı otomatik gizlenir.python3 build.py, outputDirectory dist) build sırasında src/vercel.json'dan üretilir. Pillow yoksa görsel varyantları üretilmez, depodaki hazır dosyalar kullanılır.src/assets/img/gen-*.webp (1080×1350, 480w varyantlarıyla):
hostel, apart, pansiyon, butik oda → tesis tipi sayfaları + ana sayfa kartları;
blog kapakları: owner-laptop (PMS), reception (overbooking), night-desk (otomatik cevap), checkin-phone (AI),
eski EN yazılar: arrival, room-dusk, facade, terrace-phone./signup artık üretiliyor: signup_page.py + src_legacy/signup_script.js (eski betik, mantık birebir) + src/assets/checkout.js (dil, plan özeti, aylık/yıllık).
/delete-account (ve 6 dildeki karşılıkları) artık normal site şablonunda; eski delete-account.html kaldırıldı, /delete-account.html → /delete-account/ 301.src_legacy/ klasöründe duruyor (yayına kopyalanmaz).Kritik
build.py → WHATSAPP..plan .billed{display:block} hidden özniteliğini eziyordu; style.css başına [hidden]{display:none!important} eklendi./en/signup/, /tr/signup/ … → /signup?lang=.. yönlendirmesi eklendi, sol panel fiyat kartlarıyla aynı listeyi kullanıyor./tr/ altına taşındı. / tarayıcı diline göre /tr/, /es/, /it/, /pt/, /fr/ ya da /en/'e (geçici) yönlenir; eski Türkçe adresler 301 ile /tr/… adresine gider. Yönlendirmeler build sırasında lang_redirects() ile üretilip vercel.json'a eklenir. 404 sayfası İngilizce.legal_v6.py, legal_v6_intl.py; tarih 23 Eylül 2026): kart peşin + otomatik ücretlendirme ve yenileme, AI kotası ve %110'da durma, Early Bird kilidi, UTM/ilk temas kaydı, online check-in kimlik görseli ve imza, alt işleyici listesi (Twilio/SendGrid "planlanan"), saklama süreleri, CCPA ve KVKK, AI sorumluluk notu. Yeni /en/dpa/ (DPA, İngilizce) + indirilebilir PDF src/assets/legal/hostlio-pro-dpa.pdf.
⚠️ Yayından önce avukat okuması. legal_v6.RETENTION sürelerini sunucu tarafıyla teyit edin (mesaj 60 gün varsayılan — Setup1.jsx; misafir iletişim 90 gün — rapor).
Yüksekbuild.py → DEMO_URL: Cal.com/Calendly linki yazılınca tüm "Demo iste" düğmeleri takvime gider; boşken iletişim sayfası.build.py → FOUNDER_NOTE, TEAM doldurulunca 6 dilde kurucu notu ve ekip bölümü çıkar.channex_adapters), statik liste yok; Channex de statik liste yayınlanmasını istemiyor (Evan, 16 Eylül).