If you are familiar with Vim, think of Emacs as Vim, and Doom Emacs as Neovim, and skip to the next section.
Emacs is an open source text editor with lots of features and built-in room for further customisation with internal and external plugins: you inherit a complicated and ugly-looking piece of software and over the years you extend it with scripts, change shortcuts and add features until the program becomes aligned with your needs.
All of this works because Emacs, despite being mostly written in C, contains an interpreter for the Emacs-Lisp language, so you can add and run code in runtime, in the same Emacs instance you are working on. You can redefine variables, inspect them and change pretty much anything, while the program runs.
As for Doom, according to the official repository:
Doom is a configuration framework for GNU Emacs tailored for Emacs bankruptcy veterans who want less framework in their frameworks, a modicum of stability (and reproducibility) from their package manager, and the performance of a hand rolled config (or better).
I was originally drawn to Emacs while looking for a tool to write thoughts in a coding-compatible environment, with the goal of integrating some specific features that I wanted. I had already written my own simple text editor with Java, but I wanted something more powerful so I began exploring existing tools, namely Obsidian and Joplin, until I eventually found org-roam. The latter is what convinced me to switch to Emacs and the org-mode package, which I now use on an hourly basis.
Since the summer of 2022, I have maintained my own config of Doom Emacs, changing it to my liking through the integration of Python, Shell and Emacs-lisp script. I am uploading it here so it can be a reference for other people.
After getting into Quantified Self, the systemic collection of personal data for analysis, I set up a system of shortcuts through plugins and code that I hacked together in order to quickly record activities such as projects, work, study sessions and recreational activities like watching movies, series or reading books.
I have also extended my analysis with a modified version of Jeff Filipovits's brilliant org-clock-export package to export all my logs as csv files, allowing me study the data with a Python Jupyter Notebook.
In line with my self-tracking habit, I use GPS Logger on my phone to record .csv files of my location history and Syncthing to sync the files to my computer. With a Python script I made, I can export the files to .html maps and integrate them in the org-mode agenda. The whole process is automated and coordinated through Emacs and it allows me trace my movements at the side of my agenda.
I also use Emacs as a way to index my files. For instance, I write timelines for sensitive documents (medical charts, identity cards) or group important tasks (maintenance, cooking recipes) in a single file to keep all information in a central place. As an example, this is the file of the websites that I archive: I have a shortcut that given a link automatically stores the websites using org-board and a way to automatically display the total size of the website directory
As I have more interest than time to work on them, I maintain lists of 'ideas for the future' and other kinds of reminders: things to watch, read, develop or learn, The org-capture feature allows users to define a format to insert data and a destination file; when calling the function, org-capture creates a small window, asks the user to insert the information, and disappears, saving the text automatically.I am currently working on Attimo, a golang productivity app that allows users to define tables and quickly add new rows to them. The app is currently under active development, though I intend it to eventually replace my Emacs configuration.