Skip to main content

Engineering Planning 2026

A deep dive into Terra’s current capabilities, gap analysis, and strategic recommendations for the engineering roadmap.

Executive Summary

Terra has achieved feature parity with Tideswell and offers significant architectural improvements. The platform is production-ready for application intake with strong foundations in security, multi-tenancy, and integrations. Key Decision: Continue building Terra. The architectural investments (PostgreSQL, Next.js, DAL, audit logging) provide a superior foundation compared to alternatives or continued Tideswell investment. Strategic Focus Areas:
  1. Applicant identity unification (cross-program accounts)
  2. Income/employment verification integrations
  3. Impact dashboards and reporting
  4. Payments API integrations

Part 1: Current Capability Audit

Application Intake (Applicant-Facing)

CapabilityStatusImplementation
Form builder (drag-drop)✅ Completeform-builder/, dnd-kit
Conditional logic✅ CompleteJSON conditions in schema
Multi-language✅ CompleteI18nString + DeepL auto-translate
File uploads✅ CompleteSupabase + Google Drive
Anonymous forms✅ Completeis_anonymous flag
Authenticated forms✅ CompleteWorkOS OAuth
Scheduled publish/close✅ Completepublished_at, closes_at
Form freezing✅ CompleteAuto-freeze on first submission
ID verification✅ CompletePlaid Identity
Bank verification✅ CompletePlaid Auth
Address validation✅ CompleteSmarty integration
Status lookup✅ CompleteReference ID lookup page
Applicant portal✅ Complete/portal with program filtering

Data Processing (Internal)

CapabilityStatusImplementation
PostgreSQL storage✅ CompleteSupabase hosted
Field-level encryption✅ CompleteencryptSubmissionPII()
Soft delete✅ CompleteDAL pattern, 30-day cleanup
Audit logging✅ Complete28 action types, 13 entity types
Async queue✅ CompleteDatabase-backed, retry logic
Background worker✅ CompleteLifecycle + cleanup tasks

Integrations

IntegrationStatusImplementation
Airtable sync✅ CompleteBidirectional, field mapping
Webhooks✅ CompleteHMAC signed, event history
Email (Resend)✅ CompleteReact Email templates
SMS (Twilio)✅ CompleteTemplate system
Google Drive✅ CompleteFile uploads to shared drives
Plaid (ID/Bank)✅ CompleteIdentity + Auth products
Smarty (Address)✅ CompleteAutocomplete + validation
Sentry✅ CompleteError monitoring
PostHog✅ CompleteProduct analytics

Fraud Review

CapabilityStatusImplementation
Geolocation capture✅ CompleteIP, country, city, region
User agent tracking✅ CompleteStored per submission
Duration tracking⚠️ PartialSession start/end available
Behavioral signals⚠️ PartialNeed submission timing analysis
Fraud database❌ Not BuiltNeed cross-program fraud actor DB

Status Tracking (Applicant-Facing)

CapabilityStatusImplementation
Status lookup page✅ CompleteReference ID + email lookup
Outcome display✅ Completeoutcome field on submissions
Status page defaults✅ CompleteSystem-wide + form-level
Multi-language status✅ Completei18n dictionary

Data & Reporting

CapabilityStatusImplementation
Form insights✅ CompleteVisits, starts, completions
UTM tracking✅ CompleteSource, medium, campaign
CSV export✅ CompleteInsights + submissions
Tableau integration❌ Not BuiltNeed data warehouse layer
Impact dashboards❌ Not BuiltNeed reporting infrastructure

Payments

CapabilityStatusImplementation
Payment collection❌ Not Built
Dots.dev integration❌ Not Built
Recurring payments❌ Not Built
Refunds❌ Not Built

Customer Support

CapabilityStatusImplementation
In-app chat❌ Not BuiltCould integrate Intercom/Zendesk
Help center⚠️ PartialSupport URL per form
Ticket integration❌ Not Built

Part 2: Roadmap Item Analysis

Based on the product roadmap, here’s the gap analysis:

In-Progress / To-Do Items

Roadmap ItemTerra StatusEffortRecommendation
Income + employment verification❌ Not BuiltMediumBuild: Integrate Plaid Income or Argyle
Tighter customer support integration❌ Not BuiltLowBuy: Integrate Intercom/Zendesk widget
Dots.dev payments integration❌ Not BuiltMediumBuild: High strategic value
Impact dashboards + reporting❌ Not BuiltHighBuild: Core differentiator
Accessibility enhancements⚠️ PartialMediumBuild: Incremental improvements
White-labeling support✅ CompleteAlready done (custom domains, branding)
Markdown rendering enhancements⚠️ PartialLowBuild: Quick wins

