InkSpire
A secure, data-driven journaling application that combines rich-text writing, organized collections, and personal mood analytics.
- My role
- Full-stack developer · Product architecture, data model, authentication, security, analytics, and deployment
- Technology
- Next.js
- React
- PostgreSQL
- Prisma ORM
- Clerk
- Arcjet
- Recharts
01
The problem
Most journaling tools make it easy to record a thought but difficult to understand patterns across weeks of writing. InkSpire needed to protect private entries, keep daily writing friction low, and turn journal activity into useful trends without overwhelming the experience.
02
Architecture and decisions
I used Next.js App Router for the application shell and server actions, Clerk for identity, and a normalized PostgreSQL schema through Prisma for users, collections, entries, and drafts. Ownership checks protect every write, while Arcjet applies rate limiting, bot detection, and abuse protection. Recharts translates aggregated activity into 7, 15, and 30-day views, and external prompts and imagery are cached to keep the writing flow responsive.
03
Key features
- Secure rich-text journal creation, editing, deletion, and draft recovery
- User-owned collections for organizing and filtering entries
- Mood timelines, activity statistics, streaks, and word-count trends
- Protected routes with ownership validation, rate limiting, and bot protection
- Daily prompts and mood-related imagery from cached third-party APIs
04
Outcomes
- 01
Delivered the complete authenticated journal, collection, draft, and analytics workflow as one maintainable full-stack application.
- 02
Converted journal activity into focused 7, 15, and 30-day trend views that help users understand consistency and mood patterns.
- 03
Deployed on Vercel with environment-based configuration and a repeatable delivery workflow.
Metrics are included only where they were measured or documented.
Inside the product

