Karuk Tribe

Karuk Tribe Image

Overview

I independently developed a cross-platform language learning ecosystem designed to preserve the Karuk language through high-performance digital tools. The suite features a web application built with Next.js, a mobile application developed in React Native, and a custom CMS panel that allows instructors to manage the curriculum and upload content in real-time. By integrating Supabase for data management, authentication, and secure storage, the platform provides a responsive, full-stack solution that ensures a consistent and accessible learning experience across all devices, tailored specifically to the unique linguistic needs of the community.

Problem

The Karuk language is at risk of disappearing due to a lack of accessible, digital learning resources. Existing language classes required in-person attendance at specific times, limiting participation, especially for community members with scheduling conflicts. This created a need for a flexible, online solution to support language-learning platform for the Karuk language.

Reflection

This project was a valuable opportunity to architect a high-performance, full-stack ecosystem with tangible cultural impact. I independently developed a dual-platform solution across 26+ screens, scaling the system to support 1,000+ users while accelerating delivery by 30% through rigorous ADR and C4 modeling. On the backend, I engineered a robust PostgreSQL schema with Row Level Security and deployed serverless Edge Functions that achieved sub-100ms response times for real-time streak tracking. By implementing 14+ TypeScript modules with React Query and Zod, I ensured a type-safe, production-ready environment optimized to support the long-term vitality of the Karuk language.

Final Site

ararahih.org
Karuk Tribe app mockup

Learning

1. Cross-Platform Architecture: Developing for both web and mobile simultaneously highlighted the importance of a "mobile-first" logic approach. I learned to abstract core business logic into shared utilities, ensuring that features like lesson progression remained consistent across Next.js and React Native without duplicating code.

2. Advanced Database Design: Designing a schema with 10 normalized tables taught me how to balance data integrity with query performance. Implementing Row Level Security (RLS) in Supabase provided deep insights into backend security, moving the "source of truth" for permissions directly into the database layer rather than the application code.

3. Edge Computing & Performance: Deploying serverless Edge Functions shifted my perspective on latency. I learned to optimize cold starts and leverage geographically distributed compute to handle high-frequency updates, like streak tracking and leaderboards, maintaining a snappy user experience even as the database grew.

4. System Documentation & Standards: Authoring ADRs (Architecture Decision Records) and C4 models proved that intentional planning saves time. This disciplined approach reduced technical debt and allowed me to scale the platform to 26+ screens while maintaining a 30% faster delivery rate through clear, predefined component standards.

Challenges

The primary challenge was ensuring a unified user experience across both the web and mobile platforms. Orchestrating seamless synchronization between Next.js and React Native required a robust state management strategy to keep lesson progress and user data consistent in real-time. On the backend, managing a highly relational PostgreSQL architecture required careful planning to maintain data integrity without sacrificing the speed. I also had to navigate the constraints of edge computing, optimizing serverless functions to eliminate lag so that interactive elements like leaderboards and streaks felt fluid and responsive on any device.

Future

Moving forward, the platform is architected to evolve from an interactive study tool into a comprehensive fluency ecosystem. A primary insight for development is the potential for AI-driven speech recognition, which would move beyond current button-click feedback to provide users with real-time, phoneme-level evaluation of their actual spoken pronunciation. I also see a clear path for implementing an offline-first synchronization mode to ensure that learners in remote areas maintain uninterrupted access regardless of connectivity.