Current Strengths

StrengthTerra StatusNotes
Managing repeat payments❌ Not BuiltNeed payments infrastructure first
Fraud mitigation (proprietary DB)❌ Not BuiltNeed cross-program fraud database
Fraud mitigation (behavioral)⚠️ PartialHave geolocation, need timing analysis

Opportunities

OpportunityTerra StatusStrategic ValueRecommendation
User management / unified identity⚠️ PartialHighPriority: Expand applicant identity
Cross-form account persistence⚠️ PartialHighPriority: Already have applicants table
Pre-fill from saved account❌ Not BuiltMediumBuild: Natural extension of identity
Form templates⚠️ PartialMediumBuild: Template library + duplication
Recertification flows❌ Not BuiltHighBuild: Required for recurring programs

Part 3: Build vs Buy Analysis

Pros:
  • Full control over features and deployment
  • Data ownership and compliance control
  • Tideswell parity already achieved
  • Modern architecture (PostgreSQL, Next.js, TypeScript)
  • DAL provides clean foundation for new features
  • Seamless Airtable integration already working
  • Cost-effective at scale
Cons:
  • Small team bandwidth
  • Opportunity cost during program launches
Mitigations:
  • Freeze non-critical features during launches
  • Prioritize high-leverage work (identity, payments)
  • Use external services where appropriate (support, analytics)
Pros:
  • Potentially faster feature delivery
  • Larger support team
Cons:
  • Data migration complexity
  • Loss of Airtable integration sophistication
  • Loss of fraud detection infrastructure
  • Vendor lock-in
  • Ongoing licensing costs
  • Limited customization for government use cases
  • Would need to rebuild ID/bank verification integrations
Verdict: The investment in Terra is substantial and the architecture is sound. Switching would lose significant value and require rebuilding integrations.
FunctionApproachService
Application intakeBuild (Terra)
Data processingBuild (Terra)
PaymentsBuild integrationDots.dev, Stripe
Customer supportBuyIntercom, Zendesk
ReportingBuild + BuyMetabase, Tableau
Error monitoringBuySentry (done)
AnalyticsBuyPostHog (done)

Part 4: Strategic Recommendations

Tier 1: High Priority (Q1 2026)

1. Unified Applicant Identity

Problem: Users create new accounts per program, losing their history. Solution: Expand the existing applicants table to be a true identity hub.
// Current: applicants are form-scoped
applicant_id -> linked to submissions

// Target: applicants are org-scoped with profile
applicant {
  id, org_id,
  email, phone, name,
  saved_profile: { address, household_size, income_range },
  verified_fields: { email: true, phone: true, identity: true },
  created_at, last_active_at
}
Scope:
  • Expand applicant profile fields
  • Add profile completion percentage
  • Pre-fill forms from saved profile
  • Single sign-on across programs (same org)
Effort: 2-3 weeks

2. Income/Employment Verification

Problem: Manual income verification is time-consuming and fraud-prone. Solution: Integrate Plaid Income or Argyle for instant verification. Scope:
  • Add income_verification field type
  • Store verification results
  • Display verified income in review
Effort: 2-3 weeks

3. Recertification Flows

Problem: Recurring programs need periodic re-verification. Solution: Submission continuation with pre-filled data. Scope:
  • Add parent_submission_id for continuation
  • Pre-fill from previous submission
  • Track recertification schedule
  • Send reminder notifications
Effort: 2-3 weeks

Tier 2: Medium Priority (Q2 2026)

4. Payments Integration (Dots.dev)

Problem: Payment disbursement is manual. Solution: Integrate Dots.dev for programmatic payments. Scope:
  • Payment configuration per form
  • Disbursement triggers (on approval, scheduled)
  • Payment status tracking
  • Refund handling
Effort: 3-4 weeks

5. Fraud Database

Problem: Fraud actors observed in one program aren’t flagged in others. Solution: Cross-program fraud signal database. Scope:
  • Fraud signal collection (IP, device, behavioral)
  • Cross-program matching
  • Risk score calculation
  • Admin review interface
Effort: 4-6 weeks

6. Impact Dashboards

