Introduction
This blog post explores an experimental workflow using Claude Opus 5 and Claude Code CLI to automate the generation of SVG visual assets and social media graphics for the Fedora Design Team. By leveraging automated SVG creation from existing brand-compliant assets, the team aims to efficiently address urgent, last-minute design requests without interrupting scheduled sprint deliverables.
Rethinking how we handle requests
The Fedora Design Team accepts requests through our ticket queue. Over the last year, we’ve embraced an agile way of working by implementing three-week sprint cycles. This adds an important step to our process; we only review incoming tickets every three weeks before we plan our next sprint. This allows us to focus solely on the tasks planned without getting sidetracked by incoming requests, and empowers us to decline last-minute requests that may derail our pre-planned work.

A lot of our last minute, urgent requests tend to be related to an event. It usually pertains to social media graphics for advertising. In the wide array of steps of organising an event, our function as a design team is small in that whole process. It’s easy for designers to know how important our step in the process is since we are the experts that do this every day. We know how long graphics take to make, but to someone organising an event, our function can be small and perhaps one of the last steps they consider.
We previously focused our efforts on improving on the parts of our process that primarily affect the team: time required to effectively complete the planning and creation stages. While this benefits the team’s ability to plan and deliver quality work, it can create friction for requesters with genuine last-minute needs. Currently, these urgent requests result in one of two outcomes: denial of service or a scramble to produce output. Both leave someone frustrated.

But what if we treated last-minute requests as a separate service? Instead of viewing them within the scope of our current planning process, we could handle them through a different workflow designed for speed rather than deep iteration. Conversations with my manager led us to explore whether AI could address this, particularly at the Design Creation phase.
If we were to use AI to create assets, we needed it to produce SVGs. When we thought of image generation in the past, we disregarded it as an option as we thought it would only output PNGs or JPGs. Due to the nature of how the team stores our assets, we need SVG source files. We are an open source team and work on the principle that anything we create can be used and edited by anyone in the future. Therefore, we needed files that could be opened and edited in Inkscape.
There are numerous other benefits to having an SVG file. It is useful for print as it allows us to properly convert the file to CMYK. Also, if the AI is close enough to the desired output, we can then take the file into Inkscape and finish it ourselves.
I researched and tested a potential workflow using Claude Code CLI and the Claude Opus 5 model. I acknowledge that Claude Code CLI is a paid service and I only have access to it through my job. I believe you can use the free version of Claude through the web UI, though the capabilities are more limited.
Workflow
This section goes through the workflow of using Claude Opus 5 to assist in creating graphics for Fedora’s social media. I won’t be going through the steps to install Claude Code CLI, but you can find the details here.
Directory Set Up
- Create and open your working directory (e.g. /claude-fedora-design).
- Set up the folder structure with assets/, CLAUDE.md, and outputs/:
├── assets├── CLAUDE.md└── outputs
Refer to my sample setup on GitHub for reference.
assets/
The assets folder is where I stored a copy of all the Fedora Design assets we keep on our forge. It includes official logos for Fedora and teams, mascots, previous event designs, etc. It makes pulling relevant assets easier when prompting for a new design to be made.
It is important to make sure the file names are descriptive. For example, I updated the mascot file names to reflect the emotion or action represented. This helps Claude choose which SVG to pick, depending on what the graphic is for. You don’t want it choosing Beefy sleeping for a graphic promoting an event.

CLAUDE.md
The CLAUDE.md file serves as a set of instructions for all the design work you will ask Claude to do. It acts as a rulebook that it will automatically read for every request. Key things to include:
- Colour palette
- Typography
- e.g. Montserrat for Headings, Open-sans for body text
- Dimensions
- Dimension requirements for different social media platforms
- Design principles
- Contrast requirements (don’t put dark text on a dark background)
- Composition rules
- Automatic branding for social media posts
- File management
- Automatic output to ./outputs/ directory
You can ask Claude to generate this for itself and iterate on it as you work. Every time I faced an issue and needed to add another parameter, it was able to edit the markdown file and add it in. The CLAUDE.md file I used for this can be found on my GitHub here.
outputs/
This is where any outputs will be saved.
Creating the SVGs
Once you have the directory set up as above, all you need to do is run Claude and send it a prompt. The initial prompt doesn’t have to be too descriptive since it already has all the brand guidelines and assets.
Create an Instagram post promoting the F46 FESCo election results. Include a mascot that fits best.
This is the first iteration it produced:

Claude generates raw SVG code. It builds the SVG from scratch: setting up backgrounds using brand colors, importing Montserrat via Google Fonts, positioning text and accent elements, and in-lining mascot vector data directly into the file. From here we can iterate, either with Claude, or manually using Inkscape.

This example took ~4 minutes to generate.
I got Claude to make some adjustments, like switching the mascot from Colur, since he’s associated with Flock, and removing some of the text. I edited the confetti manually in Inkscape.
Here is the final version that is ready to post:

You can find the SVG image here if you would like to inspect it in your own editor.
Case Study: Fedora Linux 45 Release Party
I tested this workflow during the preparation for the Fedora Linux 45 Release Party. The release party promotions are ideal candidates for this automation as each release features the new wallpaper as its core visual theme. While creating variations across multiple formats is conceptually simple, executing them manually can be repetitive and time-consuming.


Assets Required
- Social Media Promotional Graphics
- Fedora Magazine banner
- Mastodon graphic
- LinkedIn graphic
- Instagram post graphic
- Instagram story graphic
- Video Assets
- Individual video thumbnails for each speaker/presentation
- Video thumbnail for livestream
- Stream Background
- F45 Wallpaper background fitted for Restream
Workflow Followed
Set up
Setup was straightforward. Assets from prior release parties were already stored in the assets/ directory, so I only needed to add the new F45 SVG wallpaper asset. The SVG for the wallpaper is quite a large and complex file so it increased the token context size during generations.
Prompt
Rather than generating for every platform simultaneously, I focused on perfecting it for a single layout first.
Create a simple social media graphic for the Fedora 45 Release Party, using the F45 wallpaper as the background. The event takes place on October 30, 2026.
Refinement
Claude produced a strong initial layout, though some fine-tuning was required to meet the design team’s standards. Key adjustments included:
Contrast & Legibility: the initial iteration placed dark blue text over the dark gradient background. The fix was switching to pure white text with proper drop shadow to ensure maximum readability.
Composition & Spacing: Margins were adjusted to prevent text crowding canvas edges, and key elements like the Fedora logo were scaled up for clear visibility.
The final graphic:

With the primary Mastodon layout finalised, generating variations for all remaining platforms took minimal iteration. After minor manual tweaks in Inkscape, the entire set of production-ready assets were complete and published. You can view them all here.
Conclusion
When a requester is organising an event, designing a graphic is just one step in their broader journey. Where our design step falls in the wider order of that journey is something to address more in depth in the future. However, AI generation can help speed up the Design Creation phase by creating assets quickly.
By establishing an automated workflow anchored by existing brand-compliant assets and reusable project guidelines, the design team can instantly generate editable SVG source files. This hybrid approach delivers rapid execution for requesters and complete editorial control in Inkscape for designers.
While AI generation doesn’t replace high-touch design iteration for major initiatives, integrating it for routine graphics frees up time and keeps the design team focused on high-impact deliverables.
