DEV Community

Roberto Luna
Roberto Luna

Posted on

TL;DR

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 problem was that Dev.to no longer required the BLUESKY_IDENTIFIER secret, which caused issues with the current implementation. Additionally, the Groq models llama-3.3-70b-versatile were deprecated and needed to be replaced.

What I Tried First

Initially, I tried to keep the BLUESKY_IDENTIFIER secret required, but this caused errors when deploying to Dev.to. I also attempted to use the deprecated Groq models, but this resulted in API errors.

The Implementation

To fix these issues, I made the following changes:

Make Bluesky Secrets Optional

In src/main.py, I updated the main function to make the BLUESKY_IDENTIFIER and BLUESKY_PASSWORD secrets optional:

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")

    if bsky_id and bsky_pass:
        # Use Bluesky secrets if available
        pass
    else:
        # Handle case where Bluesky secrets are not available
        pass
Enter fullscreen mode Exit fullscreen mode

Update Groq Models

In config/settings.yml, I updated the ai section 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
Enter fullscreen mode Exit fullscreen mode

In src/content_generator.py, I updated the model references:

# Models — use powerful model for long-form, fast model for short-form
MODEL_LONGFORM = "qwen/qwen3.6-27b"
MODEL_SHORTFORM = "openai/gpt-oss-20b"
Enter fullscreen mode Exit fullscreen mode

Add Dev.to Platform Flag

I also added a devto platform flag to config/settings.yml to enable platform-specific configurations:

content:
  # ...
  platforms:
    devto:
      # Dev.to specific settings
      pass
Enter fullscreen mode Exit fullscreen mode

Key Takeaway

The key takeaway from this experience is to ensure that your content automation pipeline is flexible and adaptable to changing platform requirements. By making secrets optional and updating to new models, you can avoid errors and ensure smooth content generation.

What's Next

Next, I plan to integrate more platforms into the content automation pipeline and explore using other AI models for different content types. Stay tuned for more updates from the #vibecoding and #buildinpublic journey.

— Roberto Luna Osorio – Full Stack Developer & Project Lead
Playa del Carmen, México

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

Top comments (0)