Agent 2 — Event Tech Stack Scout
Date: March 20, 2026
Status: COMPLETE
This report covers the full technology stack for the Expo Negocios Digitales Venezuela 2026 platform. The event requires a complete digital ecosystem: website, mobile app (iOS + Android), backend/CRM, ticketing, live streaming + VOD, digital passport/QR, and analytics — all built to operate reliably in Venezuela's constrained internet environment and handle $1.76M in target revenue across 20,000 attendees.
Three critical findings shape every decision:
1. Venezuela payment processing is the hardest constraint. Stripe is unavailable for Venezuelan-registered businesses. PayPal has severe functional restrictions. The path forward is a multi-layered crypto-first strategy (USDT via Binance Pay + NOWPayments) combined with Zelle for USD-banked diaspora buyers and Pago Móvil C2P for bolivar-paying domestic attendees.
2. No single open-source project covers the full stack. You must compose a system from specialized tools. Custom integration work is unavoidable.
3. Offline resilience is non-negotiable. Every attendee-facing feature (QR scanning, check-in, schedule) must function without live connectivity.
``
┌─────────────────────────────────────────────────────────────────────────┐
│ FRONTEND LAYER │
│ │
│ ┌──────────────────────┐ ┌──────────────────────────────┐ │
│ │ Marketing Website │ │ Mobile App (iOS + Android) │ │
│ │ Next.js 15 + Vercel │ │ React Native (Expo SDK 53) │ │
│ │ - 7 pages │ │ - Schedule + Agenda │ │
│ │ - SEO optimized │ │ - QR Scanner (offline) │ │
│ │ - Ticket purchase │ │ - Digital Passport │ │
│ │ - Exhibitor portal │ │ - B2B Networking │ │
│ │ - Sponsor dashboard │ │ - Push Notifications │ │
│ │ - Spanish primary │ │ - Live Streaming │ │
│ └──────────┬───────────┘ └──────────────┬───────────────┘ │
│ │ │ │
└──────────────┼────────────────────────────────────┼─────────────────────┘
│ │
┌──────────────▼────────────────────────────────────▼─────────────────────┐
│ API GATEWAY LAYER │
│ Node.js / FastAPI — REST + WebSocket + GraphQL │
│ Hosted: Railway or Fly.io │
└──────────────────────────┬───────────────────────────────────────────────┘
│
┌──────────────────┼──────────────────────┐
│ │ │
┌───────▼──────┐ ┌────────▼────────┐ ┌──────────▼──────────┐
│ PostgreSQL │ │ Redis │ │ File Storage │
│ (Supabase │ │ (Cache + Queue) │ │ (Cloudflare R2 │
│ self-host) │ │ │ │ or Backblaze B2) │
└──────────────┘ └─────────────────┘ └──────────────────────┘
│
┌───────▼──────────────────────────────────────────────────────────────────┐
│ SPECIALIZED SERVICES │
│ │
│ ┌─────────────────┐ ┌──────────────────┐ ┌────────────────────────┐ │
│ │ Hi.Events │ │ Twenty CRM │ │ Bunny.net Stream │ │
│ │ (Ticketing) │ │ (Lead + Sponsor │ │ (Live + VOD) │ │
│ │ + Pretix for │ │ management) │ │ + Owncast fallback │ │
│ │ on-site QR │ └──────────────────┘ └────────────────────────┘ │
│ └─────────────────┘ │
│ │
│ ┌─────────────────┐ ┌──────────────────┐ ┌────────────────────────┐ │
│ │ NOWPayments │ │ Resend (Email) │ │ PostHog (Analytics) │ │
│ │ (Crypto USDT) │ │ + Brevo fallback │ │ Self-hosted │ │
│ │ + Pago Móvil │ └──────────────────┘ └────────────────────────┘ │
│ │ C2P (local) │ │
│ └─────────────────┘ │
└───────────────────────────────────────────────────────────────────────────┘
`
This is the single most critical constraint. Get this wrong and revenue collection collapses on launch day.
Stripe: Venezuela is NOT on Stripe's supported country list. While technically possible to create a Stripe account by incorporating a US LLC and obtaining a US bank account (via Payoneer or Mercury), this path requires legal overhead, US entity maintenance, and adds friction to the registration timeline. Not recommended as primary channel, viable as secondary if agency or project owner has US entity.
PayPal: Severely restricted in Venezuela. Venezuelan-registered accounts cannot receive international payments or withdraw to local bank accounts. The PayPal website shows a .ve domain but functionality is minimal. Treat PayPal as effectively unavailable for business use.
NOWPayments (github.com/NowPaymentsIO/nowpayments-api-js)
Binance Pay
Recommended crypto implementation:
Zelle is the dominant informal USD payment method among Venezuelan diaspora and middle-class buyers with US bank access. For transactions under $5,000/day, peer-to-peer Zelle works without API integration.
Manual Zelle flow (viable for early launch):
1. Buyer selects Zelle at checkout
2. System displays Zelle phone number/email, transaction reference code
3. Admin receives Zelle notification, marks order as paid in admin panel
4. System sends ticket via email automatically
Automated Zelle flow (Week 8+ if budget allows):
For domestic Pase General tickets priced at $15 equivalent in bolivars.
Options:
.): Multi-bank Venezuelan payment gateway with widget integration. Oldest and most established Venezuelan payment processor.Recommended: InstaPago or e4Cash for broader bank coverage (not limited to one bank).
If Morellis or the agency has or can establish a US LLC, open a Stripe account linked to a US bank (Mercury or Relay work well for remote founders). This unlocks credit card processing for international sponsors and exhibitors who need to invoice in USD.
| Method | Currency | Fee | Geographic Reach | Integration Difficulty | Recommended Priority |
| USDT via NOWPayments | USD (stablecoin) | ~0.5% | Global | 3-5 days | PRIMARY |
| Binance Pay | USD/USDT | 0% between Binance users | Venezuela + global | 5-7 days | PRIMARY |
| Zelle (manual) | USD | 0% | US diaspora | 1 day | SECONDARY |
| Pago Móvil C2P (InstaPago) | VES (bolivars) | ~0.5-1.5% | Venezuela domestic | 5-7 days | SECONDARY |
| Stripe (US entity) | USD | 2.9% + $0.30 | International cards | 2-3 days | OPTIONAL |
Repository: https://github.com/expo/expo Stack: React Native + Expo SDK 53 + TypeScript License: MIT Why recommended: — 37,000+ stars, active (last commit: daily)
Key packages:
(v16+) — QR scanning, offline-capable via native ML Kit — alternative, more advanced features — push notification handling — local SQLite for offline schedule/directory — fast key-value storage for session data — data fetching + caching layer — interactive venue floor mapWhat needs custom build:
Estimated integration effort: 10-14 weeks for full feature set; 6 weeks for MVP
Repository: https://github.com/flutter/flutter — 170,000+ stars, active
Stack: Dart + Flutter 3.x
License: BSD-3
Pros:
Cons:
Open-source base: github.com/mimicmobile/flutter-conference-app — basic schedule/speakers app, would need heavy modification
Verdict: Not recommended. Dart talent scarcity in Venezuela + Latin America and absence of OTA update capability are disqualifying for an event with a hard deadline.
Stack: Ionic Capacitor + React/Next.js wrapped as native app
Pros:
Cons:
Verdict: Only viable as a backup if mobile development timeline collapses. Not recommended for a flagship event app.
Start with Expo managed workflow. Use expo eject only if native modules unavailable. Build for iOS and Android simultaneously from one codebase. Deploy via Expo EAS for automated builds.
Repository: https://github.com/HiEventsDev/Hi.Events — ~5,000+ stars
Stack: Laravel (PHP) + React + PostgreSQL
License: AGPL-3.0 (see flag below)
Last active: 2025-2026, actively maintained
Features matching our needs:
What's missing:
AGPL Warning: AGPL-3.0 means if you modify Hi.Events and expose it as a service, you must open-source your modifications. For a private internal deployment serving one event, this is manageable. Consult the agency's legal position. Alternative: use Hi.Events cloud version at $0 for up to the free tier, or pay for commercial license.
Integration effort: 5-7 days to deploy self-hosted + configure; 10-14 days to add crypto/Pago Móvil payment plugin
Repository: https://github.com/pretix/pretix — ~4,500+ stars, 117 repos in org
Stack: Python (Django) + PostgreSQL
License: Apache 2.0 (core) — more permissive than AGPL
Last active: Actively maintained (German team, production-proven at scale)
Features:
pretixSCAN: Purpose-built check-in app that works offline — syncs attendee list to device, scans QR codes without internet. This alone is worth serious consideration for a Venezuela event.
What's missing:
Integration effort: 7-10 days for base deployment; 12-15 days to build Venezuela payment plugins
Repository base: https://github.com/vercel/virtual-event-starter-kit — Vercel's official event starter
Stack: Next.js 15 + Vercel + Stripe (or custom payment backend)
Pros:
Cons:
Verdict: Build the marketing website in Next.js for brand + SEO. Use Hi.Events or Pretix for ticketing (embedded via iframe/widget). This hybrid gives best-of-both.
Marketing Website: Custom Next.js 15 + Tailwind CSS + Strapi CMS (headless) hosted on Vercel
Ticketing Engine: Pretix (self-hosted, Python/Django) — chosen over Hi.Events for its plugin architecture enabling Venezuela payment integration and its battle-tested pretixSCAN offline check-in app
Embed Pretix ticket widget into Next.js pages via iframe or Pretix's JavaScript widget. This keeps the brand experience seamless while leveraging Pretix's battle-tested ticketing logic.
Repository: https://github.com/twentyhq/twenty — 28,000+ stars
Stack: Node.js + React + PostgreSQL + GraphQL (Apollo)
License: AGPL-3.0
Last active: Actively maintained, v1.0 released, 300+ contributors
Why it fits:
Limitations:
Setup: Docker Compose deployment, 1-2 days to configure for event objects
Repository: https://github.com/erxes/erxes — ~10,000 stars
Stack: Node.js + React + MongoDB + TypeScript (Apollo)
License: GNU GPL v3 + Enterprise
Features:
Why not primary: MongoDB (NoSQL) is less ideal for the relational data model our event requires (tickets → attendees → exhibitor stands → sponsor tiers). PostgreSQL-based Twenty is cleaner for our use case.
Stack: Python FastAPI + PostgreSQL + Redis + Celery
Pros:
Cons:
Verdict: Use as the custom API backend (handling app requests, QR passport logic, streaming auth), not as the CRM. Run Twenty CRM alongside it.
Custom Backend: FastAPI (Python) or Node.js (Express/Fastify) for the core API
Database: PostgreSQL via Supabase (self-hosted on your VPS, or Supabase Cloud — they have no geographic restriction)
CRM: Twenty CRM (self-hosted Docker, same VPS)
Email: Resend (developer-friendly, 3,000/month free tier, clean API, React Email integration)
Analytics: PostHog (self-hosted, MIT license for some features, ~100K events/month free tier)
Queue/Cache: Redis (Upstash managed, or self-hosted)
Website: https://bunny.net/stream/
Type: Commercial SaaS (not open-source)
Price: $0.005/GB delivered — cheapest professional streaming CDN
Why recommended for Venezuela:
Multi-room strategy: Create separate Bunny Stream "Collections" per room. Each room has an RTMP ingest endpoint. OBS Studio at the venue sends RTMP stream → Bunny → viewers worldwide. Three simultaneous rooms = three RTMP streams, each independently managed.
Estimated cost for 3-day event:
Repository: https://github.com/owncast/owncast Stack: Go (backend) + React (frontend) License: MIT Last commit: November 2025 Features: — 10,675 stars
Limitation: Single-room architecture. For 3 simultaneous rooms, you'd need 3 separate Owncast instances on separate servers. Bandwidth entirely on your server — risky in Venezuela if upstream provider throttles.
Use case: Run Owncast as fallback/backup stream on the venue's local network. Attendees on-site access local stream even if internet goes down. This is the offline resilience strategy.
Repository: https://github.com/Chocobozzz/PeerTube — 13,000+ stars
Stack: Node.js + Vue.js + ActivityPub
License: AGPL-3.0
Best for: VOD archiving post-event. PeerTube runs on 512MB RAM, handles large video libraries well, federation is optional.
Limitation: Live streaming is secondary feature; VOD is its strength.
Use case: Post-event VOD library (90 days). Cheaper than keeping Bunny VOD if storage grows large.
Live Streaming (Event Days): Bunny.net Stream — multi-room RTMP ingest, global CDN, adaptive bitrate
On-Site Fallback: Owncast on local server — LAN streaming for attendees even without internet
Post-Event VOD: Bunny.net Stream (90-day window), migrate to PeerTube or self-hosted S3 storage after
Encoding at venue: OBS Studio (free) on laptop at each room, connected to Bunny RTMP endpoint via ethernet (NOT WiFi — ethernet only at venue)
| Component | Decision | Tool/Approach | Build Effort | Notes |
| Marketing Website | Build Custom | Next.js 15 + Tailwind | 3 weeks | Full brand control |
| CMS (website content) | Buy/Use OSS | Strapi or Payload CMS | 3 days setup | Headless, content managed by Morellis team |
| Ticketing Engine | Use OSS | Pretix (self-hosted) | 1-2 weeks config + payment plugins | Plugin for crypto + Pago Móvil |
| Exhibitor Portal | Build Custom | Next.js pages + custom API | 2 weeks | Upload logo, profile, manage leads |
| Sponsor Dashboard | Build Custom | Next.js admin pages | 1 week | ROI metrics, scan counts |
| Mobile App Core | Build Custom | React Native + Expo | 6-10 weeks | Schedule, directory, QR, notifications |
| QR Digital Passport | Build Custom | React Native + FastAPI | 2 weeks | Gamification logic custom |
| B2B Meeting Scheduler | Build Custom | Custom calendar + Supabase | 2 weeks | No good OSS option fits |
| Backend API | Build Custom | FastAPI or Node.js Fastify | 4-6 weeks | Core data layer |
| CRM | Use OSS | Twenty CRM | 3-5 days setup | Configure custom objects for event |
| Email Automation | Use SaaS | Resend | 3 days | Transactional + sequences |
| Live Streaming | Use SaaS | Bunny.net Stream | 3 days setup | RTMP + HLS delivery |
| VOD Library | Use SaaS | Bunny.net Stream (90 days) | 1 day | Upload recordings |
| Analytics | Use OSS | PostHog (self-hosted) | 2 days | Event tracking, funnels |
| Payments (crypto) | Use SaaS | NOWPayments API | 3-5 days | USDT primary |
| Payments (local VZ) | Use SaaS | InstaPago or e4Cash | 5-7 days | Pago Móvil C2P |
| Push Notifications | Use SaaS | Expo Push + FCM | 2 days | expo-notifications |
| On-site Check-in | Use OSS | pretixSCAN (Pretix's app) | 0 days build | Download + configure |
| Chat/Messaging | Use SaaS | Stream Chat SDK (free tier) | 3 days | Industry standard, generous free tier |
| Gamification Engine | Build Custom | Custom + Oasis (OSS) | 2 weeks | Points, badges, leaderboard |
| Repo | Stars | Why | URL |
| Pretix | ~4,500 | Ticketing engine + pretixSCAN offline check-in | https://github.com/pretix/pretix |
| Owncast | 10,675 | On-site LAN streaming fallback | https://github.com/owncast/owncast |
| PeerTube | 13,000+ | Post-event VOD archive | https://github.com/Chocobozzz/PeerTube |
| Twenty CRM | 28,000+ | CRM backbone | https://github.com/twentyhq/twenty |
| Hi.Events | ~5,000 | Reference ticketing architecture | https://github.com/HiEventsDev/Hi.Events |
| PostHog | 22,000+ | Self-hosted analytics | https://github.com/PostHog/posthog |
| Vercel Event Starter | ~3,000 | Next.js event website base | https://github.com/vercel/virtual-event-starter-kit |
| NOWPayments JS SDK | ~50 | Crypto payment integration | https://github.com/NowPaymentsIO/nowpayments-api-js |
| Rallly | ~3,500 | Meeting scheduling reference | https://github.com/lukevella/rallly |
| Oasis Gamification | ~500 | Points/badges/leaderboard engine | https://github.com/isuru89/oasis |
| LiveKit | 15,000+ | WebRTC if interactive streaming needed | https://github.com/livekit/livekit |
| Expo | 37,000+ | React Native foundation | https://github.com/expo/expo |
`
expo # Base SDK
expo-camera # QR scanning (offline-capable)
react-native-vision-camera # Advanced camera if expo-camera insufficient
expo-notifications # Push notifications
expo-sqlite # Offline local database
react-native-mmkv # Fast key-value storage
@tanstack/react-query # Data fetching + cache
react-native-maps # Venue floor map
@gorhom/bottom-sheet # UI component for exhibitor details
stream-chat-react-native # Chat/messaging
lottie-react-native # Animations for gamification
expo-updates # OTA updates (critical for event day fixes)
expo-localization # Spanish/English i18n
react-native-reanimated # Smooth animations
zustand # State management (lighter than Redux)
`
`
next # Framework
tailwindcss # Styling
@headlessui/react # Accessible UI components
framer-motion # Animations
next-intl # i18n (Spanish primary)
react-hook-form # Form handling (ticket purchase, exhibitor portal)
zod # Schema validation
@radix-ui/react-* # Primitive UI components
sharp # Image optimization
next-seo # SEO meta tags
stripe # Stripe SDK (if US entity available)
`
`
fastify # High-performance HTTP server
@fastify/cors # CORS
@fastify/jwt # JWT auth
prisma # ORM for PostgreSQL
ioredis # Redis client
bull / bullmq # Job queue (email sends, webhook processing)
sharp # Image processing (QR generation)
qrcode # QR code generation
nodemailer / @react-email/... # Email templating with Resend
fastapi
uvicorn
sqlalchemy
alembic # DB migrations
celery # Task queue
redis
qrcode[pil] # QR generation
python-jose # JWT
`
Target: October 2, 2026 (EVENT DAY 1)
Available: ~28 weeks from April 1, 2026
| Task | Duration | Milestone |
| Repository setup + CI/CD (GitHub Actions) | 3 days | — |
| VPS provisioning (Hetzner CPX31 or DigitalOcean $24/mo) | 1 day | — |
| PostgreSQL + Redis + Docker Compose setup | 2 days | — |
| Twenty CRM deployment + custom objects configuration | 3-5 days | CRM live |
| Pretix deployment + Spanish configuration | 3 days | — |
| Venezuela payment plugins for Pretix (crypto + Pago Móvil) | 7-10 days | Ticket sales open (Apr 25) |
| Task | Duration | Milestone |
| Next.js website scaffold + Tailwind + brand system | 3 days | — |
| Strapi CMS setup + content types | 2 days | — |
| Homepage, About, Speakers, Schedule pages | 5 days | — |
| Ticketing integration (Pretix widget embedded) | 3 days | — |
| Exhibitor portal (registration + profile management) | 7 days | — |
| Sponsor landing page + inquiry form | 3 days | — |
| SEO optimization + sitemap + meta tags | 2 days | Website v1 live (Apr 18) |
| Task | Duration | Milestone |
| Expo project setup + navigation structure | 3 days | — |
| Authentication (attendee login with ticket QR) | 4 days | — |
| Event schedule screen (offline cached) | 5 days | — |
| Exhibitor directory + search (offline cached) | 5 days | — |
| QR scanner (stand check-in) | 5 days | — |
| Digital Passport gamification (stamps + rewards) | 10 days | — |
| Push notifications setup | 3 days | — |
| B2B meeting scheduler screen | 7 days | App MVP Beta (Jun 1) |
| Live streaming viewer (Bunny player) | 4 days | — |
| Chat/messaging (Stream Chat) | 4 days | — |
| App Store + Play Store submission | 5 days | — |
| Task | Duration | Milestone |
| Bunny.net Stream account + 3 room setup | 1 day | — |
| OBS Studio configuration guide for venue AV team | 2 days | — |
| Streaming test (simulated from office) | 2 days | — |
| Owncast local fallback server setup | 2 days | — |
| VOD upload workflow documentation | 1 day | — |
| Task | Duration | Milestone |
| Email sequences (Resend) — sponsor, exhibitor, attendee | 5 days | First sponsor closed (May 15) |
| Social media content pipeline | Ongoing | — |
| Paid ads launch (Meta + Google) | Week 5 | — |
| 50% exhibitors confirmed | — | Jul 15 |
| Task | Duration | Milestone |
| Load testing (simulate 20,000 concurrent users) | 1 week | — |
| App production release (App Store + Play Store) | 2 weeks | App production (Sep 1) |
| pretixSCAN configuration + training for on-site staff | 3 days | — |
| Final pre-event push (marketing + tech) | — | Sep 15 |
| Task | Duration |
| On-site tech support (at least 2 engineers on-site) | 3 days |
| Real-time monitoring (PostHog + server dashboards) | 3 days |
| Live stream monitoring + failover management | 3 days |
| Task | Duration | Milestone |
| VOD upload + processing (Bunny.net) | 2 days | VOD launch (Oct 9) |
| Post-event analytics report | 3 days | — |
| 2027 pre-launch email sequence | 3 days | — |
| Service | Monthly Cost |
| Hetzner CPX31 VPS (main backend + Twenty CRM + Pretix) | ~$18 |
| Supabase Pro (if managed) | $25 |
| Bunny.net CDN (pre-event website delivery) | ~$5-15 |
| Vercel (Next.js hosting, Pro plan) | $20 |
| Resend (email, Starter) | $20 |
| PostHog Cloud (free tier) | $0 |
| Total pre-event | ~$88-$100/month |
| Item | Estimated Cost |
| Bunny.net streaming delivery (3 rooms, 3 days) | ~$30-50 |
| Extra VPS capacity (scale up for event weekend) | ~$40 |
| Total event weekend | ~$80-100 |
The above is infrastructure only. Development labor is the primary cost — estimate 3-5 developers × 28 weeks for full scope. Priority order for limited budget:
1. Website + Ticketing (revenue-generating, launch first)
2. Mobile App MVP (brand differentiator)
3. Backend + CRM (operational backbone)
4. Streaming (setup is low effort given Bunny.net)
The following decisions should be logged in docs/context/DECISION_LOG.md`:
1. React Native + Expo over Flutter — Rationale: OTA updates for event-day bug fixes, larger talent pool, stronger QR/camera ecosystem, JS/TS familiarity
2. Pretix over Hi.Events for ticketing — Rationale: Plugin architecture enables Venezuela payment integration, pretixSCAN offline check-in is production-proven
3. Bunny.net Stream for live + VOD — Rationale: Cheapest professional CDN, Latin America PoPs, adaptive bitrate critical for Venezuelan bandwidth
4. USDT (TRC-20) as primary payment — Rationale: Stripe/PayPal unavailable, USDT already dominant in Venezuela e-commerce, near-zero transaction fees on TRON network
5. Twenty CRM over Erxes — Rationale: PostgreSQL (relational) better fits event data model, 28K GitHub stars signals community health, GraphQL API cleaner for our integrations
6. FastAPI Python backend — Rationale: Python ecosystem has excellent QR, PDF, and data processing libraries; FastAPI has async support and OpenAPI auto-docs
7. Owncast as offline fallback — Rationale: MIT license, LAN streaming capability means event continues during internet outages
*Report generated by Agent 2 — Tech Stack Scout*
*Sources: GitHub, npm, NOWPayments docs, Pretix docs, Bunny.net pricing, Twenty CRM GitHub, Erxes GitHub, Hi.Events GitHub, Owncast GitHub, PeerTube GitHub, LiveKit GitHub, PostHog GitHub, Expo docs, Scanbot blog, Venezuelan payment processor documentation (InstaPago, e4Cash, Banesco APIs, Banco de Venezuela)*