CNC Journal is a web-based private journaling platform designed for shared memories and communication between two users. Built around a role-based system — King and Queen — where each role has its own level of access and interaction.
| Layer | Technology |
|---|---|
| Framework | Next.js (App Router) |
| Styling | Tailwind CSS |
| Database | Supabase (PostgreSQL) |
| ORM | Prisma |
| Storage | Cloudinary |
| Hosting | Vercel |
Displays journal books configured by the King. Each book has accessibility settings — content can be set as public or Queen-only.
Write short meaningful messages to each other — motivations, reminders, or anything worth remembering.
A collaborative journaling space where both users can write and contribute stories together.
An archive to store photos and shared memories — a visual diary of moments.
| Permission | King | Queen |
|---|---|---|
| Create content | Yes | Yes |
| Edit own content | Yes | Yes |
| Delete content | Yes | Limited |
| Configure book access | Yes | No |
| Monitor activity | Yes | No |
The King can see the Queen's real-time login status and send short greeting messages that appear as notifications when she is online — making the experience more personal and interactive.
1. Clone & install
git clone https://github.com/username/cnc-journal.git
cd cnc-journal
npm install2. Setup environment
cp .env.example .env.local# Supabase
DATABASE_URL=postgresql://...
DIRECT_URL=postgresql://...
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
# Cloudinary
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
# Auth
NEXTAUTH_SECRET=
NEXTAUTH_URL=http://localhost:30003. Setup database
npx prisma migrate dev
npx prisma generate4. Run dev server
npm run devcnc-journal/
├── app/
│ ├── (auth)/ # Login & register
│ ├── home/ # Journal books
│ ├── notes/ # Short messages
│ ├── books/ # Collaborative journal
│ ├── gallery/ # Photo archive
│ └── activity/ # Real-time monitor (King only)
├── components/ # Reusable UI components
├── lib/ # Utilities & API helpers
├── prisma/
│ └── schema.prisma
└── public/
npm run dev # Development server
npm run build # Production build
npm run start # Start production server
npm run lint # Lint check
npx prisma studio # Database GUI| Role | Description |
|---|---|
| King | Full access — manage all content, configure books, monitor activity |
| Queen | Standard access — read, write, limited edit & delete |
Access is assigned at registration. Only one King and one Queen account are supported per instance.
Built with care · cnc-journal.vercel.app