Buzzard to Peregrine Transition
Understanding the evolution from the Buzzard (legacy) native apps to the Peregrine (modern) React Native platform.
Categories:
This page documents the strategic transition from the legacy Buzzard native apps to the current Peregrine React Native platform.
Overview
The Phenom mobile application has evolved through two major platform generations:
- Buzzard (Legacy) — Native iOS (Swift) and Android (Kotlin) apps built on Firebase
- Peregrine (Current) — Cross-platform React Native app built with Expo
This document explains the relationship between the two platforms and the transition strategy.
flowchart LR
A([Buzzard iOS
Swift]):::legacy --> C([Peregrine
React Native]):::current B([Buzzard Android
Kotlin]):::legacy --> C C --> D([iOS App Store]):::deploy C --> E([Google Play]):::deploy classDef legacy fill:#151515,stroke:#d73429,color:#ffffff,rx:30 classDef current fill:#121010,stroke:#a5e3e8,color:#a5e3e8,rx:30 classDef deploy fill:#1a1a1a,stroke:#a5e3e8,color:#ffffff,rx:30
Swift]):::legacy --> C([Peregrine
React Native]):::current B([Buzzard Android
Kotlin]):::legacy --> C C --> D([iOS App Store]):::deploy C --> E([Google Play]):::deploy classDef legacy fill:#151515,stroke:#d73429,color:#ffffff,rx:30 classDef current fill:#121010,stroke:#a5e3e8,color:#a5e3e8,rx:30 classDef deploy fill:#1a1a1a,stroke:#a5e3e8,color:#ffffff,rx:30
Platform Comparison
| Aspect | Buzzard | Peregrine |
|---|---|---|
| Platform | Native iOS (Swift) + Android (Kotlin) | React Native + Expo (cross-platform) |
| Backend | Firebase (Firestore, Cloud Functions, Auth) | Hasura GraphQL + PostgreSQL + AWS Cognito |
| Real-time Messaging | PubNub | Matrix Protocol |
| Maps | Google Maps SDK | Mapbox GL |
| Geospatial | Basic lat/lng | H3 hexagonal indexing |
| Camera | Native camera APIs | Vision Camera v5 + React Native Skia HUD |
| Content Auth | None | C2PA Content Credentials |
| Video Processing | Basic capture | FFmpeg Kit + custom post-processor |
| Internationalization | English only | 7 languages (i18next) |
| Development Team | ABCloudz (external) | Internal team |
| Repositories | Buzzard-iOS, Buzzard-Android | PhenomApp |
Why the Transition
Limitations of Buzzard
- Dual codebase: Maintaining separate Swift and Android codebases doubled development effort
- External dependency: Reliance on ABCloudz for all development work
- Firebase limitations: Vendor lock-in with limited query capabilities compared to PostgreSQL + GraphQL
- No content authentication: No C2PA support for verifying captured media authenticity
- Limited geospatial: Basic coordinate storage without advanced spatial indexing
Peregrine Advantages
- Single codebase: React Native serves both iOS and Android from one codebase
- Internal control: Development managed by the internal team
- Modern stack: Hasura GraphQL, AWS infrastructure, advanced geospatial (H3)
- Content credentials: C2PA integration ensures media authenticity
- Advanced visualization: Skia-based camera HUD, Mapbox maps, 3D globe
flowchart TD
A([Buzzard in Production]):::legacy --> B([Peregrine Development]):::current
B --> C([Feature Parity Reached]):::milestone
C --> D([Beta Testing]):::current
D --> E([User Migration]):::milestone
E --> F([Buzzard End-of-Life]):::legacy
classDef legacy fill:#151515,stroke:#d73429,color:#ffffff,rx:30
classDef current fill:#121010,stroke:#a5e3e8,color:#a5e3e8,rx:30
classDef milestone fill:#d73429,stroke:#ffffff,color:#ffffff,rx:30
Current Status
- Buzzard: In maintenance mode. ABCloudz handles bug fixes and minor updates on a Time & Material basis. Production version 1.2.3 (build 23) on iOS.
- Peregrine: Active development targeting production launch in Q1 2026. See Peregrine Roadmap for timeline.
Transition Strategy
The transition follows a parallel approach:
- Buzzard remains in production for existing users
- Peregrine is developed to feature parity and beyond
- Once Peregrine reaches production readiness, users migrate to the new app
- Buzzard enters end-of-life
Related Documentation
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.