Back to all projects
Journaling SaaSFull stackAnalyticsAuthentication

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

  1. 01

    Delivered the complete authenticated journal, collection, draft, and analytics workflow as one maintainable full-stack application.

  2. 02

    Converted journal activity into focused 7, 15, and 30-day trend views that help users understand consistency and mood patterns.

  3. 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

InkSpire landing page with daily entry, collections, and writing controls
The landing experience keeps daily reflection central while providing direct paths to collections and a new journal entry.
InkSpire dashboard with entry totals, average mood, summary, and mood timeline
Date-range controls and interactive charts turn recent journal activity into readable mood and consistency signals.

InkSpire screenshot viewer

Screenshot 1 of 2

Screenshot 1 of 2. The landing experience keeps daily reflection central while providing direct paths to collections and a new journal entry.