Libriax
A behavioural science–driven reading platform focused on habit formation and long-term engagement.
Overview
I love books and read a lot of them, and I created Libriax as a dedicated reading tracker that I could fully customise, both in features and in design. It has since gradually expanded into a platform where reading behaviour can be measured, reflected on, and nudged through behavioural analytics.
Demo
Behavioural science motivation
The project became a behavioural science experiment in practice, with the main question being, how can design encourage sustained reading? I focused on mechanisms that influence engagement over time, such as streaks, habit formation cues, gamified progression, leaderboards, and achievements, aiming to make consistency feel rewarding without turning reading into gamified noise.

Streaks
Analytics
A core goal was to go beyond simple book lists and short-term targets and so Libriax emphasises long-term patterns, using yearly views, reading time trends, and personal breakdowns that help users notice what they actually do over months of reading.

Stats
Goals and UX
The goal system was designed to make progress legible and adjustable, with a UI that supports motivation without punishing missed days. This meant iterating heavily on small UX details that affect whether people actually return.

Goals
Achievements and retention
Alongside streaks, I built out a full achievements system and a leaderboard that ranks users by reading activity. These were added because the behavioural science around social comparison and completion bias suggested they would genuinely influence whether users returned. Getting the balance right required care, since gamification that feels manipulative tends to erode the very motivation it is trying to support.
To understand how users were actually behaving rather than how I assumed they were, I used SQL to query the production database directly, looking at session patterns, drop-off points, and which features saw sustained use versus initial curiosity. I supplemented this with some basic regression analysis in Python, which helped surface which variables were most predictive of users returning after the first week.

Gamify
AI integration
As AI tools accelerated, I wanted to better understand them for myself. I integrated Microsoft's Phi-3 as an LLM feature inside the product, and in the process learnt practical prompt engineering, failure modes, and why retrieval, constraints, and clear product boundaries matter more than just having a powerful model.

Libri
Backend, data, and security
Building Libriax forced me to take backend fundamentals seriously such as authentication, session handling, secure routes, and the practical risks of state-changing requests. On the data side, I designed the database schema from scratch and moved from SQLite to PostgreSQL, learning how query patterns, indexes, and data integrity constraints shape both performance and reliability over time.

Launch
Lessons learnt
The biggest takeaway is that most problems are "already solved" in the ecosystem, but that does not remove the need to understand them. Using the right libraries and patterns matters, yet the real progress came from debugging, making mistakes, and learning what breaks in real usage, especially when building something with users and long-lived data.
Built with
- Python
- Flask
- PostgreSQL
- JavaScript
- HTML
- CSS
- Vercel
More projects