← Back to Projects

Case Study

Oil for the Journey: Reflective Writing Platform

Most writing products optimise for speed and attention. I built Oil for the Journey to solve a different problem: a calm, reliable space for drafting and publishing reflective long-form content. I owned full stack delivery, from auth and data flow to responsive UI and deployment.

Next.js App RouterTypeScriptSupabase Auth + DBTailwind CSSVercel
Oil for the Journey home page

The homepage is designed to feel calm and readable, with content presented on paper style cards over a subtle textured background.

Overview

Most writing platforms optimise for engagement, speed, and visibility. That works for social content, but it creates friction for reflective writing where drafts need time and posts should be published on purpose.

I built Oil for the Journey to prioritise readability and ownership. It supports private drafting, controlled publishing, and a simple workflow that can evolve feature by feature without unnecessary complexity.

Challenge and solution

One challenge was keeping the reading experience calm while still supporting private admin workflows. I solved it by separating public and admin concerns in routing and component structure, which reduced UI noise for readers and made maintenance safer.

Problem statement

I wanted a platform that supports long form writing without turning it into a performance game. The core needs were private drafting, controlled publishing, and full ownership of content.

The biggest risk was building something that felt heavy or complicated to maintain. The platform needed to stay calm on the surface while being technically robust underneath.

Solution

Oil for the Journey is a full stack app with a clear separation between public content and admin only functionality. Notes can be created as drafts, edited over time, and published when ready, without relying on an external CMS.

The result is a distraction free reading experience for public users, with a private admin workflow that stays out of the way.

Key features

Admin workflow

Secure admin access is handled with Supabase authentication. Admin controls are hidden from public users, but available immediately after login.

Drafts and publishing

Notes can exist as drafts or published entries. Drafts never show publicly, and publishing is a simple state change, not a separate content creation step.

Readability first design

Content is displayed on paper style cards with careful spacing, contrast, and typography so longer notes feel easy to read, especially on mobile.

Maintainable stack

Next.js App Router, TypeScript, Supabase, and Tailwind make it easy to iterate safely. Vercel deployment keeps environments and releases simple and repeatable.

Screenshots

These screenshots show the public reading experience and the admin workflow used to draft, edit, and publish notes.

Weekly notes page
Weekly Notes page for browsing published entries.
Note detail page
A single note view with optional YouTube embed and long form content.
Login page
Login screen for admin access.
Admin dashboard
Admin dashboard for managing drafts and published notes.
New note form
New note form with draft saving and publishing.
About page
About page explaining the theme and purpose of the platform.

What went well

  • Clear separation between admin logic, public content, and layout styling made changes safer and debugging faster.
  • Building features incrementally kept complexity under control and made it easier to spot issues early.
  • Once environment variables were corrected, deployment became stable and repeatable on Vercel.

Challenges

  • Supabase configuration required care around server and client environment variables across local and production builds.
  • Text readability needed iteration to balance decorative backgrounds with strong contrast and spacing.
  • Admin controls had to stay invisible to public users while still being discoverable for authenticated admins.

Lessons learned

Shipping incrementally reduced risk and kept the codebase easy to reason about. Readability turned out to be a technical problem too, because it depends on typography, spacing, and contrast working together across devices.

I also learned that environment configuration is part of the product. Once the Supabase and Vercel setup was correct, iteration became much faster.

Future improvements

The foundation is stable, so future features can be added without restructuring the app. Next steps include rich text editing, tags and categorisation, version history, soft delete, and a more polished admin dashboard.

Oil for the Journey is now a production deployed platform with secure admin access, draft and publishing workflows, and a clean reading focused UI. It shows my ability to build maintainable full stack products, debug real deployment issues, and design systems around how people actually work.