TL;DR
I updated the content-automation repository to make Bluesky secrets optional by platform and replaced deprecated Groq models with qwen/qwen3.6-27b and openai/gpt-oss-20b. These changes enable more flexible and secure content publishing.
The Problem
The content-automation project faced two main issues:
-
Bluesky Identifier Requirement: The
BLUESKY_IDENTIFIERwas previously required, but Dev.to no longer needs it, causing errors when publishing. -
Deprecated Groq Models: The models
llama-3.3-70b-versatilewere deprecated, affecting long-form content generation.
What I Tried First
Initially, I attempted to address these issues by:
- Removing the
BLUESKY_IDENTIFIERcheck but encountered errors due to missing platform-specific configurations. - Replacing the deprecated models with temporary fixes, which didn't resolve the generation issues.
The Implementation
Making Bluesky Secrets Optional
In src/main.py, I modified the environment variable checks to make BLUESKY_IDENTIFIER and BLUESKY_PASSWORD optional based on the platform:
def main() -> None:
gh_token = _require_env("GH_TOKEN")
openai_key = _require_env("GROQ_API_KEY")
bsky_id = os.getenv("BLUESKY_IDENTIFIER")
bsky_pass = os.getenv("BLUESKY_PASSWORD")
# ... rest of the function
Updating Groq Models
In config/settings.yml, I updated the AI model configurations:
ai:
# Long-form content (Medium, Dev.to, Substack weekly)
model_longform: qwen/qwen3.6-27b
# Short-form content (Bluesky, Twitter)
model_shortform: openai/gpt-oss-20b
In src/content_generator.py, I reflected these changes:
# Models β use powerful model for long-form, fast model for short-form
MODEL_LONGFORM = "qwen/qwen3.6-27b"
MODEL_SHORTFORM = "openai/gpt-oss-20b"
Adding Dev.to Platform Flag
I introduced a platform flag to handle Dev.to specifics:
def generate_content(platform: str, **kwargs):
if platform == "devto":
# Dev.to specific logic
pass
# ... other platforms
Key Takeaway
When updating dependencies and configurations, ensure platform-specific requirements are met and handle optional dependencies gracefully. This prevents errors and enhances flexibility.
What's Next
Next, I will focus on implementing automated testing for these changes to ensure the content generation works flawlessly across all platforms.
vibecoding #buildinpublic #AI #Productivity #Cybersecurity
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-06-23
#playadev #buildinpublic







