Skip to content

Kick-off Plan

This is the master setup checklist for getting Kaya Sync off the ground, from domain and email to infrastructure and architecture. Work through it in priority order.


1. Domain & DNS ✅

TaskStatusNotes
Register kayasync.com✅ DoneManaged on Cloudflare
Set up nameservers on Cloudflare✅ DoneFree DNS, CDN, DDoS protection, SSL
Plan subdomains✅ DoneSee table below

Subdomain plan:

SubdomainPurposeStatus
kayasync.comMarketing / landing pagePending
wiki.kayasync.comInternal wiki (this site)Built, needs deployment + Cloudflare Access
docs.kayasync.comPublic-facing docs (future)Reserved for external use
app.kayasync.comOperator & client web appFuture
api.kayasync.comAPI gatewayFuture
admin.kayasync.comInternal ops dashboardFuture

2. GitHub ✅

TaskStatusNotes
Create GitHub organisation✅ Donegithub.com/Kaya-Sync
Create kayasync-docs repo✅ DoneVitePress docs site
Decide repo structure⬜ PendingMonorepo recommended, all services in one repo using Turborepo. Easier at early stage: shared types, atomic commits

3. Email: Two Separate Concerns

Email has two distinct needs that require two different services.

3a. Team / Business Email

For team communication, evan@kayasync.com, ops@kayasync.com, hello@kayasync.com

OptionCostRecommendation
Google Workspace€6.12/user/month✅ Recommended
Zoho MailFree (up to 5 users)Acceptable alternative

Action: Set up Google Workspace. Start with 2–3 accounts. Add MX records in Cloudflare.

3b. Transactional Email (System-Generated)

For OTPs, delivery confirmations, operator alerts, payout notifications. This is not Google Workspace. It needs a dedicated email API service.

OptionFree TierRecommendation
Resend3,000 emails/month✅ Recommended, simple API, developer-friendly
SendGrid100/dayEstablished, more setup
PostmarkNone (paid only)Best deliverability

Action: Create a Resend account. Use noreply@kayasync.com as sender. Wire up later when building notification service.


4. SMS & USSD Provider (Critical)

Operators and Designees need SMS for OTPs and delivery notifications. Many operate in low-connectivity, low-literacy environments. USSD fallback is essential.

OptionCoverageUSSDRecommendation
Africa's TalkingStrong African coverage✅ Yes✅ Recommended
TwilioGlobal❌ NoMore expensive, no USSD

Action: Create an Africa's Talking account. Confirm which countries are in scope for launch before integrating.


5. Payment & Mobile Money Rails (Critical)

Operators are paid out through the platform. A payment integration must be decided before the payout service is built.

OptionCoverageRecommendation
FlutterwaveM-Pesa, MTN MoMo, Airtel, bank transfers across Africa✅ Recommended
PaystackStrong Nigeria/Ghana focusGood if scope is West Africa only
M-Pesa direct APIKenya/Tanzania onlyToo narrow for multi-corridor launch

Action: Create a Flutterwave account. Complete business verification early: approval takes time.


6. Documentation Site: wiki.kayasync.com

The VitePress docs site is built and pushed to GitHub. Internal access only — login via Google or GitHub required.

Step 1: Deploy to Cloudflare Pages (free)

  1. Go to Cloudflare Dashboard → Pages → Connect to Git
  2. Select Kaya-Sync/kayasync-docs
  3. Build command: npm run docs:build
  4. Output directory: .vitepress/dist
  5. Add CNAME record in Cloudflare DNS: wiki<project>.pages.dev

Auto-deploys on every push to main. No cost.

Step 2: Restrict access with Cloudflare Access (free, up to 50 users)

Cloudflare Access sits in front of the site and requires login before anyone can view it. No code changes to VitePress needed.

  1. Go to Cloudflare Dashboard → Zero Trust → Access → Applications
  2. Add an application → Self-hosted
  3. Application domain: wiki.kayasync.com
  4. Create a policy: Allow → Emails ending in @kayasync.com (or list specific emails)
  5. Add identity providers: Google and/or GitHub (configured under Zero Trust → Settings → Authentication)
  6. Save — anyone hitting wiki.kayasync.com will be prompted to log in via Google or GitHub before seeing any content

What this gives you:

  • Only people you approve can access the wiki
  • Login via existing Google or GitHub accounts — no new passwords
  • Free for up to 50 users (Cloudflare Zero Trust free tier)
  • Access logs: see who accessed the wiki and when

7. Website: kayasync.com

Marketing/landing page explaining what Kaya Sync is for prospective clients and operators.

Action: Decide on approach: static site (Astro, Next.js) or no-code (Framer, Webflow). Keep separate from the docs site.


8. Cloud Infrastructure: Digital Ocean

Account created. Nothing is hosted yet (correct for this stage.

When ready to host:

  • Staging environment: First droplet or App Platform deployment when a service is ready
  • Production environment: Set up after staging is validated
  • Container Registry: For Docker images when deploying microservices

Action: No action needed now. Revisit when first service is ready to deploy.


9. Project & Issue Tracking

Need a place to track development tasks, bugs, features, and sprints.

OptionRecommendation
Linear✅ Recommended, fast, clean, integrates with GitHub, built for startups
GitHub ProjectsFree, simpler, good if staying within GitHub
JiraOverkill at this stage

Action: Set up Linear. Connect to github.com/Kaya-Sync. Create first project: Platform Setup.


10. Secret & Credential Management

API keys, database passwords, and tokens must be stored securely, not in code.

ToolPurpose
1Password TeamsShared credential storage for the team
GitHub SecretsCI/CD pipeline secrets (API keys used in GitHub Actions)
DO Environment VariablesRuntime secrets for deployed services

Action: Set up 1Password Teams. Store all third-party credentials there (Cloudflare, DO, Flutterwave, Africa's Talking, Resend) as accounts are created.


11. CI/CD Pipeline

Automated deployments on code push. Start simple.

Phase 1: Docs only:

  • GitHub Actions workflow: on push to main → build VitePress → deploy to Cloudflare Pages
  • Cloudflare Pages handles this automatically once connected (no manual workflow needed)

Phase 2: When services exist:

  • Run tests on pull requests
  • Build Docker images and push to DO Container Registry
  • Deploy to staging on merge to main

12. Architecture & Design (Ongoing)

Design documents, data models, and deployment specs are documented in this site as they are completed.

DocumentStatus
User roles & responsibilities✅ Done
User journeys (all 10 roles)✅ Done
Port allocation map✅ Done
Service boundaries & APIs⬜ In progress
Data model & database schema⬜ Pending
Deployment architecture⬜ Pending
Authentication & access control⬜ Pending

Required before public launch or onboarding real operators.

ItemNotes
KYC/AML for operator onboardingFinancial regulation, operators receive payouts
Data protection complianceDepends on operating country (e.g. Kenya Data Protection Act)
Terms of ServiceRequired before users can sign up
Privacy PolicyRequired alongside ToS

Action: Engage a local lawyer familiar with fintech/logistics regulations in the launch country.


Priority Order

#ActionWhy First
1Google Workspace + ResendUnblocks team communication and transactional email design
2Cloudflare Pages, wiki.kayasync.comDocs live and shareable with team/investors
3Africa's Talking accountNeeded before designing OTP and notification flows
4Flutterwave accountNeeded before building payout service, verification takes time
5Linear setupNeeded before development starts in earnest
61Password TeamsNeeded before accumulating more third-party credentials
7Monorepo setupNeeded before first service is built
8CI/CD pipelineStart with docs deploy; expand as services are added

Kaya Sync Internal Documentation