Problem: No unified view of program impact. Solution: Embedded analytics with key metrics. Scope:
  • Submission funnel metrics
  • Geographic distribution
  • Demographic breakdowns
  • Outcome tracking
  • Exportable reports
Effort: 4-6 weeks

Tier 3: Lower Priority (Q3+ 2026)

7. Customer Support Integration

Solution: Embed Intercom or Zendesk widget with submission context. Effort: 1 week

8. Text-Based Form Editing

Problem: UI form building is slow for power users. Solution: Import/export JSON schema with validation. Scope:
  • JSON schema editor in UI
  • Validation on import
  • Version diffing
Effort: 1-2 weeks

9. Accessibility Audit

Solution: WCAG 2.1 AA compliance audit and fixes. Effort: 2-3 weeks (ongoing)

Part 5: Architecture Decisions

Keep Text-Based Form Export?

Recommendation: Yes, add JSON export/import. Currently forms are only editable via UI. Adding a JSON export/import capability would:
  • Speed up power user workflows
  • Enable form versioning via git
  • Allow programmatic form creation
// Export format (already similar to current schema)
{
  "version": "1.0",
  "title": { "en": "Rental Assistance" },
  "elements": [
    { "type": "text", "id": "name", "label": { "en": "Full Name" } },
    // ...
  ]
}
Effort: 1 week

Form-Input Only vs Applicant Management?

Recommendation: Move toward applicant management. Terra already has the foundation:
  • applicants table exists
  • Submissions link to applicants
  • Portal shows all submissions per applicant
Next steps:
  1. Expand applicant profile (contact info, documents)
  2. Add profile editing UI
  3. Pre-fill forms from profile
  4. Single account across org’s programs
This aligns with “making logins relevant across more of the pipeline.”

Tideswell vs Terra?

Recommendation: Terra is the path forward.
FactorTideswellTerraWinner
ArchitectureMongoDB + ExpressPostgreSQL + Next.jsTerra
Type safetyJavaScriptTypeScriptTerra
AuthCustomWorkOSTerra
Audit loggingManualAutomatic (DAL)Terra
Soft deleteManualBuilt-inTerra
IntegrationsLegacyModernTerra
MaintainabilityTechnical debtClean slateTerra
Terra should be the primary development focus. Tideswell can remain operational for existing deployments but shouldn’t receive new features.

Part 6: Proposed Roadmap

Quarterly Breakdown

Q1 2026: Identity & Verification
  • Unified applicant identity (3w)
  • Income/employment verification (3w)
  • Recertification flows (3w)
  • Buffer for program launches
Q2 2026: Payments & Fraud
  • Dots.dev payments integration (4w)
  • Cross-program fraud database (5w)
  • Buffer for program launches
Q3 2026: Reporting & Polish
  • Impact dashboards (5w)
  • Support integration (1w)
  • Accessibility audit (3w)

Part 7: Quick Wins

These can be done in 1-2 days each:
  1. JSON form export - Download form schema as JSON
  2. Markdown image sizing - Add width/height to info fields
  3. Text color in markdown - Support <span style="color:red">
  4. Remove “create new account” messaging - Encourage single account
  5. Form templates library - Curated starting points
  6. Bulk status update - Update multiple submissions at once
  7. Keyboard shortcuts - Form builder productivity

Appendix: Current Tech Stack

LayerTechnologyPurpose
FrameworkNext.js 15Full-stack React
DatabasePostgreSQL (Supabase)Primary data store
AuthWorkOSSSO, MFA, user management
StorageSupabase Storage + Google DriveFile uploads
EmailResend + React EmailTransactional email
SMSTwilioText notifications
Payments— (planned: Dots.dev)Disbursements
AnalyticsPostHogProduct analytics
MonitoringSentryError tracking
QueuePostgreSQL tableAsync operations
HostingVercelEdge deployment

Appendix: Database Tables (35 total)

Core

  • forms - Form definitions
  • submissions - Application data
  • applicants - Applicant identity

Identity

  • users - Admin users (via WorkOS)
  • program_members - Form-level access
  • agencies - Multi-tenancy

Workflow

  • form_sessions - Draft progress
  • form_versions - Schema history
  • audit_logs - Change tracking

Integrations

  • airtable_connections - Sync config
  • webhook_configs - Webhook settings
  • webhook_events - Delivery history
  • notification_events - Email/SMS history
  • notification_providers - Provider config
  • notification_templates - Message templates

Async

  • async_operations - Job queue

Tideswell Comparison

How Terra relates to Tideswell