Trem - Threads style note taking
Trem is a full stack web application for capturing notes as trains of thoughts.
Stack: Python
TypeScript
Django Ninja
PostgreSQL
React
- Visit the GitHub repository
- See the demo application deployed here
Project Summary
Trem (noun)
- (Brazil) train
- (Minas Gerais, slang): a thing, anything (except a train)
Trem is a note-taking application designed to help users organise their thoughts in a threaded manner. Inspired by the concept of a “train of thought,” Trem allows users to link related notes into threads, making it easy to trace the evolution of ideas over time. This structure mimics the flow of a personal conversation, enabling deeper exploration of topics and better organisation of complex ideas. Note that Trem is under the development phase and is not yet ready for production use.
Technical Stack
- Programming Languages: Python, TypeScript
- Frameworks: Django (backend), React (frontend)
- Database: Postgres
- Build Tools: Bash scripts for development tasks
- ASGI Server: Gunicorn with Uvicorn workers for deploying and supporting asynchronous capabilities
Key Features
- Threaded Notes: Organise your notes into threads, allowing for easy navigation and logical grouping of related ideas.
- Tagging System: Apply tags to notes for cross-referencing ideas across different threads.
- Incremental Writing Support: Encourages revisiting and expanding notes, fostering gradual development of complex concepts.
Challenges and Solutions
Building a robust note-taking application like Trem required careful consideration of both frontend and backend integration. The choice of Django for the backend was made to leverage its strong ORM capabilities, which are well-suited for managing complex relational data like threaded notes. React was chosen for the frontend to provide a dynamic and responsive user interface.
Usage
To start using Trem locally:
- Clone the repository and navigate to the project directory.
- Build the project using the
./build.sh
script. - Start the application using
python -m gunicorn trem.asgi:application -k uvicorn.workers.UvicornWorker
.
Future Development
Future plans for Trem include adding features like thread linking and enhanced tag management. These additions will provide users with more powerful tools to create and manage complex knowledge networks.
You can explore the project further on GitHub.
For more on incremental writing, see:
Zettelkasten method resources:
- Introduction to the Zettelkasten Method - A comprehensive guide to understanding the Zettelkasten method.
- Build your own second brain with the Zettelkasten method - How to apply Zettelkasten in today’s digital age.
- Detailed Guide on the Zettelkasten System - An in-depth explanation of the Zettelkasten method and its principles.