Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Open-source journal web app with Next.js, mood tracking, tags, daily email reminders, and Stripe subscriptions.

Free multipage Bootstrap 5 entertainment website template with 12+ HTML pages, sliders, blog, and SEO-friendly layout.
Scribbly is an open source digital journal web app built on the Next.js App Router that lets users write, tag, and manage personal journal entries with mood tracking, daily email reminders, and Stripe-powered subscriptions.
Scribbly is a journaling web application written in TypeScript and distributed under the MIT license. It takes user-written entries — a title, block-style content, a mood, and comma-separated tags — as input and stores them in a PostgreSQL database via Drizzle ORM, then renders them as filterable journal cards. The app was created by Subham Bharadwaz (GitHub: subhamBharadwaz) and runs on Next.js with the /app directory, Tailwind CSS, and shadcn/ui components. It handles authentication, subscriptions, email reminders, analytics, and error monitoring out of the box.
To run it locally: clone the repository, install dependencies with pnpm, copy .env.example to .env.local, and fill in the variables for PostgreSQL, Better Auth secret, UploadThing, Stripe, and Resend. Then run pnpm db:migrate to apply Drizzle migrations, and pnpm dev to start the development server. For Vercel deployments, the repository root must be set to . (not src), because the app uses src/ as its source directory and middleware paths are resolved from the root.
The source code is free and MIT-licensed, so you can self-host without paying anything. The app itself includes a monthly subscription plan processed through Stripe, which unlocks additional benefits, though no prices are listed in the repository.
Yes, the entire codebase is open source under the MIT license and can be self-hosted at no cost. The app also has a monthly subscription plan via Stripe for users who want the extra features, but the repository doesn't state any specific prices.
Scribbly uses PostgreSQL as its database, accessed through Drizzle ORM. The required connection string goes in the DATABASE_URL environment variable, and database migrations are applied with pnpm db:migrate.
Set the project root directory to . instead of src. The Next.js app uses src/ as its source directory, and if you set Vercel's root to src, middleware and proxy paths are resolved incorrectly as src/src/.... The rest of the setup follows standard Vercel environment variables.
Yes, if a user activates the reminder option, Scribbly sends a reminder email every day at 9 pm. The emails are built with React Email and sent through Resend.