A self-hosted, privacy-first system to log your daily life
JournalOS is a simple diary, released under the MIT license. It lets you log your life, like how you slept, if you are in a good mood, if you've worked remotely today, or how many friends you've talked to.
I don't like writing long essays, I've never succeeded in getting into the habit of writing daily. But I still wanted to document my life in a simple and efficient way. Since this didn't exist, I've created something that I would use every day (like my previous project).
You may use either the server I host, or host your own! You can try the product without even having to create your own account.
This is what it looks like.
JournalOS is for:
- People who want structured daily memory
- Users who care about privacy and data ownership
- Developers and power users
JournalOS is not for:
- Writing long personal journals
- Social sharing
- Coaching or habit gamification
-
JournalOS is built around modules, grouped into five categories:
πͺ Body & Health (5 modules)
- π Sleep
- πββοΈ Physical activity
- β€οΈ Health
- π½οΈ Meals
- π§Ό Hygiene
π§ Mind & Emotions (4 modules)
- π Mood
- β‘οΈ Energy
- π§ Cognitive load
- π Reading
πΌ Work (3 modules)
- πΌ Work
- π― Primary obligation
- π Day type
π₯ Social (4 modules)
- π₯ Social density
- π€ Social events
- π§ Kids
- β€οΈ Sexual activity
π Places (4 modules)
βοΈ Travel- ποΈ Shopping
- π¦οΈ Weather
- π¬οΈ Weather influence
-
Ability to prevent editing older journal entries
-
Access data with the LLM of your chcoice through a friendly URL
-
Fully translated in English and French
- You own your data.
- I work in public.
- I don't assume I know your reality.
- No ads.
- No data resale.
- No behavioral manipulation.
I wanted this tool to follow those principles:
- It is very simple to use, without needing a help center, although this exists.
- It is as fast as possible.
- It does not use JavaScript frameworks for the frontend. We use JS to enhance the user experience, but the core is still server-side rendered.
- It should have as few dependencies as possible, since dependencies always create problems.
- The code should be simple and predictable.
- It's designed to be self-hosted.
- The data is fully encrypted at rest. This comes with severe drawbacks, but at least data is secure.
JournalOS is designed to be self-hosted. See the documentation for Docker and manual installation instructions.
This project uses the following languages:
- Laravel,
- CSS with Tailwind almost exclusively,
- Blade for the templating language,
- JavaScript with AlpineJS,
- Ajax-like behavior with Alpine Ajax and Turbo,
- PHPUnit for the tests.
These are simple languages, chosen on purpose. They lower the barriers to entry for newcomers who want to help with the project. They are very easy to debug, very easy to install on any machine and very light in terms of resources. I just love the simplicity of code rendered by the backend. Super simple to deliver, super simple to scale.
I believe this project is a good project to learn how to code and to contribute to an open source project.
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT), also what I like to call it: the Don't be a dick/don't sue me policy. Please see License File for more information.