Karuk Tribe - Ararahih

Overview
I independently developed a full-stack language learning web app supports the preservation of the Karuk language through interactive vocabulary and audio features. Built with Next.js, Prisma, and TypeScript, it includes Clerk for authentication, PostgreSQL for data storage, and Cloudinary for audio uploads. The app delivers a modern and responsive experience.
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.
Tech Stack
Reflection
This project was a valuable opportunity to architect a complete full-stack application with real-world impact. I designed and built a scalable system that supports over 1,000 users, developed a CMS with audio upload capabilities to reduce manual work by 60%, and implemented real-time user data syncing through webhooks. Introducing end-to-end testing with Playwright helped cut production bugs by 30%. Beyond the technical growth, this experience showed me how software can directly solve real problems and increase access to important educational resources.
Learning
1. Full-Stack Architecture : Gained hands-on experience designing and implementing scalable full-stack systems, from database schema design to front-end UI development.
2. Third-Party Integrations: Learned to effectively integrate external services like Clerk for authentication, Cloudinary for media management, and webhooks for real-time data syncing.
3. Testing and Reliability: Implemented end-to-end testing with Playwright, which improved product reliability and deepened my understanding of automated testing workflows.
4. Collaboration and Product Thinking: Engaged closely with stakeholders to gather requirements, align priorities, and incorporate feedback, enabling the translation of a high-level product vision into practical, user-focused features and deliverables.
Challenges
Balancing scalability with maintainability was a key challenge during development. Structuring the database and APIs to support future growth without overengineering required careful trade-offs. Integrating third-party services like Clerk and Cloudinary also came with hurdles, particularly around ensuring secure and reliable data flow. In addition, translating stakeholder input into actionable technical decisions sometimes required navigating unclear requirements and aligning on priorities early in the process.
Future
This project sets a strong foundation for sustaining the Karuk language. Potential next steps include introducing interactive features like spaced repetition to improve learning outcomes. Experimentation with A/B testing could help fine-tune user experience and retention strategies. As the client's goals evolve, the platform is built to scale and adapt, ensuring it remains a sustainable and valuable tool for the preservation of the Karuk language.