Skip to content
cccskills
FreePublished on GitHub

new-event

Use when a city is setting up its devopsdays event for a new year and needs its data file, pages, redirect, and asset directories created from scratch.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md5.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Set up a new event

Creates the four things a new event needs: a data file, a set of pages, a vanity redirect, and directories for images.

Gather

  • Year (<YYYY>) and city as it should be displayed (Boston, Ciudad Autónoma de Buenos Aires)
  • Whether the city has run an event before — that changes the redirect step
  • Social handles, if known. All optional and all editable later

The slug

<city-slug> is the city lowercased, accents folded, non-letters dropped, spaces to hyphens: São Paulo → sao-paulo, Ciudad Autónoma de Buenos Aires → ciudad-autonoma-de-buenos-aires.

The event is then referred to two different ways, and both are used:

  • <YYYY>/<city-slug> for the data directory
  • <YYYY>-<city-slug> for everything else (the "event slug")

1. Check it does not already exist

ls -d data/events/<YYYY>/<city-slug> content/events/<YYYY>-<city-slug> 2>/dev/null

If either exists, stop — this event is already set up.

2. Data file

mkdir -p data/events/<YYYY>/<city-slug>
cp utilities/examples/data/events/main.yml data/events/<YYYY>/<city-slug>/main.yml

Then replace the placeholders throughout the copied file:

PlaceholderReplace withExample
yyyy-citythe event slug2027-boston
YYYYthe year2027
Citythe display cityBoston
yourlocationthe venue, or the city for nowBoston
devopsdayscityabbrthe event's social handledevopsdaysbos
city_emailthe city slugboston

Leave startdate, enddate, and the CFP and registration dates blank until they are real. An event with no startdate shows on the site as upcoming-date-TBD, which is correct.

Two things that will break the build later if you get them wrong:

  • name: must be the event slug, in quotes: name: "2027-boston". It is the only field with a hard error guard in the theme.
  • If you set startdate, you must also set enddate. Several templates read enddate unguarded inside an if startdate block.

3. Pages

cp -r utilities/examples/content/events/yyyy-city content/events/<YYYY>-<city-slug>

That gives nine pages: welcome.md, contact.md, conduct.md, conduct-fr.md, conduct-pt-br.md, location.md, propose.md, registration.md, sponsor.md.

In every one of them, replace CITY with the display city and YYYY with the year — including in the Description lines, which are used for social sharing and SEO.

In welcome.md, also replace yyyy-city in the aliases line with the event slug.

welcome.md ships with most of its body commented out — the logo, location, register, propose, program, speakers and Twitter blocks. Uncomment each as it becomes real. Do not uncomment the program and speakers blocks before those pages exist.

Delete conduct-fr.md and conduct-pt-br.md if the event does not need them.

4. Redirect

static/_redirects gives every city a vanity URL: devopsdays.org/<city-slug> points at the current year's event.

If the city has run before, find its existing line and change only the year, keeping the line where it is:

/boston/*		/events/2027-boston/:splat		302

If it is a new city, append a new line at the end of the file. Netlify matches first-to-last, so any one-off path redirect for that city must stay above its wildcard line.

5. Asset directories

mkdir -p assets/events/<YYYY>-<city-slug>/speakers
mkdir -p assets/events/<YYYY>-<city-slug>/organizers
mkdir -p static/events/<YYYY>-<city-slug>/sharing

Git does not track empty directories, so these only land in the PR once they contain something. Create them now so later steps do not fail.

Images that should follow when they exist:

FileRequirements
assets/events/<slug>/logo.pngMust be named exactly logo.png. Used on the event page and the site front page
assets/events/<slug>/logo-square.pngOptional. Overrides the auto-crop on the front page. PNG, at least 300×300, ideally 600×600
static/events/<slug>/sharing/sharing.jpgSocial card. At least 1200×630, ratio 1.91:1. Then set sharing_image: "sharing.jpg" in main.yml

6. Organizers, and what comes next

The generated main.yml has placeholder organizers (John Doe, Jane Smith, Sally Fields). Replace them with the real team before opening the PR — see .claude/skills/add-organizer/SKILL.md, and note the required email to info@devopsdays.org.

Trim nav_elements: to the pages that actually exist. A new event normally starts with sponsor, contact and conduct, and adds propose, location, registration, program and speakers as they become real.

7. Verify

  • name: in main.yml matches the event slug exactly
  • No YYYY, CITY, City, yyyy-city or devopsdayscityabbr placeholders remain:
    grep -rnE 'YYYY|yyyy-city|devopsdayscityabbr|city_email|yourlocation' \
      data/events/<YYYY>/<city-slug>/ content/events/<YYYY>-<city-slug>/
    
  • The placeholder organizers are gone
  • static/_redirects has exactly one wildcard line for this city
  • Preview /events/<YYYY>-<city-slug>/

8. Submit

Follow .claude/skills/submit-changes/SKILL.md.

PR title: [BOS-2027] Set up Boston 2027.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use when adding, removing, or updating a local organizer on a devopsdays event team - covers the team_members entry, the photo, and the mandatory email to info@devopsdays.org that gates the merge.

The English summary is being prepared. Showing the original description.

devopsdays/devopsdays-web193Updated Oct 16, 2026

Use when a devopsdays event has confirmed a speaker and their talk, workshop, ignite, or keynote needs to appear on the event site - covers the speaker bio page, the talk page, the headshot, and multi-speaker talks.

The English summary is being prepared. Showing the original description.

devopsdays/devopsdays-web193Updated Oct 16, 2026

Use when a devopsdays event has sold or confirmed a sponsorship and the sponsor needs to appear on the event's site - covers both sponsors already in the shared directory and brand-new ones needing a logo and data file.

The English summary is being prepared. Showing the original description.

devopsdays/devopsdays-web193Updated Oct 16, 2026

Use when a devopsdays event has finished and the slides or video recordings need to be attached to the talk pages, or when a speaker sends a link to their deck afterwards.

The English summary is being prepared. Showing the original description.

devopsdays/devopsdays-web193Updated Oct 16, 2026

Use when building or editing a devopsdays event's schedule - adding talks, ignites, open spaces, breaks, and evening events to the program, or moving time slots around.

The English summary is being prepared. Showing the original description.

devopsdays/devopsdays-web193Updated Oct 16, 2026

Use when a devopsdays event that is already listed on the site has to be cancelled or postponed, and its pages need to stop advertising dates, registration, and sponsorship.

The English summary is being prepared. Showing the original description.

devopsdays/devopsdays-web193Updated Oct 16, 2026

See all skills by devopsdays

Report a problem with this skill