Skip to content

External Infrastructure Roadmap

This page documents all features currently marked as Aplazado (deferred) across the platform. Each requires external infrastructure, third-party APIs, or significant architectural changes that go beyond the current stack.


Avatar Storage Migration (S3 / Cloudflare R2)

Section titled “Avatar Storage Migration (S3 / Cloudflare R2)”
PageProfile
Current stateTeacher avatar stored as data URI in teachers.avatarUrl. Works but inflates the teachers table row size and slows queries at scale.
What’s neededObject storage service (Cloudflare R2, AWS S3, or similar). Upload endpoint that stores the file, returns a URL, and saves only the URL in the DB.
InfrastructureCloudflare R2 (recommended — no egress fees) or AWS S3
EffortMedium — new upload route, storage client, migration to rewrite existing data URIs
PriorityMedium — becomes important with 500+ teachers
PagePublic Profile
Current stateReviews are text-only (title + body + rating + quickTags). No video upload support.
What’s neededVideo hosting/transcoding service. Upload flow for students, player component, moderation queue.
InfrastructureCloudflare Stream, Mux, or AWS MediaConvert + S3
EffortHigh — video upload, transcoding pipeline, player component, storage costs, moderation
PriorityLow — nice-to-have, not blocking any core flow

PageMessages
Current stateContact channels: WhatsApp (link), Email (mailto), Phone (tel). No SMS.
What’s neededTwilio account, SMS sending service, phone number validation, opt-in/opt-out tracking, per-message costs.
InfrastructureTwilio Programmable SMS (or alternatives: Vonage, MessageBird)
EffortMedium — Twilio SDK integration, phone validation, delivery tracking, cost management
PriorityLow — WhatsApp covers most use cases in the target market (LATAM + Spain)
PageMessages
Current stateContact log records are created immediately. No scheduling for future sends.
What’s neededJob scheduling system for delayed message delivery. Requires either a dedicated queue or extending BullMQ with delayed jobs for WhatsApp/Email/SMS sends.
InfrastructureBullMQ delayed jobs (already available) + actual send integration (depends on SMS/WhatsApp Business API)
EffortMedium — delayed job scheduling is easy, but actual automated sending requires WhatsApp Business API or email automation beyond mailto links
PriorityLow — teachers currently send manually via WhatsApp/Email links

PageStudent Packages
Current stateNo coupon or promotional code field in the checkout flow. Discounts are managed directly in Stripe Dashboard.
What’s neededStripe Coupons API integration. UI for teachers to create/manage coupons. Student-facing input field during checkout. Validation endpoint.
InfrastructureStripe Coupons + Promotion Codes API (already part of Stripe, no new service)
EffortMedium — Stripe API already supports it, need teacher management UI + student checkout integration
PriorityMedium — common feature request from teachers
PageSettings
Current stateDefault currency configurable. Stripe Connect handles payments. Invoice/receipt management done via Stripe Dashboard.
What’s neededIn-app invoice management, multiple payment methods, tax configuration. Most of this already exists in Stripe Dashboard.
InfrastructureStripe Invoicing API, Stripe Tax (optional)
EffortHigh — duplicating Stripe Dashboard features in-app has questionable ROI
PriorityLow — Stripe Dashboard already provides this. Link to Stripe Dashboard already added.

PageSettings
Current stateGoogle Meet is the only video conferencing integration (via Google Calendar). Meet links are auto-generated when creating calendar events.
What’s neededZoom OAuth app, meeting creation API, webhook handling for meeting events. The oauth_connections table already supports multiple providers.
InfrastructureZoom Marketplace App (OAuth 2.0), Zoom Meeting API v2
EffortMedium — OAuth flow reusable from Google pattern, but Zoom has different webhook/event model
PriorityMedium — many teachers use Zoom instead of Google Meet
PageSettings
Current stateWhatsApp contact uses wa.me links (opens WhatsApp app). No programmatic sending.
What’s neededWhatsApp Business API (via Meta Cloud API or BSP like Twilio/360dialog). Template messages, session messages, delivery receipts.
InfrastructureMeta Cloud API or BSP (Twilio WhatsApp, 360dialog)
EffortHigh — Meta approval process, template review, message window rules, per-conversation costs
PriorityMedium — would enable automated reminders and scheduled messages
PageReviews
Current stateReviews display in the language they were written in. International students may write in their native language.
What’s neededGoogle Cloud Translation API or DeepL API. Auto-detect language, translate on demand or at write time, store translations.
InfrastructureGoogle Cloud Translation API v3 or DeepL API
EffortLow-Medium — API call per review, cache translations, show toggle
PriorityLow — only relevant for teachers with international student base

PageProfile
Current stateProfile layout editor configures column count globally. Responsive behavior is automatic (CSS grid). Teachers cannot set different column orders for mobile vs desktop.
What’s neededPer-breakpoint layout configuration in profileLayout JSONB. Preview component showing mobile/tablet/desktop layouts side by side.
InfrastructureNone (frontend-only) — but requires significant UI/UX rework of the layout editor
EffortHigh — complex drag-and-drop editor for multiple breakpoints, increased JSONB schema complexity
PriorityLow — current auto-responsive layout works well for most profiles

FeatureExternal ServiceEffortPriorityBlocking?
Avatar storage (S3/R2)Cloudflare R2 / AWS S3MediumMediumNo
Video testimonialsCloudflare Stream / MuxHighLowNo
SMS via TwilioTwilio SMSMediumLowNo
Scheduled messagesWhatsApp Business APIMediumLowNo
Discount codesStripe Coupons APIMediumMediumNo
Advanced paymentsStripe Invoicing APIHighLowNo
Zoom integrationZoom APIMediumMediumNo
WhatsApp Business APIMeta Cloud API / BSPHighMediumNo
Auto-translationGoogle Translate / DeepLLowLowNo
Responsive breakpointsNone (frontend rework)HighLowNo
  1. Stripe Coupons — lowest effort, high teacher demand, no new service
  2. Zoom integration — reuses existing OAuth pattern, unlocks non-Google teachers
  3. Avatar storage migration — prevents DB bloat, straightforward S3/R2 integration
  4. WhatsApp Business API — enables automated messaging, unlocks scheduled messages + SMS
  5. Auto-translation — simple API integration, low effort
  6. Video testimonials — nice-to-have, high effort
  7. Responsive breakpoints — frontend-only but complex UX challenge
  8. Advanced payments — low ROI vs Stripe Dashboard