Jadebook is an opinionated framework for personal growth.
It's a solo-dev project aimed at making journaling more accessible and experimenting with the benefits of AI in personal growth.
However, journaling should be private and there aren't many open-source alternatives for a good journaling platform. Thus, we made a special version of Jadebook, one that can be easily hosted and updated.
Important
This is a separate open-source version of the actual Jadebook project. Therefore there are feature and infrastructure differences. This version focuses primarily on the open-source journaling experience. We didn't include the AI stuff or any features added after September 2025. We do however, aim to retain compatibility with the imports/exports for content.
- Everything is held in Supabase, including auth, db and storage
- Search, tags, covers, icons, transcription and uploading assets
- Mobile-responsive and available as a Progressive Web App (PWA)
- Comes with OpenAPI spec in-case you want to build something on top
- Uses NextJS so the code is fairly accessible and easy to work with
- Export/Import to and from the SaaS Jadebook platform
- You can one-click deploy it on Vercel for free
- Rich-text editor for entries
- Everything is synced across devices and platforms
You can click the button below. It'll take you through the steps to setting up Jadebook on Vercel and include the Supabase integration. The deployment should take around 3-5 minutes to complete.
Note
Do not turn off the option to seed the database when setting up Supabase. This is required to set up the correct tables and RLS policies within Supabase.
You'll notice that you need to enter the email you'll be using for your account. Jadebook OSS is not intended or setup to be used for multiple people, thus to stop random people from signing up and using your resources, we only allow 1 email to create the account. You can change the email later.
USER_EMAILrefers to the email that should be allowed to create the account. By default, only one person is allowed to sign-up to prevent abuseNEXT_PUBLIC_AUTH_IMAGE_URLrefers to the image shown on auth screens such the sign-in and sign-up. Any image url is good, we recommend getting one from Unsplash
You can setup themes, letting you change the look and feel of the entire platform in-app.
- By default, we have around 24 themes for you to choose from
- Each theme has a different style for light and dark mode
- You can also change the font, letter spacing, spacing and rounding
- You can change data layout (i.e. list, grid, monthly view)
- Turn on/off sidebar features like the goals and search
Jadebook has a unique view on goals. Rather than a todo list, we have a main generic goal (like Make money) and then an end date. You can then create mini journal entries as you experiment with different things, explore and basically work towards the direction of the goal.
This is mainly for long-term (3 months plus) goals that are difficult quantify.
By default, we have included the following precautions:
- Supabase (DB) is never accessed on the client and is only accessible through the API
- The API requires an user's session token which is periodically refreshed
- The API also handles CORS to deny unknown hosts
- Tables have an RLS policy to only allow Anon and Authenticated roles to access data
- Assets are loaded using signed-URLS and expire after a given time
- We only allow 1 email to sign-up to stop abuse from random people
- The Vercel Firewall (if hosting on Vercel) should also handle malicious traffic and DDOS protection
- We gather absolutely no telemetry
- NextJS security headers are also setup
- We've disabled search indexing so the platform won't be visible on search
However, there are still some things to understand:
- We do not encrypt the journal entries. (Unencrypted data allows full-text search to work)
- We do not handle rate-limiting (Although Vercel Firewall should mitigate this)
- Auth is setup by default, including password reset and email verification
- You can export or import all your content in JSON format
- Unlimited character count (although you should try not to go beyond 20K)
- You can extend the TipTap v3 editor if you wish (however this might cause compatibility issues)
- Streak tracking
- We're also using the React Compiler for maximum performance
If you plan on extending the app, we recommend using Supabase locally on a docker instance (initializing Supabase from the root will run the migrations as well). You'll have to add the environment variables for Supabase, and then you can do pretty much anything you want.
We'd like to thank the following because they have helped make Jadebook really good:
- shadcn/studio -> Our theming is mostly based on the implementation in shadcn/studio
- Supabase - Supabase allows Jadebook to be possible and so easy to setup. Big thumbs up to them
- Coolshapes - These are the nice abstract shapes you see in Jadebook. Absolutely amazing and adds so much life to the app
- Hono Open API Starter - The way we setup our backend to use Hono and OpenAPI is heavily inspired by this starter app. Great resource.
- Pawel Czerwinski - We use his image from Unsplash for a lot of Jadebook stuff. We love his images btw.
