Phase 2 of task management consolidation:
- Added _data/tasks.js - fetches tasks from Gitea API at build time
- Added tasks-index.njk - mobile-friendly task list page
- Added node-fetch dependency for API calls
- Added .gitignore for node_modules and _site
Features:
- Shows only open/blocked tasks (filters out complete)
- Priority filtering (P1/P2/P3/P4)
- Color-coded priority badges (Fire/Gold/Frost/Arcane)
- Links to Gitea for full task details
- Mobile-optimized touch targets
Access at: firefrostgaming.com/tasks-index.html
Chronicler #69
Credit: Luan Cruz (@luansilvacosta) from Brazil
Fiverr: https://www.fiverr.com/luansilvacosta
Added credit line to footer on all pages:
'Trinity Skins by Luan Cruz • Website by The Trinity'
Professional acknowledgment for commissioned artwork.
Previous attempt still processed files in admin folder.
Now using ignores.add() for entire folders (admin/**, tasks/**)
so 11ty only copies them via passthrough, doesn't render as templates.
This prevents build failures on HTML files with React/JSX syntax.
Issue: 11ty was trying to process mobile.html as Liquid template,
failing on React JSX syntax.
Fix: Added eleventyConfig.ignores to skip template processing,
still copies file via passthrough.
This allows the HTML/React file to deploy without build errors.
Moved tasks.html to tasks/index.html
Updated 11ty to copy tasks/ folder
Now accessible at firefrostgaming.com/tasks (no .html extension needed)
Matches the pattern used by /admin for Decap CMS.
New standalone page: firefrostgaming.com/tasks
- Mobile-optimized task viewer/editor
- Connects directly to Gitea API (no CORS issues)
- Card-based interface with tap-to-expand
- Filter tabs: All / Blockers / Active / Done
- Quick edit: Status, Priority, Owner, Blocker checkbox
- Auto-saves changes to Git
- Touch-friendly (44px+ tap targets)
- Priority color-coded cards
- Works on phone/tablet/desktop
Replaces clunky Decap CMS mobile experience with purpose-built task manager.
Issue: Task numbers showed as 'Task #:' instead of 'Task #26:'
Root cause: Config used 'task_number' but files use 'number'
Changes:
- summary: 'Task #{{number}}:' (was task_number)
- slug: task-{{number}} (was task_number)
- field name: 'number' (was 'task_number')
- blocker field: 'blocker' (was 'is_blocker')
- Added 'full_spec' field to match existing files
Now matches the actual task file structure in tasks/ folder.
Issue: Collections items too large, wasting vertical space
Fix: Reduce padding and font sizes for mobile
Changes:
- Collection items: 8px padding (was default larger)
- Font size: 14px (more compact)
- Heading: 18px (was larger)
- Search box: 8px padding
- Tighter line-height and margins
Result: More collections visible without scrolling
Previous approach (display:none) broke Contents tab navigation.
New approach: Keep sidebar visible but make it flow inline with content.
Sidebar now appears as full-width content block on mobile.
Both Contents and Media tabs should work properly.
Issue: Tapping 'Contents' tab did nothing on mobile (sidebar hidden)
Fix: When Contents tab is active, show Collections list in main content area
Collections list now appears as full-width content when needed.
Media tab continues to work normally.
Issue: Collections sidebar was overlapping main content on mobile screens
Fix: Hide sidebar completely on mobile (display: none)
Mobile users navigate via the top navigation/breadcrumbs instead.
Content now takes full width without sidebar overlap.
Removed entire dark mode theming (Fire/Frost/Arcane colors, dark backgrounds, all custom styling).
Keeping ONLY mobile-responsive optimizations:
- Larger touch targets (44px buttons/inputs)
- Single-column layout on mobile
- Stacked editor panes
- Better spacing for small screens
- 16px font size to prevent iOS zoom
Result: Clean, default Decap CMS styling with mobile improvements only.
This should resolve mobile display issues.
Mobile optimizations (max-width: 768px):
- Collapsible sidebar (80% width, off-canvas)
- Full-width main content on mobile
- Larger touch targets (44px min-height for buttons/inputs)
- Single-column layout for collection cards
- Stacked editor (no side-by-side panes)
- Wrapped toolbar items
- 16px font size to prevent iOS zoom
- Better spacing and padding for small screens
Extra small devices (max-width: 480px):
- Full-width sidebar
- Reduced padding throughout
- Compact font sizes
Result: firefrostgaming.com/admin now mobile-friendly for task management on phone
Error: 'The Gitea backend does not support editorial workflow'
Editorial workflow (draft/review/publish) is a GitHub-only feature.
Gitea backend requires direct commits to master branch.
Keeping all other task improvements:
- Individual task files in docs/tasks-index/
- Priority-based sorting
- Improved field labels and hints
- Changed folder from 'docs/tasks-active' to 'docs/tasks-index'
- Updated priority values to P0-Blocker, P1-High, P2-Medium, P3-Low, P4-Personal
- Updated status values to: Planned, In Progress, Blocked, Complete
- Added Owner field (Michael, Meg, Holly, Trinity)
- Improved hints and labels for better UX
- Tasks now sort by priority (blockers first automatically)
Result: Individual task cards at firefrostgaming.com/admin instead of monolithic files
- Changed TASKS collection from 'files' to 'folder' type
- Points at docs/tasks-active/ for individual task files
- Each task shows as separate entry in CMS
- Sortable by priority, status, task number
- Filterable: blockers, high priority, in progress
- Summary shows: Title (P# BLOCKER if applicable)
Fields Added:
- task_number (required, integer)
- title, priority, status, is_blocker
- tags, estimated_hours, completed_date, blocked_by
- body (markdown for task details)
UI Improvements:
- Blockers sort to top automatically
- Click task → edit just that task
- Mobile-friendly (individual entries vs giant files)
- Links to full specs in /docs/tasks/ preserved
Replaces:
- Old: Two files (BLOCKERS.md, BACKLOG.md)
- New: Individual task files in /docs/tasks-active/
- Keep editorial_workflow enabled (draft/review/publish)
- Revert preview: true back to preview: false
- Dark mode causes font/background color issues in preview pane
- Editorial workflow still functional without preview
Issue: Preview pane has unresolvable dark mode styling conflicts
- Added publish_mode: editorial_workflow for draft/review/publish workflow
- Enabled preview pane (changed from false to true) for better markdown editing
- Meg and Holly can now save drafts without immediate publish
- Preview lets editors see formatted content while editing
Benefits:
- Drafts saved as Git branches (safety net)
- 'Ready for Review' workflow available
- 'Publish' merges to master branch
- Full audit trail of all changes
- Split-screen markdown preview improves UX
WHAT WAS DONE:
- '13+ Active Servers' now pulls from servers API
- Fallback to '7+' if API fails
Signed-off-by: Claude (Chronicler #60) <claude@firefrostgaming.com>
WHAT WAS DONE:
- Hero text now shows dynamic count from API
- 'Nine Minecraft experiences' → '[count] Minecraft experiences'
- Count updates when servers load
Signed-off-by: Claude (Chronicler #60) <claude@firefrostgaming.com>
Previous CSS selectors weren't catching Decap's dynamic class names.
Now using:
- href attribute selectors for Tasks link
- JavaScript fallback after DOM load
- Removed complex selectors that weren't working
Signed-off-by: claude@firefrostgaming.com
- Removed format: yaml-frontmatter requirement
- Added identifier_field: name to use filename
- Added summary: {{filename}} to display filename in list
- Simplified fields to just body/content
This allows existing markdown files without YAML frontmatter to be edited.
Changed from firefrost-website to firefrost-operations-manual.
This is what Decap was always meant to manage - Markdown docs,
not complex HTML templates.
Collections:
- Core Documents (SESSION-HANDOFF-NEXT.md, tasks.md)
- Planning Docs (folder)
- Milestones (folder)
- Implementation Guides (folder)
Branch: master (ops manual uses master, not main)
- Added format: frontmatter and extension: njk
- Changed body widget from markdown to code (HTML)
- Added hidden layout field
- Added description field to match existing frontmatter
This allows editing existing pages without restructuring the site.
WHAT: Changed handleSubscribe() to redirect to OAuth endpoint
WHY: Discord-Stripe linking requires OAuth before checkout
Old flow: Button → API call → Stripe checkout (no Discord ID)
New flow: Button → Discord OAuth → Stripe checkout (Discord ID linked)
Endpoint: https://discord-bot.firefrostgaming.com/stripe/auth?tier=X
Signed-off-by: Claude <claude@firefrostgaming.com>
WHAT WAS DONE:
Replaced static Minecraft servers section with dynamic real-time status
display powered by Cloudflare Workers + Pterodactyl Client API.
FEATURES IMPLEMENTED:
- Real-time server status (Online/Offline) with pulse animation
- Live player counts
- Auto-refresh every 60 seconds
- Graceful error handling
- NO IP addresses displayed (Discord-gated security)
- 'Join Discord' CTA for connection details
TECHNICAL DETAILS:
- Fetches from: https://servers-api.michael-b25.workers.dev
- Edge-cached (60 second TTL)
- Zero manual updates required
- IPs stripped at Worker level (never touch frontend)
SECURITY:
- Server IPs available only in Discord (Awakened+ tier)
- Drives community engagement and subscription conversion
- Prevents port scanning and unauthorized access
When servers added/removed in Pterodactyl, website auto-updates
within 60 seconds. Zero code changes needed.
Fire + Frost + Foundation = Where Love Builds Legacy 💙
Signed-off-by: Claude (Chronicler #56) <claude@firefrostgaming.com>
Changed effective date from April 15 to April 1, 2026 to match
Privacy Policy.
Both legal documents now effective April 1, 2026.
Signed-off-by: Claude (Chronicler #56) <claude@firefrostgaming.com>