Staging before prod
App staging on Neon branches and scale-to-zero Fly Directus — test features end-to-end without duplicating helpdesk or paying for idle VMs.
Platform engineering initiatives — staging, logging, AI review, testing, booking, referrals, and location-based marketing.
This is the platform engineering roadmap: infrastructure and product capabilities we are building to operate SoulTales at scale. It is separate from the consumer product roadmap (experience launch phases shown on the contact page).
All items below are planned — none are fully implemented yet.
Add a staging + production flow for the main platform so features can be tested before going live. Today every package deploys straight to production from main; see Environments for current URLs.
| Package | Staging target |
|---|---|
frontend/ | staging.soultales.com or *.workers.dev preview |
dashboard/ | staging.ie.soultales.app |
backend/ (Directus) | Second Fly.io app with min_machines_running = 0 |
| Neon, Turso, R2, KV | Isolated staging data (Neon branch, separate Turso DB and R2 bucket) |
| Clerk / Stripe | Test-mode keys and staging webhook endpoints |
Estimated incremental cost: ~€5–15/month with scale-to-zero; ~€15–25/month if staging Directus stays always-on. See Cost projection — staging.
staging environment and secrets manifestDeploy a self-hosted Temps server on Fly.io (with its own Postgres database) to capture errors and warnings from every platform surface: Cloudflare Workers (frontend + dashboard), Fly.io (Directus + Chatwoot), and CI pipelines.
Temps provides Sentry-compatible error reports with request-level logging (method, path, status, response time). Structured stack traces feed directly into AI fixing workflows — agents receive reproducible error context instead of hunting through scattered logs.
Automated AI review on every pull request to catch regressions before merge — especially Cloudflare Workers deploy issues, wrangler config mistakes, and cross-package breaking changes.
This complements existing Cursor rules (e.g. GitHub Actions must use pnpm exec wrangler, not deprecated cloudflare/wrangler-action). Goal: consistent review coverage without blocking human reviewers on routine checks.
Expand test coverage across all monorepo packages:
| Package | Target coverage |
|---|---|
frontend/ | Unit tests for utilities; e2e for listing browse, auth, booking request |
dashboard/ | Unit tests for API routes; e2e for partner login, listing edit, Stripe webhooks |
backend/ | Directus extension tests |
helpdesk/ | Smoke tests post-deploy |
Smoke tests run in CI after deploy. Critical user flows get Playwright or similar e2e coverage. See Monorepo commands for existing pnpm check and pnpm build via Turbo.
Replace the current external ticket_link + email request flow with native in-platform checkout:
Builds on the existing Stripe integration (Billing) and partner subscription flows. Replaces the coming-soon Bookings dashboard placeholder and aligns with public roadmap Phase 3 (Integrated Direct-Pay Ticketing).
Upgrade today’s outbound ?ref=soultales parameter on partner ticket links to a full referral and attribution system:
Current state: addRefParam() appends ref=soultales to external booking URLs. The referral system adds persistent tracking, partner dashboards, and payout reconciliation.
Add an AI chat assistant to the public site (soultales.com) to help travelers discover experiences, plan trips, and get answers in natural language — integrated with listing and destination data from Directus.
Unlike partner listing translations (dashboard-only), this is traveler-facing and scales with DAU on the public site.
Build a dedicated email marketing platform — vendor and architecture to be decided — for traveler engagement while they are in Ireland:
Integrates with the booking system (item 5) for coupon redemption and with PostHog/account data for personalization. Hosting costs for this platform are not included in the current cost projection — see excluded items there.
App staging on Neon branches and scale-to-zero Fly Directus — test features end-to-end without duplicating helpdesk or paying for idle VMs.
Errors captured in production flow back to AI agents with full context, reducing mean time to resolution.
AI review and automated tests catch issues before deploy, lowering the cost of each release.
Stripe Connect booking and referral tracking turn SoulTales from discovery platform into transaction platform.
In-app AI assistant on soultales.com helps travelers discover and plan — integrated with live listing and destination data.
Marketing platform (TBD) sends news, coupons, and stories to travelers in Ireland — matched to their account and triggered when they open the app on the island.