Career Politics

Squirrel
Squirrel

Posted on

Weekly Digest: Revamped Org Pages, Admin Bots, & AdSense

This week was packed with significant new features, major performance tuning, and architectural improvements. The highlight is a complete revamp of organisation pages, alongside new tools for administrators and foundational work for platform monetisation.

πŸš€ Major New Features

Revamped Organisation Pages
A major update to organisation pages has landed, providing a much richer and more customizable experience. This extensive overhaul includes a new README editor with Liquid tag support, dedicated fields for social media links, a redesigned settings page, and a new header call-to-action button. This was a significant effort to improve community engagement and information sharing for organisations on the platform.

Admin-Managed Community Bots & Automations
Admins now have the power to enable and manage community bots and automations directly, without the need for a subforum. This change simplifies community management and opens up new possibilities for automated engagement and moderation.

Enable admin-managed community bots and automations without subforem #81

Motivation

  • Allow site admins to create and manage community bots and scheduled automations for the main community (no subforem) from the admin UI so hosts that only use the main community can create bots and schedule automations.

Description

  • Add top-level admin routes for community_bots with nested scheduled_automations so bot management is available at /admin/customization/community_bots/... (in config/routes/admin.rb).
  • Update controllers to support both subforem-scoped and main-community flows by inferring context, centralizing scope/path helpers, and updating redirects (Admin::CommunityBotsController, Admin::ScheduledAutomationsController).
  • Make service/model/policy changes so bots may be created without a subforem by allowing subforem_id: nil in CommunityBots::CreateBot and falling back to Settings::General.app_domain for email generation, add User.community_bots_for_main_community scope, and guard deletion/authorization when onboarding_subforem_id is blank (CommunityBots::DeleteBot, CommunityBotPolicy, User model).
  • Update admin views so links, labels and form targets work for both subforem and main-community contexts, and add request specs to cover the new top-level routes (spec/requests/admin/community_bots_spec.rb and spec/requests/admin/scheduled_automations_controller_spec.rb).

Testing

  • Added request specs that exercise top-level admin_community_bots and admin_community_bot_scheduled_automations flows and assert creation, deletion, redirects and automation behavior (spec/requests/admin/community_bots_spec.rb and spec/requests/admin/scheduled_automations_controller_spec.rb).
  • Attempted to run the new specs with bundle exec rspec spec/requests/admin/community_bots_spec.rb spec/requests/admin/scheduled_automations_controller_spec.rb and bin/rspec ..., but test execution failed in this environment due to missing bundle/Ruby runtime, so automated tests were not executed here.
  • Views/routes/controllers were reviewed and smoke-checked in the patch; CI should run the added request specs in a Ruby-enabled environment to confirm full behavior.

Codex Task

Laying the Groundwork for Monetisation

In a move that hints at long-term sustainability, the platform has added Google AdSense integration to its codebase.

πŸ”— Related PR: https://github.com/careerpolitics/careerpolitics-platform/pull/79

While not fully rolled out yet, this is a foundational step toward monetisation.

Why this matters:
Many platforms struggle to balance growth with revenue. By integrating AdSense early:

  • The platform prepares for scalable income streams
  • Communities can remain free while being financially supported
  • Developers get insight into how monetisation is built into modern platforms

It’s a subtle but important shift toward building products that can sustain themselves.

Google AdSense Integration
To support the platform's growth, configuration for a Google AdSense account has been added to the codebase. This is a foundational step towards integrating advertising and creating a sustainable revenue model.

FEAT: Add google adsense account details #79

What type of PR is this? (check all applicable)

  • [ ] Refactor
  • [ ] Feature
  • [ ] Bug Fix
  • [ ] Optimization
  • [ ] Documentation Update

Description

Related Tickets & Documents

  • Related Issue #
  • Closes #

QA Instructions, Screenshots, Recordings

Please replace this line with instructions on how to test your changes, a note on the devices and browsers this has been tested on, as well as any relevant images for UI changes.

UI accessibility checklist

If your PR includes UI changes, please utilize this checklist:

  • [ ] Semantic HTML implemented?
  • [ ] Keyboard operability supported?
  • [ ] Checked with axe DevTools and addressed Critical and Serious issues?
  • [ ] Color contrast tested?

For more info, check out the Forem Accessibility Docs.

Added/updated tests?

We encourage you to keep the code coverage percentage at 80% and above.

  • [ ] Yes
  • [ ] No, and this is why: please replace this line with details on why tests have not been included
  • [ ] I need help with writing tests

[optional] Are there any post deployment tasks we need to perform?

[optional] What gif best describes this PR or how it makes you feel?

alt_text

πŸ› οΈ Performance, API, and UI Improvements

In addition to major features, the team merged numerous improvements focused on performance, stability, and the user experience.

  • Database Performance: A series of commits were merged to improve database health by automatically deleting old user notifications. This prevents table bloat and ensures the system remains responsive as it scales. The data retention policy for notifications was also tuned.
  • API Architecture: The API for responses has been refactored, splitting them into separate endpoints for each response type. This improves API clarity and maintainability. Additionally, new internal endpoints for surveys were added.
  • Security: To enhance security, sessions for unauthenticated users will now expire more quickly.
  • UI & Build Fixes: Several smaller user-facing bugs were addressed, including a mobile footer cutoff issue and styling mismatches. A fix was also added to the Containerfile to ensure JavaScript assets are built correctly during deployment.

πŸ”„ Housekeeping

Multiple merges from the develop and upstream branches were completed throughout the week to keep the main branch synchronised with the latest fixes and dependency updates, ensuring a stable foundation for new feature development.


Additional Context:
Write a high-quality, human-like article summarising the latest updates from this GitHub repository.

The article should:

  • Start with a strong hook explaining why these updates matter to developers or job seekers
  • Avoid robotic or generic phrasing
  • Highlight key commits, pull requests, and feature updates with clear explanations
  • Add context: why this update is important in real-world usage or careers
  • Use simple, readable language (avoid overly technical jargon unless needed)
  • Structure the article with proper headings and short paragraphs

SEO Requirements:

  • Include a compelling title
  • Naturally include keywords like "GitHub updates", "developer trends",, or "latest changes"
  • Avoid keyword stuffing
  • Make it engaging and informative

Tone:

  • Should feel like a tech journalist, not AI-generated content
  • Add slight opinions or interpretations where useful

Output:

  • Clean markdown format
  • No unnecessary disclaimers

Top comments (0)