Side Project: Building Jaksim Friend (React Native)
Loading comments...
In 2022 our five-person team started a side project called Jaksim Friend, a social accountability app for people who wanted to keep their resolutions. Although we never released it to the public, the build gave me my first end-to-end experience shipping a mobile product with React Native, TypeScript, and Recoil.
The concept was simple: users created goals, shared progress with friends, and encouraged each other to stay motivated. I served as the frontend lead covering planning, UI, development, and release preparation for both iOS and Android.

Early brand palette and type for Jaksim Friend.
Core features
Goal

Overview slide: stack and main flows.
We wanted one codebase for both platforms, so React Native was an obvious choice. Pairing it with TypeScript caught data-shape issues early and made the developer experience much easier, especially with API payloads or nested props.
Redux felt like overkill for this scope. Recoil let us manage state via atoms/selectors with minimal boilerplate and integrate cleanly with hooks, so components stayed focused on rendering rather than wiring reducers.
Styled-Components kept styles colocated with components, prevented class-name collisions, and let us drive dynamic styling via props without jumping between files.
All Axios calls lived inside src/apis. UI components simply requested data from that layer, so backend contract changes only touched one directory.

Marketing site: search and habit feed block.
Shared flows such as authentication were extracted into hooks like useAuth. Each hook handled AsyncStorage tokens, Recoil updates, and API calls so product components remained declarative.