Automating Content Generation with Metadata-driven Approach
TL;DR: I implemented a metadata-driven approach to automate content generation for multiple platforms, including Bluesky, Medium, and Substack. This involved updating the metadata JSON file to reflect changes in content automation.
As a full-stack developer working on the content-automation repository, I recently focused on enhancing the automation of content generation across various platforms. This technical deep-dive explains the changes I made, the problems I encountered, and the solutions I implemented.
The Problem
The initial problem was that the content automation process relied heavily on manual updates to various files, including bluesky_en.json, bluesky_es.json, medium_en.md, medium_es.md, substack_en.md, and substack_es.md. This manual process was not only time-consuming but also prone to errors. The goal was to automate the generation of content for these platforms using a centralized metadata approach.
What I Tried First
My first approach was to create a script that would manually parse and update each file based on predefined templates. However, this approach quickly became cumbersome as the number of platforms and languages grew. I realized the need for a more scalable solution that could handle multiple platforms and languages efficiently.
The Implementation
The solution involved creating a centralized metadata.json file that would serve as the single source of truth for all content automation tasks. This file contains metadata about the content, such as titles, descriptions, and publication status.
// metadata.json
{
"posts": [
{
"id": 1,
"title": {
"en": "Automating Content Generation",
"es": "Automatizando la Generación de Contenido"
},
"description": {
"en": "A technical deep-dive into automating content generation",
"es": "Un análisis técnico profundo sobre la automatización de la generación de contenido"
},
"published": true
}
]
}
I then wrote a script in JavaScript that would read this metadata file and generate the necessary content files for each platform.
// generateContent.js
const fs = require('fs');
const metadata = require('./metadata.json');
metadata.posts.forEach((post) => {
const blueskyPostEn = {
type: 'progress',
text: post.title.en,
};
const blueskyPostEs = {
type: 'avance',
text: post.title.es,
};
fs.writeFileSync(`bluesky_en.json`, JSON.stringify([blueskyPostEn], null, 2));
fs.writeFileSync(`bluesky_es.json`, JSON.stringify([blueskyPostEs], null, 2));
});
Key Takeaway
The key takeaway from this experience is the importance of a centralized metadata approach for automating content generation across multiple platforms. By decoupling the content metadata from the specific platform implementations, we can easily scale our content automation efforts and reduce the complexity of maintaining multiple content sources.
What's Next
In the future, I plan to expand this automation to include more platforms, such as Twitter and LinkedIn, and to integrate this process with our CI/CD pipeline to enable continuous content generation and publication.
vibecoding #buildinpublic #contentautomation #metadata-drivenapproach
Part of my Build in Public series — sharing the real process of building SaaS projects from Playa del Carmen, México.
Repo: zaerohell/content-automation · 2026-07-14
#playadev #buildinpublic
Top comments (0)