Description
StayAI — Launch a Branded Hotel Booking App in One Week
Three apps. One codebase. Zero hosting bills. StayAI is a
premium Flutter source-code product that lets you launch a branded hotel
booking and discovery platform on iPhone, Android, and the web — and start
earning Booking.com affiliate commissions on day one.
Demo APK:
Download (Android)
| Admin preview:
https://stayai-be120.web.app
Demo admin login — email: admin@stayai.com,
password: 123456. Read-only feel; please don’t store real data.
What you get
-
Customer app — Flutter for iPhone + Android from one
codebase. -
Admin panel — Flutter Web dashboard for content
curation, user management, push composer, and AI configuration. -
☁️ Cloud backend — Firebase project with Auth, Firestore,
Cloud Functions (Node 22), Storage, Remote Config, FCM, Analytics,
Crashlytics, App Check.
Hotel discovery
-
Curated featured-hotel rails on home + map view with brand-tinted dark
Google Maps style. -
Hotel detail with photo gallery (Hero transition), AI review summary, “Plan
trip” date picker, favorite, share, Book on Booking.com. - Favorites with user-created folders, swipe-to-delete + undo.
- Destination autocomplete proxy via Cloud Functions (no client-side tokens).
AI travel intelligence
-
Conversational AI Travel Assistant with streaming
responses, 20-message memory, and context awareness (current search,
favorites, home city). -
AI hotel recommendations — personalized 5-hotel suggestions
ranked from your search history. -
AI review summaries — pros/cons/sentiment JSON, cached 7
days per hotel. -
Dual-provider failover: OpenAI (GPT-4o family) +
Google Gemini (2.5 Pro / Flash), switchable from Remote
Config without redeploy. -
Built-in rate limits (Free 10/day · Pro 200/day) backed by per-user daily
counters.
Affiliate revenue
-
Booking.com Affiliate Partner Program — free signup, up to
40% of Booking’s margin per completed stay. -
Travelpayouts (Hotellook) — free signup, 50–70% of network
commission. -
Hotelbeds APITUDE support — optional, gated behind an admin
toggle for buyers with a contract. -
Affiliate clicks are server-only writes; admin can audit them in the
dashboard. -
FTC + Apple/Google compliant disclosure on first launch and in Settings →
About.
Admin panel
-
Dashboard with KPI tiles (users, AI queries, affiliate clicks, estimated
commissions) and a recent-clicks table. -
Full CRUD for featured hotels (with reference price for the price-drop
watcher), featured destinations, and promotions. -
Bulk hotel import — CSV import/export with a downloadable
template, row-by-row preview before committing, per-line validation, and
batched writes. Blank id creates, filled id updates, so export → edit in
Excel → re-import round-trips cleanly. -
User management: paginated table, email search, role assignment, disable,
GDPR delete. -
AI console: per-feature system-prompt editor, model picker, rate-limit
knobs, in-page playground. -
Push composer: title, body, image, segment, deep link, schedule, with a live
broadcast log. -
App settings editor: currencies, languages, force-update floors, maintenance
mode, Booking affiliate ID.
Notifications
- Manual broadcasts via the admin push composer (immediate or scheduled).
-
Automatic price-drop alerts every 6h — diffs the
saved-price snapshot against the hotel’s current reference price; fires FCM
on ≥ 8% drops. -
Automatic trip reminders at T-3, T-1, and T-0 for favorites
with check-in dates. -
Per-user opt-in (deals, price drops, blog, trip reminders) via Settings →
Notification preferences. -
FCM token registration handles APNs token race + simulator fallbacks; tap
routing handles cold-start, background, and foreground.
Brand customization
-
One-file rebrand — every color, radius, and spacing unit reads from
tokens.dart. -
Launcher icons fan out to iOS + Android from one 1024×1024 source PNG via
the bundledflutter_launcher_iconsconfig. -
Splash screens via
flutter_native_splashwith brand color +
transparent-background logo. -
Bundled brand-asset generator (Dart tool) emits placeholder monogram art if
you don’t have artwork yet. - Web manifest, themes, and favicons rebrand alongside the apps.
Security & compliance
-
Production-ready Firestore rules — server-only writes for affiliate clicks;
owner-only writes for favorites/searches/AI chats; admin-only writes for
featured content + appSettings. -
App Check ready (off by default for development; flip the flag before
submission). -
App Store §5.1.1 compliant in-app account deletion (with a Cloud Function
fanout across owned subcollections). - COPPA 13+ self-attested age gate on email signup.
- FTC affiliate disclosure modal on first launch.
- Force-update gate + maintenance-mode gate that wrap the entire router.
-
Anonymous-account merge — when guest users upgrade into an existing
credential, their favorites/searches/AI chats are migrated to the real
account before the anon record is dropped.
In-app purchase (Pro)
-
Working demo via MockPurchaseService — flips the user’s
aiPlandirectly so you can show the upgrade flow without a
RevenueCat account. -
RevenueCat-ready —
RevenueCatPurchaseServiceis stubbed with the exact
purchases_flutterSDK calls; flip
kEnableRevenueCat = true, implement the three methods, and
you’re live. -
Suggested pricing: $4.99/month for unlimited AI queries (recovers OpenAI
cost with margin).
Tech stack
- Mobile framework — Flutter 3.44+ on Dart 3.12+.
- State management — Riverpod 3.4.
- Routing — GoRouter 17.5.
-
Models & serialization — Freezed 3.2 +
json_serializable 6.14. - Backend SDK — FlutterFire (firebase_core 4.x).
- Cloud Functions — TypeScript on Node 22.
-
AI providers — OpenAI + Google Gemini (dual provider with
failover). -
Affiliates — Booking.com Affiliate · Travelpayouts ·
Hotelbeds (optional). - Maps — google_maps_flutter 2.18.
-
Deep links — app_links 7.2 (Universal Links + App Links +
customstayai://scheme).
What’s included
- Complete Flutter source for both apps + 4 shared packages.
- Cloud Functions source — 18+ callables, scheduled crons, Firestore triggers.
- Firebase configuration: Firestore rules, composite indexes, Storage rules.
- Brand-asset generator script.
- Privacy Policy and Terms of Service markdown templates.
- Deep-links setup guide (AASA + assetlinks.json).
-
Documentation as standalone HTML (
index.html+
quick-start.html). - Six months of support + lifetime updates.
⚡ Quick setup (5 steps)
melos bootstrap && melos run gen-
Create a Firebase project; run
flutterfire configurein
apps/customer/andapps/admin/. -
Fill
apps/customer/.envandfunctions/.envwith
your API keys + affiliate tokens. -
firebase deploy --only
firestore:rules,firestore:indexes,functions,storage:rules -
flutter run -d <device>inapps/customer/;
promote yourself to admin in Firestore.
Detailed walkthrough in the bundled quick-start.html.
Requirements
- Flutter 3.44+ and Dart 3.12+.
- Node 22 (Cloud Functions).
-
Firebase project on the Blaze plan (Cloud Functions need Blaze; free tier
covers ~10K MAU). - Booking.com Affiliate Partner Program account (free).
- Travelpayouts account (free).
- OpenAI or Google AI Studio API key.
- Apple Developer + Google Play Console accounts for store distribution.
- (Optional) RevenueCat account for real in-app subscriptions.
⚠️ Third-party services — required for full functionality
StayAI is a Flutter source product. It does not include
accounts, API keys, or hosting on any third-party platform. You will need to
register for the services below — most are free, a few are paid at the
provider’s tier — to unlock the corresponding features. The app gracefully
degrades when a service is unconfigured (e.g. AI features disabled, push not
delivered) but the listing’s full feature set requires all of them.
-
Firebase (Google) — required. Free for the first 50K
Firestore reads/day; Cloud Functions need the Blaze pay-as-you-go plan.
Typical cost at 10K MAU: under $5/month. -
Booking.com Affiliate Partner Program — required for
affiliate revenue. Free signup. You earn commission on completed bookings
via your tracked deep links. -
Travelpayouts — required for destination autocomplete. Free
signup. -
Apple Developer Program — required for iOS App Store
distribution. $99/year, paid to Apple. Sign In with Apple is mandated by
Apple if you offer Google Sign-In on iOS. -
Google Play Console — required for Android distribution.
One-time $25 to Google. -
OpenAI API or Google Gemini API — required
for AI features. Pay-per-token. Estimate: ~$0.20 per Pro user/month at
gpt-4o-mini rates. -
Google Maps Platform — required for the map view. Free tier
handles ~28K loads/month. -
Google Cloud / Firebase project — required for deployment.
The Blaze plan is required for Cloud Functions; you will not be charged
unless you exceed the free tier limits. -
RevenueCat — optional, for real in-app subscriptions. Free
up to $10K MTR. Skip if you only need the bundled mock purchase flow for a
demo. -
Hotelbeds APITUDE — optional. Contract required; not
bundled by default. -
Hosting domain — optional but recommended for Universal
Links / App Links. Any HTTPS host works (Firebase Hosting is configured out
of the box).
StayAI is sold as source code only. We do not provide account
setup, API key procurement, App Store / Play Store review mediation, or
hosting administration on your project. Six months of support is bundled for
code-level questions.
Support
- Email: devsnack26@gmail.com
- WhatsApp: +855 967 413 911
- Hours: Mon–Fri, GMT+7. Response within 48h.
-
Term: 6 months from purchase per CodeCanyon standard. Lifetime updates
regardless of support window.
Changelog
v1.1.0 — August 2026. Bulk hotel import. New
Import CSV / Export CSV actions on the admin Hotels screen — load a whole
catalog from a spreadsheet instead of adding hotels one at a time.
Downloadable template; headers matched by name rather than position and
tolerant of case and punctuation; row-by-row preview with per-line validation
errors before anything is written; invalid rows skipped while the rest of the
file imports; blank id creates and a filled id updates, so export → edit →
re-import round-trips without duplicating your catalog; writes batched at 450
docs per commit for multi-thousand-row files. Also: one-command demo seeding
(node scripts/seed_all.mjs, ~250 docs across 13 collections, with
--with-auth and --wipe
flags), and a full dependency upgrade to current majors (Riverpod 3.4,
GoRouter 17.5, Freezed 3.2, firebase_core 4.13, app_links 7.2, firebase-admin
14.2 / firebase-functions 7.3 on Node 22).
v1.0.0+1 — initial release. Customer app (auth, home, search,
hotel detail, favorites, AI assistant, paywall, settings, account deletion).
Admin panel (dashboard, content CRUD, user management, AI console, push
composer, app settings). Backend (18+ Cloud Functions, scheduled crons,
Firestore rules + indexes). Submission gates (force-update, maintenance,
COPPA, FTC disclosure, GDPR delete). RevenueCat-ready IAP. iPhone-only iOS
target.
Built on the latest stable Flutter and Firebase SDKs. Engineered to pass
App Store and Play Store review on the first submission. Clean architecture,
idiomatic Riverpod, zero hosting cost — ready to rebrand and ship.
StayAI is a Flutter-based hotel booking app with a Firebase backend and an admin panel. It lets travelers search for hotels, view room details, make bookings, and manage reservations from a mobile app. The backend handles user accounts, booking data, and other app content, while the admin panel gives hotel operators or platform managers tools to add listings, update availability, review bookings, and manage users. It is intended for developers, hotel businesses, and startups building a hotel reservation service.

