DEV Community

Cover image for How I Reduced Friction in My Studies Using AI, Rust, and Obsidian.
Gabriel Santos
Gabriel Santos

Posted on

How I Reduced Friction in My Studies Using AI, Rust, and Obsidian.

Every student knows: note-taking is fundamental for retention, but the act of formatting notes often consumes more energy than the learning itself. I found myself stuck in a cycle where research flowed smoothly, but documentation in Obsidian was a manual bottleneck.

Initially, I researched, practiced, and took notes manually. I tried using AI to generate summaries, but the "Copy from Chat -> Open Obsidian -> Create File -> Paste" process was still too slow. When I had 10 topics to study, I ended up giving up on the notes halfway through.

With that, I had the idea to further automate the note-taking process. I decided to create an application that does this automatically, and all I need to do for it to work is give it the name of the subject I want to summarize. Thus, noteap was born.

The Solution: The Noteap Ecosystem

To automate this, I divided the problem into three layers:

  • The Interface (React Native): A simple app where I just type the topic (e.g., "Rust Ownership"). No distractions.
  • The Brain (Node.js + Gemini AI): A server that receives the topic, uses prompt engineering to generate a structured Markdown with code examples, and saves everything in a MongoDB database.
  • The Synchronizer (Rust): Here's the key difference. I developed a Rust client that runs on my desktop. It retrieves pending notes from the server, converts them into .md files, and injects them directly into my "New Notes" folder in Obsidian.

Why Rust in the Client?

I chose Rust for its performance and the ease of generating a single binary. It starts with the system, consumes irrelevant resources, and ensures that when I open my computer to review, my notes from the previous session are already there, waiting for me. Why not choose C, C++, or Go? Both generate a single binary and are good languages, and the answer lies in the cost-complexity-performance ratio. Of these languages, I believe Rust is the one that maintains the most user-friendly syntax despite being low-level, and with good performance, which is why it was chosen.

Deployment

To keep the server always online, I put it running inside a Docker container on my AWS EC2 server, so I just need to grab the URL to use it with the other applications in the project.

Beyond Cognitive Load

According to Annie Piolat, in her study "Cognitive effort during note taking," note-taking is one of the most demanding mental tasks, consuming immense cognitive effort. Often, the act of formatting notes and organizing files consumes more energy than the learning itself, creating what I call "documentation friction."

By automating this workflow, I'm not just "saving time," I'm preserving my mental energy.

Automation has given me back the time I used to spend on formatting, allowing me to apply the effort that Piolat describes to active review and practical application, and not to the bureaucracy of paper (or the .md file).

And you? How do you manage your time and your notes? Have you ever tried to automate this process?

References

PIOLAT, A.; OLIVE, T.; KELLOGG, R. T. Cognitive effort during note taking. Applied Cognitive Psychology, 2005. (Base article on mental effort in note taking).

Top comments (1)

Collapse
 
eliasdenver profile image
Elias Denver

This is awesome! Automating note-taking like this really saves mental energy and keeps the focus on learning. Rust + AI + Obsidian is such a smart combo.