Stoic Quotes

Why I built this

It all started when I stumbled upon a GitHub account with a fully green commit graph. I was intrigued: how was this person committing every single day, even on weekends and holidays? After some digging, I realized that they weren’t making huge commits daily, just one small automated commit to a repository using a GitHub Action that updated the README with the current date.

I really liked the idea. First, it results in an eye-catching contribution graph. Second, building something similar would help me get more familiar with GitHub Actions. But I didn’t want to just copy the solution; I wanted to create something different and meaningful.

That’s when I remembered a book I had bought years ago: The Daily Stoic by Ryan Holiday. It offers a Stoic quote for each day of the year, along with a modern interpretation. That inspired the idea.

The Projects

“Stoic Quotes” isn’t just one project; it’s a collection of related efforts that began with Stoic Quote of the Day. This repository features a GitHub Action that initially inserted a random Stoic quote into the README on a daily basis. It also deploys the content with Jekyll to stoic-quote.jantmueller.com, initially relying on the Stoic Quotes API.

However, I soon ran into a couple of limitations:

  • The API didn’t include interpretations, which I considered essential.
  • Random daily quotes led to frequent repetition, which I wanted to avoid. Ideally, each quote would only appear once a year, like in The Daily Stoic.

This led to the creation of a new project: kathekon, a Python-based package and CLI where I store all quotes in a SQLite database. This gave me full control over how quotes are served, not just randomly, but also sequentially, by ID, or by date.

To solve the interpretation issue, I integrated GPT. I prefetched five different interpretations per quote using the OpenAI API and stored them in the database. Users can also generate their own interpretations dynamically, if they prefer.

Finally, I created insert-stoic-quote, a GitHub Action that fetches quotes from the Kathekon API and inserts them wherever needed. In my case, into the README of the Stoic Quote of the Day repository.


Stoic Quote of the Day

Monday, July 21, 2025

It is not what you endure that matters, but how you endure it.
Seneca

In navigating the challenges of life, the focus should shift from merely enduring difficulties to embracing how we endure them. Seneca's wisdom touches on the essence of resilience and attitude. Everyone encounters hardships—whether it's job-related stress, personal loss, or unexpected changes in relationships—but the real test lies in our responses. Picture two individuals facing the same setback: one may be overwhelmed by bitterness and complaint, while the other chooses acceptance and adaptation, seeking growth within adversity. It's like a storm battering a tree; one bends without breaking, using its flexibility to withstand the force, while the other, rigid and resistant, may snap. By cultivating an approach grounded in patience, understanding, and acceptance, we can transform our experiences into opportunities for personal growth. This mindset not only makes life’s burdens lighter but also enriches our character, allowing us to remain grounded and serene amid turmoil.

gh-actionspythonstoic-quote