add-event
Scaffolds new SydJS event files in src/content/events/ by parsing meetup.com data to generate standardized Markdoc configuration and event content.
Introduction
This skill acts as an automated content scaffolding tool for the SydJS web platform. It is designed to assist organizers in creating new meetup event pages by extracting event metadata directly from meetup.com URLs. By standardizing the creation process, it ensures that all events follow the correct file naming convention (YYYY-MM-DD-kebab-event-title.mdoc) and adhere to the project's structural requirements within the src/content/events/ directory.
The tool is primarily intended for administrative users or developers managing the SydJS website content. It handles the mapping of raw event details—such as title, date, venue, and descriptions—into the specific Markdoc frontmatter structure required by the Keystatic CMS implementation. It enforces consistency across the site's event history while reducing manual data entry errors.
-
Automatically fetches metadata from meetup.com event URLs, including event name, date, venue, and descriptions.
-
Generates formatted .mdoc files with predefined boilerplate fields like featuredMedia, startTime, and endTime.
-
Enforces strict file naming patterns to ensure Next.js routing and collection sorting remain consistent.
-
Provides fallback defaults for venue names and addresses (e.g., Atlassian Headquarters) if specific location data is missing.
-
Integrates directly with the repository's collection structure, ensuring that the generated output is immediately compatible with the Keystatic data schema.
-
Input: A valid meetup.com event URL; optional overrides for time, venue, or address if defaults are not applicable.
-
Output: A fully populated Markdoc file saved at src/content/events/ with all frontmatter parameters configured.
-
If a URL cannot be fetched or is not provided, the skill will prompt the user to manually supply the event title, date, location, and description.
-
The featuredMedia field is initialized to { discriminant: none } by default and is intended to be configured manually post-creation.
-
Talks and speaker lists are initialized as empty arrays, acknowledging that content updates are performed in a secondary step.
-
Always ensure you are on the correct branch and have write access to the src/content/events/ directory before executing.
Repository Stats
- Stars
- 12
- Forks
- 6
- Open Issues
- 1
- Language
- TypeScript
- Default Branch
- main
- Sync Status
- Idle
- Last Synced
- May 3, 2026, 04:15 PM