Reviewed-on: #1
NERDER.LAND - Event Management Documentation
A Hugo static site for listing nerdy events in your local community with a cyberpunk/console theme.
Site Overview
- Framework: Hugo v0.147.7+ static site generator
- Theme: Custom cyberpunk/console theme (no external dependencies)
- Content: Event listings with detailed individual pages
- Styling: Pure CSS with cyberpunk aesthetics (no JavaScript)
Prerequisites
- Go 1.24.3+ (managed via gvm)
- Hugo v0.147.7+ (installed via Go)
Initial Setup
# Set up Go environment
source ~/.gvm/scripts/gvm
gvm use go1.24.3
# Install Hugo
go install -tags extended github.com/gohugoio/hugo@latest
# Verify installation
hugo version
Site Structure
nerder.land/
├── content/
│ ├── events/ # Event markdown files
│ └── _index.md # Homepage content
├── layouts/
│ ├── _partials/ # Header, footer components
│ ├── events/ # Event page templates
│ ├── baseof.html # Base template
│ ├── home.html # Homepage template
│ └── single.html # Default single page template
├── static/
│ └── css/
│ └── style.css # Cyberpunk theme styles
├── public/ # Generated site (auto-created)
└── hugo.toml # Site configuration
Managing Events
Creating a New Event
- Generate the event file:
source ~/.gvm/scripts/gvm && gvm use go1.24.3
hugo new content events/your-event-name.md
- Edit the event file with proper front matter:
+++
title = 'Your Event Title'
date = '2025-07-15T19:00:00-06:00' # Start date/time (with timezone)
end_date = '2025-07-15T23:00:00-06:00' # End date/time (optional)
location = 'Venue Name, Address' # Event location
organizer = 'Organization Name' # Who's organizing
capacity = 50 # Max attendees (optional)
cost = 'Free' # or '$25' # Event cost
registration_url = 'https://...' # Registration link (optional)
contact = 'email@domain.com' # Contact info
draft = false # Set to false to publish
+++
Brief event description that appears on homepage. Keep this to 1-2 sentences that give a clear overview of what the event is about.
<!--more-->
## Full Event Details
Add detailed information here including:
- Event description
- What to expect
- Requirements
- Schedule
- Any other relevant information
Event Front Matter Fields
Field | Required | Description |
---|---|---|
title |
Yes | Event name/title |
date |
Yes | Start date and time (ISO format) |
end_date |
No | End date and time |
location |
No | Venue/address |
organizer |
No | Who's running the event |
capacity |
No | Maximum attendees |
cost |
No | Event price (e.g., "Free", "$25") |
registration_url |
No | Link to registration page |
contact |
No | Contact email/info |
draft |
Yes | Set to false to publish |
Content Structure
Summary Section (before <!--more-->
):
- Brief 1-2 sentence description
- Appears on homepage event listing
- Should give clear overview without details
Full Content (after <!--more-->
):
- Detailed event information
- Use markdown formatting (headers, lists, etc.)
- Only appears on individual event pages
Event Dates and Timezones
- Important: Set
buildFuture = true
inhugo.toml
to show future events - Events automatically sort chronologically on homepage
- Past events won't appear on homepage but remain accessible via direct URL
Timezone Handling:
- Use ISO 8601 format with timezone offset:
2025-07-15T19:00:00-06:00
- The site currently displays "MST" (Mountain Time) and "UTC-6"
- To change timezone display, update the
dateFormat
calls in templates:layouts/home.html
(homepage event listing)layouts/events/single.html
(event detail pages)layouts/events/rss.xml
(RSS feeds)
- Update the hardcoded timezone info in
layouts/events/single.html
Development Workflow
Local Development
# Start development server
source ~/.gvm/scripts/gvm && gvm use go1.24.3
hugo server --bind 0.0.0.0 --port 1313
# View site at: http://localhost:1313
Building for Production
# Build static site
source ~/.gvm/scripts/gvm && gvm use go1.24.3
hugo
# Generated files will be in public/ directory
RSS Feeds & Calendar Integration
The site automatically generates multiple feed formats:
RSS Feeds
- All content:
https://your-site.com/feed.xml
- Events only:
https://your-site.com/events/feed.xml
iCal Calendar Feeds
- Master calendar subscription:
https://your-site.com/events/calendar.ics
- Individual event downloads:
https://your-site.com/events/event-name/calendar.ics
Feed Features
RSS feeds include:
- Event title and description
- Date, location, and cost information
- Direct links to full event pages
- Properly formatted for feed readers
iCal calendars include:
- Proper timezone information (America/Denver)
- Start and end times
- Event location and description
- Organizer and contact information
- Compatible with all major calendar apps
Calendar App Compatibility
The iCal feeds work with:
- Google Calendar - Subscribe via URL
- Apple Calendar - Subscribe via URL
- Outlook - Import or subscribe
- Mozilla Thunderbird - Calendar subscription
- Any CalDAV client - Standard iCal format
Site Configuration
Basic Settings (hugo.toml
)
baseURL = 'https://your-domain.com/'
languageCode = 'en-us'
title = 'NERDER.LAND'
buildFuture = true # Required for future events
# Ignore README.md from being processed as content
ignoreFiles = ["README.md"]
[params]
description = "Your site description here"
eventSubmissionEmail = "events@your-domain.com" # Email for event submissions
# RSS and Calendar configuration
[outputs]
home = ["HTML", "RSS"]
section = ["HTML", "RSS", "Calendar"]
page = ["HTML", "Calendar"]
[outputFormats]
[outputFormats.RSS]
mediatype = "application/rss"
baseName = "feed"
[outputFormats.Calendar]
mediatype = "text/calendar"
baseName = "calendar"
isPlainText = true
Theme Customization
The cyberpunk theme is in static/css/style.css
. Key variables:
:root {
--neon-green: #00ff41; # Primary text color
--neon-blue: #00d4ff; # Links and accents
--neon-pink: #ff0080; # Event titles
--dark-bg: #0a0a0a; # Background
--matrix-green: #41ff00; # Secondary elements
}
Deployment
The public/
directory contains the complete static site. Deploy options:
- Netlify: Connect to git repo, set build command to
hugo
- GitHub Pages: Use GitHub Actions with Hugo workflow
- Traditional hosting: Upload
public/
contents to web server - CDN: Any static hosting service (Vercel, Firebase, etc.)
Troubleshooting
Events Not Showing
- Check
draft = false
in front matter - Ensure
buildFuture = true
inhugo.toml
for future events - Verify date format:
2025-07-15T19:00:00-06:00
ASCII Art Broken
- Ensure ASCII art is wrapped in
<pre>
tags in templates - Check for proper escaping in HTML
Site Not Building
- Verify Hugo version:
hugo version
- Check for syntax errors in content files
- Ensure Go environment:
go version
Template Issues
- Hugo v0.147.7+ uses new template system
- Templates must be in correct directory structure
- Use
hugo --logLevel debug
for detailed error info
Content Guidelines
Event Descriptions
- Homepage summary: 1-2 sentences, engaging but concise
- Full description: Detailed, use markdown formatting
- Include practical info: Date, time, location, cost, requirements
Writing Style
- Match the cyberpunk/tech theme
- Be informative but exciting
- Include clear call-to-action for registration
- Mention skill levels if relevant
Images
- Add images to
static/images/
directory - Reference in markdown:

- Keep file sizes reasonable for web
Maintenance
Regular Tasks
- Remove past events: Delete old event files periodically
- Update dependencies: Occasionally update Hugo version
- Backup content: Keep
content/
directory in version control - Monitor analytics: Track which events get most interest
Content Archival
Consider moving past events to an archive/
section rather than deleting, to maintain event history and SEO value.
Community Event Submissions
The site includes a "Submit an Event" link in the footer that allows community members to email event details.
How It Works
- Submission Link: Footer contains a mailto link with pre-formatted email template
- Email Template: Automatically includes required fields (name, date, location, etc.)
- Review Process: Site administrator receives email and manually creates event pages
- Configuration: Email address configurable via
eventSubmissionEmail
inhugo.toml
Email Template Fields
The submission email includes these pre-filled fields:
- Event Name
- Date & Time
- Location
- Description
- Organizer
- Contact Info
- Cost
- Registration URL (if any)
Processing Submissions
When you receive event submissions:
- Review the details for completeness and appropriateness
- Create the event file using
hugo new content events/event-name.md
- Fill in front matter from the submitted information
- Add detailed content based on the description provided
- Set
draft = false
to publish the event - Reply to submitter confirming publication or requesting clarification
Support
For issues with Hugo or Go setup, refer to: