Skip to main content

From Voice Notes to Blog: An Automated, Self-Hosted Publishing Workflow

·660 words·4 mins

At the start of the year, I set a clear goal: to more efficiently transform the ideas buzzing in my head into blog articles. The inspiration stemmed from a need for a ’night secretary’ capable of refining my thoughts. This led me to build Brainstack. Later, I discovered similar initiatives, like Alexey Grigolev’s Telegram writing assistant, which also aim to streamline content generation.

The Manual Publishing Bottleneck
#

Despite a constant flow of ideas, the friction in the publishing process was significant. The manual effort of copying, pasting, formatting, and reviewing each piece of content often resulted in unpublished articles. This inertia, stemming from a lack of motivation and organization, became a bottleneck that demanded an engineering solution to reduce friction.

Architectural Choice: Git-Based CMS and Automation
#

After analyzing the problem, the need to rethink the site’s architecture became clear. The goal was to decouple the editing phase from direct code manipulation. I explored solutions that simulated an administration panel but, under the hood, leveraged Git for version control and article management. This approach proved ideal for my static website, built with Hugo. Furthermore, unlike Alexey’s system, I employ a partially self-hosted setup (for transcription) and utilize Gemini’s APIs (which are included in my subscription).

The Self-Hosted Content Workflow
#

I then designed a workflow that integrates several components to automate the process:

  • Voice Transcription (FastWhisper V3): The first step involves transcribing my voice notes. I integrated FastWhisper V3, configured for Italian, to convert my streams of thought into text. This lowers the initial barrier to writing, allowing me to capture ideas more naturally and immediately.
  • Topic Organization and Routing: Next, a fetch command moves the transcription into a predefined category or ’topic.’ I implemented an automatic routing system to suggest the most suitable topic, a feature still under evaluation but useful for organizing multiple ideas that emerge throughout the day.
  • Draft Generation (LLM): The transcribed notes are then processed via a draft command, which transforms them into an article draft. Initially, I relied on the default prompt generated by Gemini, but the resulting style didn’t fully align with my writing voice. I subsequently refined the prompt and parameters to guide the LLM to produce text more in line with my pragmatic, engineering-oriented tone, while still maintaining its ability to structure thoughts coherently.
  • Editorial Workflow (Sveltia CMS): The system automatically generates Hugo-compatible Markdown, uploading it as a draft. The crucial review phase doesn’t involve direct code modification but occurs through Sveltia’s administrative interface. This Git-based CMS provides an inline editor within its dashboard, allowing me to refine the text, correct inaccuracies, or improve fluidity without ever directly interacting with the Git repository. This drastically reduces friction and accelerates the revision cycle.
  • Multilingual Support: Once the Italian version is finalized (as I still review Gemini’s output), my Telegram bot, also part of my self-hosted ecosystem, is instructed to adapt the content into English. This step is crucial for maintaining a bilingual site, with English as the primary language, ensuring broader accessibility without manual translation.

Optimized Deployment with Cloudflare Pages
#

After the final review, again from the Sveltia interface, the article is moved to ‘published’ status. This automatically triggers Hugo’s build pipeline. Initially, I had configured GitHub Actions for this purpose. However, for privacy reasons concerning intermediate commits (though I doubt anyone cares, I’m just paranoid), I migrated the entire deployment process to Cloudflare Pages. Cloudflare not only handles the static site’s build and hosting but also offers additional benefits like integrated DDoS protection and automatic SSL certificate management (not a sponsor! ), reducing operational overhead and enhancing security.

Conclusions and Future Prospects
#

This integrated workflow allows me to overcome the publishing barrier, transforming raw ideas into structured, multilingual articles with minimal friction. The result is a more efficient and sustainable content creation process. In the future, I plan to open-source this system, providing a foundation for anyone looking to implement a similar workflow for their own content production.

Orazio Scicolone
Author
Orazio Scicolone
SRE Engineer with a background in Computer Engineering. Passionate about building things. Currently based in Sophia Antipolis, France.