MIDNIGHT CLUB WISCONSIN — WEBSITE README & CHANGELOG Current Release: Version 9.4.3 Status: Self-hosted Midnight Sync Engine + public calendar subscription VERSION 9.4.3 — MIDNIGHT SYNC ENGINE ------------------------------------------------------------ - Added the self-hosted Midnight Sync Engine in `midnight-sync-engine/`. - Replaced the SociableKIT/Accent API production dependency with a local `assets/data/events.ics` feed generated from the public Facebook Group Events page. - Added Node.js configuration, installation instructions, reliability logging, atomic file writes, and last-known-good feed protection. - Added a documented cron schedule that runs every three hours: `0 */3 * * *`. - Added `assets/data/events.json` for future site features and `assets/data/sync-status.json` for monitoring. - Updated `calendar-feed.php` to serve the locally generated calendar with the packaged snapshot as its emergency fallback. - Added Subscribe to Calendar and Copy Calendar Link controls so visitors can add the public feed to Google Calendar, Apple Calendar, Outlook, or another app. - Preserved the direct Facebook Events link and every event modal's Facebook link. - Preserved the curated Community Archive for past events. PUBLIC CALENDAR ------------------------------------------------------------ Feed URL: https://joinmidnight.club/assets/data/events.ics The Subscribe button opens the same feed through the `webcal://` protocol. The Copy Calendar Link button copies the HTTPS URL for calendar applications that ask users to add a calendar "from URL." MIDNIGHT SYNC ENGINE DEPLOYMENT ------------------------------------------------------------ 1. Upload the complete website. 2. In SSH or the hosting terminal, enter `mnc/midnight-sync-engine`. 3. Run `npm install --omit=dev`. 4. Run `npm run sync` and confirm `assets/data/events.ics` is updated. 5. Add this cron job, replacing the example path with the real absolute path: 0 */3 * * * cd /absolute/path/to/mnc/midnight-sync-engine && /usr/bin/node src/sync.js >> logs/cron.log 2>&1 Run `which node` to confirm the correct Node executable path. Review `midnight-sync-engine/README.md` for configuration, optional cookie handling, logs, troubleshooting, and the automated-scraping limitation. VERSION 9.4.2 — “COMMUNITY ARCHIVE” ============================================================ Website: https://joinmidnight.club Current release: v9.4.2 “Community Archive” Status: Stable Last modified: July 24, 2026 Layout: Single-page experience, internally prepared for a future modular Version 10 split WELCOME ------------------------------------------------------------ Welcome to the Midnight Club Wisconsin website project. This site is being built as a warm, useful home for Wisconsin’s automotive community—bringing together enthusiasts, friendly clubs, community supporters, events, meet locations, featured builds, and future club projects in one place. Whether you drive a daily driver, weekend project, show car, race car, truck, motorcycle, or something entirely your own, you are welcome here. Community comes before cars, and respect is the common ground. PROJECT PURPOSE ------------------------------------------------------------ Midnight Club Wisconsin promotes respectful automotive culture throughout Wisconsin. The website is intended to make it easier for enthusiasts to find community, discover events and locations, connect with trusted automotive resources, and represent the scene positively wherever we gather. CURRENT HOMEPAGE ORDER ------------------------------------------------------------ 1. Hero 2. About 3. Featured Members / Every Build Has a Story 4. Friends of Midnight Club 5. Community Supporters 6. Community 7. Meet Locations 8. Events 9. Places We Support 10. Our Commitment 11. Merchandise Preview 12. Join Midnight Club Wisconsin 13. Footer with compact Changelog link VERSION 9.4.2 — COMMUNITY ARCHIVE ------------------------------------------------------------ This maintenance release keeps the twice-daily upcoming-event feed from Version 9.4.1 and restores dependable Past Events using a local curated archive. Completed in Version 9.4.2: - Kept the existing midnight/noon America/Chicago calendar refresh schedule. - Upcoming Events remain powered by the live iCalendar feed. - Past Events now load from assets/data/past-events.json instead of depending on historical entries that the current feed does not provide. - Restored the twelve previously hard-coded past events and their existing art. - Added a Community Archive badge to every archived event card. - Preserved Facebook access from the Events toolbar and event detail modal. - Kept Burlington Car Community listed and clickable in Friends, while applying a respectful strike-through and retirement note. - Updated version references and maintenance documentation. PAST EVENT MAINTENANCE ------------------------------------------------------------ To preserve an event, add a new object to assets/data/past-events.json and place its artwork in assets/events-cards/. Required fields are id, title, start, location, description, image, url, and archive. Use an ISO 8601 date/time with a Central Time offset, for example 2026-08-15T18:00:00-05:00. VERSION 9.4.1 — SCHEDULED CALENDAR REFRESH ------------------------------------------------------------ This maintenance release keeps the custom Calendar / Agenda experience from Version 9.4.0 while reducing upstream calendar requests. Completed in Version 9.4.1: - Changed the live iCalendar proxy from five-minute refreshes to two scheduled Central Time refresh windows each day: midnight and noon. - Added a per-window attempt marker so repeated website visits do not repeatedly request the upstream feed during the same refresh window. - Continued serving the most recently cached calendar if a scheduled refresh fails, with the packaged snapshot retained as the final fallback. - Confirmed the Events toolbar still includes a direct Facebook Events link. - Confirmed every event-detail modal still includes a View on Facebook button using the original Facebook event URL supplied by the .ics feed. - Updated version references and documentation for the new refresh schedule. REFRESH BEHAVIOR ------------------------------------------------------------ The PHP proxy checks for a new feed at the first website request received after 12:00 AM and 12:00 PM in America/Chicago. It performs no more than one upstream refresh attempt during each window. Between those windows, visitors receive the cached calendar immediately. VERSION 9.4.0 — LIVE CALENDAR ------------------------------------------------------------ This release replaces the manually maintained event-card catalog with a custom, interactive calendar powered by the Midnight Club Events iCalendar feed. Completed in Version 9.4.0: - Added a responsive month calendar centered on the current date. - Added a Calendar / Agenda view toggle. - Added automatic Upcoming and Past event organization in Agenda view. - Added event-detail modals with flyer artwork, Central Time date/time, location, description, and the original Facebook event link. - Integrated the SociableKit/Accent API .ics feed as the live event source. - Added a same-domain PHP calendar proxy for dependable browser access and reduced requests to the upstream service. - Added a packaged .ics snapshot as a graceful fallback when the live feed is temporarily unavailable. - Normalized displayed times to America/Chicago for Wisconsin. - Added a Webmail shortcut beside Changelog in the footer, linking to NFO Webmail. - Removed the abandoned Google Sheets event-automation plan from the roadmap. LIVE EVENT WORKFLOW ------------------------------------------------------------ Facebook public group events -> SociableKit synchronization -> Midnight Club Events calendar/.ics feed -> calendar-feed.php -> website Calendar and Agenda. Routine event additions and edits no longer require HTML revisions or a new ZIP release. Update the source Facebook event and allow the synchronization service to refresh the calendar feed. Version 9.4.1 refreshes the feed at the first request after midnight and noon Central Time, then serves the cached copy between refresh windows. Calendar files: - calendar-feed.php — same-domain live feed proxy and cache - assets/data/calendar-fallback.ics — packaged emergency snapshot - assets/data/calendar-cache.ics — generated automatically by PHP when writable - assets/data/calendar-last-attempt.txt — generated automatically to prevent repeated refresh attempts in the same window VERSION 9.3.4 — FOUNDATION --------------------------- Completed in Version 9.3.4: - Corrected Alarmtronix and Sound on Wheels cards that had been inserted outside the Community Supporters section. - Added Alarmtronix and Sound on Wheels to Car Audio, Security & 12-Volt Accessories with official website links and unique artwork. - Replaced the reserved performance-shop card with Milwaukee Motorwerks and linked its official website. - Restored the intended WCEC, Unofficial Car Club, and 10-80 Racing Instagram links. - Corrected the Skip to Main Content link after a prior targeted edit changed its destination. - Added unique supporter artwork for all three newly placed businesses. VERSION 9.3.3 — FOUNDATION --------------------------- Completed in Version 9.3.3: - Moved the Changelog link into its own compact footer item immediately after the Rockstar Games disclaimer. - Shortened personal names in event attribution labels to first names only to reduce unnecessary personal exposure. - Removed index-inline-backup.html and ASSET-AUDIT.txt from the release package to keep production files streamlined. VERSION 9.3.1 — FOUNDATION ------------------------------------------------------------ This maintenance release refines the footer documentation link. Completed in Version 9.3.1: - Renamed the footer documentation link to “Changelog.” - Reduced the link size and visual emphasis. - Moved it inline immediately after the Rockstar Games affiliation disclaimer, directly to the left of the Stay Connected area. VERSION 9.3 — FOUNDATION ------------------------------------------------------------ This is a stability, performance, accessibility, and documentation release. Completed in Version 9.3: - Brought the README fully current and reorganized it into a friendly project overview, current release, completed work, roadmap, and technical notes. - Replaced unfinished card links with safe, non-navigating reserved listings. - Added clear external-link indicators throughout the site. - Added target, rel="noopener noreferrer", and accessible new-tab labels to external links. - Audited all local HTML links, section anchors, image references, CSS, and JavaScript assets. - Added explicit width and height attributes to all content images to reduce layout shift on desktop, tablet, and mobile. - Added asynchronous decoding and lazy loading to below-the-fold imagery. - Converted the largest member and skyline artwork to optimized WebP assets, substantially reducing transferred and decoded image weight. - Added a branded, friendly 404 page with Return Home and Facebook Community actions. - Added a keyboard-accessible Skip to Main Content link, consistent visible focus states, safer reserved-card behavior, and reduced-motion support. - Added Open Graph and Twitter sharing metadata. - Added a 1200 × 630 social-sharing preview image. - Added Organization structured data for search engines. - Replaced a footer “last updated” line with a compact Project README & Changelog link. The update date remains documented here. - Normalized the commitment section ID and major section scroll behavior in preparation for Version 10. - Added custom 404 routing, static-asset caching, and compression directives. - Preserved the corrected Decals & Stickers merchandise SVG. - Synchronized index-inline-backup.html with the live index. FRIENDS OF MIDNIGHT CLUB — CURRENT ORDER ------------------------------------------------------------ 1. Midnight Club Wisconsin 2. WCEC 3. Exiled Car Club 4. Exclusive Automotive Club 5. Money Pit 6. Burlington Car Community / BC3 7. Experimental Society WI 8. Run It Wisconsin 9. Unofficial Car Club 10. 22ND Crew 11. 10-80 Racing 12. Unbound WI Links and official artwork still awaiting final assets: - WCEC - Unofficial Car Club - 10-80 Racing Reserved listings are intentionally non-clickable until a verified official social URL is supplied. COMMUNITY SUPPORTER DIRECTORY ------------------------------------------------------------ Automotive Photographers - Focus Pixel Studio - Fat Boy Shots - Prairie Wheels Photography - Three reserved photographer listings Detailing - MAJ Auto Spa & Detail Co. - Professional Detail - Mobile Express Detail Performance Modifications, Tuning & Dyno - Boosted Warehouse - Airborne Performance & Repair - One reserved listing Tires & Wheels - Discount Tire - Two reserved listings Maintenance & Repair - Three reserved listings Car Audio & 12-Volt - Rewired Mobile Solutions - Geek Squad AutoTech — Kenosha - One reserved listing Vinyl & Wraps - One reserved listing Window Tinting - Carisma Customs - One reserved listing MERCHANDISE ROADMAP ------------------------------------------------------------ Current concept categories: - Apparel: shirts, hoodies, hats, and seasonal pieces - Banners: garage, shop, event, and display banners - Decals & Stickers: windshield banners, vinyl decals, and sticker packs - Accessories: keychains, lanyards, air fresheners, and related items Nothing is for sale yet. Future work includes original artwork, vendor and material selection, pricing, fulfillment, pickup/shipping options, and a safe checkout strategy. COMING RELEASES ------------------------------------------------------------ Version 10 — “Expansion” - Convert the single-page site into a seamless lightweight multi-page site. - Planned pages: Home, Events, Locations, Supporters, and Merch. - Keep shared styling, navigation, footer, and scripts consistent. - Continue performance optimization and use concise homepage previews. Version 11 — “Connected” - Improve meet-location filtering, submissions, and regional organization. - Explore data-driven Friends and Community Supporter directories. - Add event filters such as region, event type, and “this weekend” using the existing live calendar foundation. Version 12 — “Community” - Finalize merchandise identity and catalog presentation. - Evaluate hosted checkout options such as Shopify, Stripe, or Square while keeping the customer experience visually integrated with this website. - Add ordering only after tax, inventory, fulfillment, privacy, and support workflows are ready. LIVE CALENDAR ROADMAP ------------------------------------------------------------ Current workflow: Facebook Events -> SociableKit -> iCalendar feed -> Website Future calendar enhancements may include: - Region and event-type filters - “Today,” “This Weekend,” and “This Month” shortcuts - Search - Optional map integration - Event submission and moderator review workflow MEET LOCATIONS ROADMAP ------------------------------------------------------------ Planned directory features: - Interactive Wisconsin map - Region and city filtering - Parking capacity and surface notes - Lighting, food, restrooms, and accessibility - Family and dog-friendly indicators - Photography and scenic value - Cruise-route and seasonal notes - Property-owner or municipality coordination notes - Known-good and Avoid / Blacklisted status - Community submissions with moderator approval ADDITIONAL FUTURE FEATURES ------------------------------------------------------------ - Dedicated Members page and featured-build recognition - Official Friends logos, descriptions, and shared-event history - Expanded gallery and event recaps - Sponsor and partner system - Business verification and supporter submission process - Event submission portal - Lightweight CMS or administrative dashboard - Search and category filters - Permanent club crest, favicon set, and expanded social artwork TECHNICAL STRUCTURE ------------------------------------------------------------ Primary files: - index.html - index-inline-backup.html - 404.html - README.txt - favicon.svg - .htaccess - assets/css/styles.css - assets/js/site.js - calendar-feed.php Asset directories: - assets/friends/ - assets/supporters/ - assets/merch/ - assets/events-cards/ - assets/EVENTS/ - assets/data/ Optimized Version 9.3 assets: - assets/member-01.webp through member-06.webp - assets/milwaukee-skyline.webp - assets/social-preview.webp Security and hosting notes: - The Content Security Policy allows local scripts and a hashed JSON-LD block. - Inline operational JavaScript remains avoided. - New scripts should stay in assets/js/. - New styles should stay in assets/css/styles.css. - HTTPS and the canonical non-www hostname are enforced. - Backup, hidden, and commonly sensitive file types are blocked. CONDENSED CHANGELOG ------------------------------------------------------------ Version 9.4.3 — Midnight Sync Engine - Self-hosted Facebook event sync every three hours, local JSON/ICS output, public calendar subscription controls, last-known-good protection, and logs. Version 9.4.2 — Community Archive - Curated local past-event archive and respectful Burlington retirement treatment. Version 9.4.1 — Scheduled Calendar Refresh - Calendar feed refreshes at midnight and noon Central Time, cached delivery between windows, preserved Facebook Events links, and updated documentation. Version 9.4 — Live Calendar - Custom Calendar/Agenda views, live iCalendar synchronization, event modals, Central Time display, fallback feed, NFO Webmail footer link, and roadmap update. Version 9.3 — Foundation - Accessibility, link safety, metadata, structured data, image optimization, explicit image sizing, branded 404, README overhaul, and Version 10 prep. Version 9.2 - Added WCEC, Unofficial Car Club, and 10-80 Racing. - Added merchandise preview and concept artwork. - Fixed the CSP-compatible Back to Top control. - Added Version 10 module markers. Version 8.1 - Added floating Back to Top control. - Added smooth scrolling and mobile safe-area styling. - Refined Community Supporters spacing. Version 8 - Expanded Community Supporters into organized categories. - Added confirmed businesses and deliberate reserved listings. - Added unique supporter artwork and clickable verified cards. - Kept recommendations neutral with no ratings, stars, or reviews. Version 7.x - Added Friends of Midnight Club and photographer supporters. - Reorganized the homepage around community content. - Linked hero badges to relevant sections. Version 6.x - Improved footer, skyline placement, responsiveness, and event cards. - Moved Featured Members above Events. Version 5 and earlier - Added Meet Locations, community philosophy, gallery improvements, social integration, supporter foundations, and responsive redesign. ACTIVE TO-DO ------------------------------------------------------------ [ ] Add verified WCEC social link and official logo [ ] Add verified Unofficial Car Club social link and official logo [ ] Add verified 10-80 Racing social link and official logo [ ] Replace remaining temporary Friends artwork as assets become available [ ] Replace supporter reservations with community-vetted businesses [ ] Create a permanent Midnight Club Wisconsin crest and expanded favicon set [ ] Finalize merchandise artwork, suppliers, and operating plan [ ] Begin Version 10 multi-page architecture when ready PROJECT NOTE ------------------------------------------------------------ Built by enthusiasts, for enthusiasts. Community before cars. Respect is the common ground. Every respectful event creates more opportunities for the next one.