AI-powered webpage generator to discover and track tech events with CFP opportunities for the TSD organization.
See it live on: https://redhat-appstudio.github.io/cfp-radar/
Install uv on your Fedora or macOS via brew or via curl:
curl -LsSf https://astral.sh/uv/install.sh | sh# Install dependencies
uv sync
# Set required environment variables for Claude on Vertex AI
export GOOGLE_CLOUD_PROJECT="your-project"
# Or: export ANTHROPIC_VERTEX_PROJECT_ID="your-project"
export GOOGLE_CLOUD_LOCATION="global"
export AI_MODEL="claude-sonnet-4-6"
gcloud auth application-default loginYou need the roles/aiplatform.user role on the GCP project. Claude web search also requires the constraints/vertexai.allowedPartnerModelFeatures org policy to allow web search. Collection works without GCP credentials when using --no-ai.
See Claude on Vertex AI and Vertex AI pricing for details.
Set export SLACK_WEBHOOK_URL="your-webhook-url" if you plan to use Slack notifications.
Cities to track are configured in config.yaml in the project root:
cities:
- city: Paris
country: France
- city: Bangalore
country: India
- city: Pune
country: India
- city: Tel Aviv
country: Israel
- city: Raleigh
country: USA
- city: Brno
country: Czech RepublicYou can override the default config file using the --config argument:
uv run cfp-radar collect --config my-cities.yaml
uv run cfp-radar list --config my-cities.yamlIf config.yaml is not found, the tool falls back to built-in defaults.
# Collect events and generate HTML (default: data/index.html)
uv run cfp-radar collect
# Collect events to custom output file
uv run cfp-radar collect ./output/events.html
# Collect without AI-powered search (faster)
uv run cfp-radar collect --no-ai
# List collected events
uv run cfp-radar list
# List events filtered by city
uv run cfp-radar list --city Paris
# List only events with open CFP
uv run cfp-radar list --cfp
# Send Slack notifications for upcoming CFP deadlines
uv run cfp-radar notifyThe collect command generates a static HTML file at data/index.html by default. Open this file in a browser to view events.
The abstracts/ directory contains a shared bank of speaker-neutral, reusable talk proposals. Anyone on the team can pick one up, adapt it to a specific event, and submit.
Each abstract includes:
- YAML frontmatter (tags, formats, difficulty, target audience)
- A 200-300 word abstract text
- Talk outline with timing for multiple formats (lightning, talk, deep-dive, workshop)
- Key takeaways
- Adaptation notes — hints on how to tailor per event type
Copy abstracts/_template.md, fill it in, open a PR.
| Title | Tags | Formats | Status |
|---|---|---|---|
| From SLSA Level 2 to Level 3: The Hard Parts | supply-chain, slsa, tekton-chains | talk, deep-dive | ready |
| Signing Everything: Making Supply Chain Security Invisible | supply-chain, DX, sigstore | talk, lightning | ready |
| Building Golden Paths with Tekton: CI/CD as a Platform Service | platform-engineering, multi-tenancy | talk, deep-dive, workshop | ready |
| CI/CD for AI: When Your Artifact Is a Model, Not a Binary | ai, mlops, eu-ai-act | talk, deep-dive | ready |
| AI-Assisted CI/CD: Using LLMs to Debug and Generate Pipelines | ai, llm, developer-experience | talk, lightning | draft |
| Death by a Thousand Reconciles — Performance at Scale | performance, kubernetes-operators, observability | talk, deep-dive | ready |
| 12 CVEs and Counting — CNCF Project Security Lifecycle | security, cve, vulnerability-management | talk, deep-dive | ready |
| Your Pipeline Has the Keys — A Live Security Walkthrough | security, supply-chain, slsa, demo | talk | ready |
| Eating Our Own Dogfood — A Workflow Engine's Automation Story | open-source, ci-cd, dogfooding | talk | ready |
| The PVC Must Die — Rethinking Data Sharing with Trusted Artifacts | architecture, kubernetes, storage, supply-chain | talk | ready |
| From One Cluster to Many — Tekton + Kueue Multi-Cluster Pipelines | multi-cluster, kueue, scheduling | talk, deep-dive | ready |
| Beyond Pipeline Runs — A Supply Chain Ledger with ORAS | supply-chain, slsa, oras, oci | talk, deep-dive | ready |
- Fediverse - <@chmouel@chmouel.com>
- Twitter - <@chmouel>
- Blog - <https://blog.chmouel.com>