“`html
rwMarkable: A Self-Hosted Checklist and Docs Tool (Built by a Busy Developer)
Okay, let’s be honest. I’ve been there. You’ve got a bunch of things swirling around in your head – tasks to do, notes to jot down, ideas to capture. And then you end up scrolling endlessly, feeling overwhelmed and like you’ve lost track of everything.
That’s exactly why I decided to build rwMarkable. It started as a personal obsession – a desire to have a simple, self-hosted tool for managing my tasks and documenting my thoughts. And honestly, it’s been a surprisingly rewarding (and occasionally chaotic!) journey.
The Idea Behind rwMarkable
The core idea is pretty straightforward: a lightweight app where you can create checklists, write rich text notes, and easily share them with others – all while keeping everything self-hosted. I wanted something that didn’t rely on a giant database or complicated setup. I’m a big fan of keeping things as simple as possible, especially when you’re juggling a full-time job and two young kids under three.
I’ll be upfront – this wasn’t a polished, overnight project. It evolved pretty quickly, which meant some of the code is a bit messy. But that’s okay, right? It’s a personal project, and I’m constantly improving it. Think of it as an early beta!
What You Get With rwMarkable
Checklists That Actually Work
Let’s start with checklists. You can create lists, drag and drop tasks to reorder them, and even add progress bars to see how far you’ve come. And, because I’m a fan of emojis, checklists automatically add emojis to recognised words – you can even add your own!
Rich Text Notes – Markdown Magic
But it doesn’t stop at checklists. rwMarkable also includes a rich text editor. It’s built with TipTap, so it’s super intuitive, and it fully supports Markdown. You can paste styled text directly into it, or write in good old Markdown. Basically, it’s a great place to jot down detailed notes and documentation.
Sharing Made Easy
Sharing checklists or documents with other users on your instance is super simple. It’s designed for collaboration – perfect if you’re working with a team or just want to share your ideas with someone.
File-Based – No Database Needed!
This is a big one for self-hosting enthusiasts. rwMarkable stores everything in simple Markdown and JSON files in a single data directory. This means no giant database to worry about, making backups and restores incredibly easy. This approach also aligns with what I believe is a more sustainable way to manage information.
User Management – Admin Controls
The admin panel allows you to create and manage user accounts. This is useful if you’re using rwMarkable in a team environment.
Customisable – Make it Your Own
You can choose from a selection of themes to change the look and feel of rwMarkable. And the best part? You can easily create your own theme, following the instructions in the repository.
Emojis – Add Some Fun!
As I mentioned before, checklists automatically add emojis to recognised words. You can disable this setting in the settings, or add custom emojis to custom words.
PWA – Like an App, Without the App
I’ve made rwMarkable a PWA (Progressive Web App). This means that if you serve it over HTTPS, it will ask you if you want to download it to your home screen – it’ll basically behave like an app on your mobile or tablet device!
Getting Started – Installation
Installation is pretty straightforward. You can use Docker Compose to get it up and running. I’ve included a docker-compose.yml file and instructions in the repository.
services:
app:
image: ghcr.io/fccview/rwmarkable:main
container_name: rwmarkable
# Use a non-root user for better security.
# If you haven't previously, create the user on your host with: sudo useradd -u 1000 rwmarkable user
# "1000:1000"
ports:
- "1122:3000"
volumes:
- ./data:/app/data:rw
- ./config:/app/config:ro
restart: unless-stopped
environment:
- NODE_ENV=production
init: true
You’ll also need to add the right permissions on the data and config folders using the commands in the repository.
Join the Journey
This project is still evolving, and I’d love to hear your feedback. Whether you love it, hate it, or have suggestions – it’s all welcome!
Thanks for checking it out!
“`