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 automation.
The Problem
The initial issue was that Dev.to no longer required the BLUESKY_IDENTIFIER secret, which caused errors when trying to automate content posting. Additionally, the Groq models used for content generation were deprecated and needed to be updated.
What I Tried First
My first approach was to remove the BLUESKY_IDENTIFIER requirement from the code. However, I realized that I needed to make the entire Bluesky configuration optional based on the platform.
The Implementation
Making Bluesky Secrets Optional
I modified the src/main.py file to make the Bluesky secrets optional:
def main() -> None:
# ...
gh_token = _require_env("GH_TOKEN")
openai_key = _require_env("GROQ_API_KEY")
# Removed the requirement for BLUESKY_IDENTIFIER
bsky_id = os.getenv("BLUESKY_IDENTIFIER")
bsky_pass = os.getenv("BLUESKY_PASSWORD")
I also updated the code to handle cases where the Bluesky secrets are not provided:
if bsky_id and bsky_pass:
# Use Bluesky credentials if available
pass
else:
# Handle the case where Bluesky credentials are not provided
pass
Replacing Deprecated Groq Models
I updated the config/settings.yml file to use the new models:
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
I also modified the src/content_generator.py file to use the new models:
# 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 added a platform flag to differentiate between Dev.to and other platforms:
# ...
if platform == "devto":
# Use Dev.to specific settings
pass
else:
# Use default settings
pass
Key Takeaway
The key takeaway from this experience is that making secrets optional and using platform-specific settings can greatly improve the flexibility and security of content automation scripts.
What's Next
Next, I plan to add support for more platforms and improve the error handling for cases where secrets are not provided. I will also explore using more advanced models for content generation.
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







