System Changelog

Track updates, new features, and the future roadmap.

🚀 Future Roadmap

  • Paid vendor pins
  • Event export via .ics (currently it already will export to Google Calendar)
  • Region Subscriptions
  • Notifications
  • "I'm going"
  • "Gone", "Want to go" lists. (Debating if I want to make these urls with like ?gone=1,2,3&want=4,5,6 or if I want to make fan accounts)
  • Event reviews
  • resources

08/27/2026

  • Improved daily quests with clear Edit Event and Visit Website actions on every event quest.
  • Added “No dates announced” and “No logo” completion options when an event’s official site does not provide them.
  • Decluttered the event editor, improved its mobile layout, and added a Superadmin organizer-preview toggle while preserving organizer logo upload and auto-discovery tools.
  • Added a Change Password shortcut to navigation for logged-in accounts.
  • Fixed the organizer Comms Hub opening in an extra app window and corrected the untagged-events queue so Recycle Bin listings no longer inflate its results.

08/26/2026

  • Reimagined the Map Team application as an interactive invitation that shows how volunteers help people find events and take their first steps into community.
  • Expanded the application guide with all 17 Map Team ranks, live member counts at every rank, streaks, daily quests, and the optional second quest set.
  • Redesigned the Map Team leaderboard with personal progress, team totals, a new podium, rank distribution, search, filters, and full-team standings.
  • Rebuilt the About page around KinkKal's community mission, live map totals, clearer ways to participate, richer team profiles, and a more welcoming story.
  • Reimagined Community Links as a searchable portal with partner and resource filters, improved offer copying, a stronger suggestion flow, and the secret synthesizer preserved.
  • Improved mobile layouts, keyboard accessibility, and light and dark theme support across the refreshed pages.
  • Fixed the public navigation on portrait phones with a compact menu that keeps Links, About, Roadmap, and FAQ within easy reach.
  • Clarified the mobile admin header with distinct Back, Tools, and Logout controls so the exit action can no longer be mistaken for navigation.
  • Kept public navigation menus above map and calendar controls on mobile so every link remains visible and tappable.
  • Made Recycle Bin deletions reliable even if audit logging fails, and removed recycled events from the map, calendar, feeds, direct pages, statistics, and other public surfaces.
  • Isolated staging and production login cookies so signing into one site no longer clears the other session.
  • Fixed Local Mode on the mobile map by centering the panel, revealing location choices as soon as it opens, and making Apply activate the selected location or explain what is needed.

08/25/2026

  • Launched Event Spotlights: organizers and community supporters can now pay through Stripe Checkout to feature an eligible event across KinkKal.
  • Added two one-time spotlight options based on the FAQ pricing: up to 90 days for $25 or up to six months for $40. Placements end with the event, and longer packages are disabled when they would not add coverage.
  • Opened promotion checkout to guests, so fans can sponsor an event without creating a KinkKal account. Sponsorship does not grant ownership, editing access, event admission, organizer status, or KinkKal endorsement.
  • Added Promote this event links to calendar and map event details, public event pages, the organizer dashboard, and each eligible date in the event editor. Also fixed the promotion button width and alignment on mobile.
  • Added per-event organizer controls to allow or disable fan and guest promotion from both the event editor and public event page. Organizers can still fund their own event after community sponsorship is disabled.
  • Added recurring-event support so KinkKal promotes the next eligible occurrence even when the original date of the recurring listing is in the past.
  • Fixed abandoned or canceled Stripe checkouts leaving promotion packages greyed out. Purchasers can now resume or cancel their checkout, and expired sessions release the event automatically.
  • Completed the secure Stripe production rollout with server-controlled pricing, signed and idempotent webhook fulfillment, automatic placement expiration, and revocation when a payment is refunded or disputed.
  • Added organizer notifications for community-funded promotions and controls for stopping an active community-sponsored placement while KinkKal reviews any undelivered service with the purchaser.

08/24/2026

  • Achievements now award a one-time 100 base XP bonus, adjusted by the editor's trust multiplier.
  • Retroactively credited achievement XP to everyone who had already earned badges, while excluding temporary Test Mode badges.
  • Achievement profiles and unlock notifications now show the XP reward.
  • Daily quests now track consecutive days after one completed set per day. Completing both sets still counts as one day, and every 7 consecutive days awards 100 base XP adjusted by the editor's trust multiplier.
  • Missing daily quest slots now become 25 base XP freebie buttons, adjusted by the editor's trust multiplier.
  • When no eligible quests remain, a directory-clear button awards the full XP value of the unavailable set or both daily sets, including their completion bonuses.
  • Added ten ranks above The Safeword, beginning with The Navigator at 15,000 XP and ending with The North Star at 375,000 XP.
  • Added flexible repeating schedules: daily, weekly, monthly, yearly, ordinal weekdays, omitted dates and days, and end rules.
  • Calendar sidebars now show the next five upcoming occurrences of repeating events.
  • Added Local event fields, city autofill, submission guidance, and approval indicators.
  • Added Local Mode to the calendar and map with city or current-location search and a 10–500 mile radius.
  • Local and recurrence metadata now appear in JSON and RSS feeds, with local events hidden unless Local Mode is requested.
  • Added visual bubbles showing completed and remaining days on streak counters.

08/21/2026

  • Replaced the old calendar-first homepage with a new mobile-friendly KinkKal hub that puts the Map and Calendar choices in the first viewport.
  • Moved the full calendar to /calendar, made the logo return home, and updated navigation, SEO, sitemap, app shortcuts, redirects, and site-wide calendar links.
  • Added live KinkKal stats and facts to the homepage, plus links to contribute an event and become a Map Guru.
  • Added a subtle pulse to the Map and Calendar buttons while respecting reduced-motion preferences.
  • Fixed the Time Traveler stat so missing, placeholder, or backwards end dates no longer create a negative total.
  • Reworded The Introvert's Nightmare to reflect the dates currently retained in KinkKal.
  • Made footer links environment-aware so staging stays under /dev while production uses the normal paths.

08/16/2026

  • Removed the 1.5x Trust Multiplier cap. All positive XP awards, including daily quests and completion bonuses, now use the current trust multiplier, and previously missed daily-quest multiplier XP is credited retroactively.
  • XP earned popups now show total XP, base XP, and the applied multiplier. The action log troubleshooter also records and displays the full XP calculation for easier auditing.
  • Map editors and SuperAdmins who complete their first daily quest set can optionally start a second set with its own quests, refresh allowance, multiplied rewards, and completion bonus.

08/15/2026

Daily quests are now more flexible.


• If a date-check quest finds that no upcoming date is announced, Map Editors and SuperAdmins can mark it directly from the quest card and still earn the full XP.


• The listing is then hidden from Needs Attention for seven days, so the same unresolved date search is not immediately assigned again.


• The daily quest section can now refresh every unfinished quest up to three times per day.


• Completed quests stay completed, and a refresh is not used when no different eligible work is available.


Safer changelog updates.


• Added a special, short-lived token that can only read and update today’s changelog entry. It cannot open the admin area or change anything else.


• The token expires automatically, can be revoked, is stored securely, and every use is recorded.


Mobile admin navigation.


• Added a clear back-to-dashboard arrow to the mobile admin header, including the event editor, without adding more clutter.

08/14/2026

  • Fixed a bug with new submissions being submitted as null,null for the coordinates which made them show up as virtual events
  • Added checks to admin_edit.php to prevent events being saved with the location blank
  • Added ability for map editors to confirm auto-discovered logos

08/13/2026

A big day of improvements across KinkKal.


Attract displays attract.php


• The traveling car, train, and plane now move directly between event pins, face the right direction, and stay steady even across the date line.

• Arriving in a city now shows its event names and dates, and visitors can pause and immediately resume the show.

• Attract displays can now be set up for a specific venue, keep important information away from screen edges, and use darker loading tiles for a smoother display.


Event artwork


• Event logos and artwork now appear on the calendar and map.

• If an event has no uploaded logo, KinkKal can use artwork from its website instead.

• People submitting events and the map team can upload, crop, and preview square event artwork.

• Artwork now loads more smoothly and stays sharp in both large and small views.


Map team improvements


• Map Editors and SuperAdmins now receive up to three useful daily quests for bonus XP. Quests only appear when there is real work available and skip listings muted for seven days.

• Completing every available quest awards an extra 50 XP and shows a small celebration.

• Contact quests include a quick link to the event’s website.

• Searching the event directory now checks every listing, regardless of the filters selected. Clearing the search restores those filters.

• Administrators can hide a convention from “Needs Attention” for seven days, restore it early, or move it and its dates to the Recycle Bin instead of permanently deleting it.

• The changelog can now automatically link selected page names and terms.

08/11/2026

  • Added ability to share to Facebook and X.
  • Added ability to suggest community holiday

08/07/2026

  • Community holidays: Added a researched list of informal kink and BDSM observances, including International Male Chastity Day on January 14. Holidays are optional, off by default, and appear only on the calendar. The setting is remembered for visitors and logged-in users, and the desktop switch no longer overlaps its label.
  • Site announcements: Added themed public announcements and private editor notices. They can be minimized and reopened, and dismissals are remembered. SuperAdmins can create and schedule them in the new Announcement Studio.
  • Better mobile announcements: The Announcement Studio now keeps Save and Cancel visible above mobile browser controls while the form scrolls.
  • Event submissions: Added a Virtual checkbox that fills the location automatically. Physical events now require city, state in the United States or city, country elsewhere, with clear examples.
  • Data cleanup: Cleanup problems now link directly to affected events. Virtual events no longer appear as coordinate orphans, and locations that already have master coordinates are sent to the correct repair list.
  • Bulk date scanner: Rebuilt it to work in small batches with progress, pause and resume, saved scan state, individual retries, clearer errors, and safer URL checks.
  • Admin redesign: Reorganized the growing backend into searchable, categorized workspaces while keeping specialist tools separate. Tools stay collapsed by default so the event list remains front and center.
  • Personal shortcuts: Editors and SuperAdmins can star the tools they use most, with favorites saved to their account.
  • Editor access: Opened Organizer Outreach to map editors and added a mobile-friendly way back to the public site.
  • Staging improvements: Added a sitewide staging warning, separate staging sessions and database support, and repurposed the old sync tool to refresh staging data from the live site.
  • Safer maintenance access: Added revocable, short-lived delegated access so maintenance can be done without sharing an account password.
  • Achievements: Reworked achievement tracking, notifications, profiles, trust-streak display, and seasonal test controls.
  • Seasonal fun: Added the Locktober experience and the Switch Jake squirrel map Easter egg, with controls that keep special map modes from conflicting.
  • Redesigned the convention list with cleaner, mobile-friendly cards.
  • Added useful details such as upcoming dates, locations, owners, tags, and listing status.
  • Improved search to include convention names, locations, IDs, and statuses.
  • Added quick filters for missing dates, missing information, uncontacted conventions, and anything needing attention.
  • Added clearer Edit and recycle-bin actions.
  • Added status colors, result counts, remembered filter preferences, and a collapsible status guide.

08/04/2026

  • Added the ability to install KinkKal as a webapp on all major platforms
  • Added admin ability to view/edit the many emails that the site sends out as before this they were hard coded

08/03/2026

  • Improved attract.php. Made it less "touchscreen-y"
  • Added leather contest flow on map.php (I have plans to add more, but they aren't as well documented)
  • Improved login process for staging branch

07/23/2026

  • Fixed issue on admin.php where events that hadn't been contacted but had owners were still being marked as "uncontacted"
  • Fixed issue with admin.social.php to account for FetLife's new rich text being allowed rather than markup code.
  • Added logic to remove "⚠️ Never Contacted" from events that have owners on admin_edit.php

05/19/2026

  • We have reached 90% tagging. The tagging feature is no longer in beta. Search for events by what they feature
  • Fixed issue with editor leaderboard not being updated for the new achievements
  • Fixed issue with editors not able to delete events

04/15/2026

  • Fixed issue when new events were submitted or edited. Short version: changes came through in the description and had to be done after event or change was accepted. Now it is done automatically.

04/07/2026

  • After a lot of trial and error, I finally figured out GitHub. Now the codebase is better and I have a dev branch.
  • Added some additional items to the traffic whitelist

04/03/2026

  • Did some quality of life improvements to admin.php. Searching now unchecks all filters.
  • KinkKal now has 2 Factor Authentication support! Find it in the password section after you logged in.
  • Added this New Feature feature to highlight new things

04/02/2026

  • Fixed a crash in the Submission Queue: Resolved an issue where approving an "Event Deletion" request would successfully delete the event, but crash the page before it could send the confirmation email to the user.
  • Preserved XP for Deleted Events: Updated the backend logging rules. Previously, the database required every single action log to be permanently tied to an active event. Now, if an event is rejected or completely deleted from the map, the system will safely keep your action log intact so you never lose the XP you earned for processing it.
  • Added Queue Safety Nets: Built new failsafes into the admin queue so that minor background errors (like a logging glitch) will no longer stop the main tasks (like deleting the event or creating a user account) from finishing successfully.
  • Added policy.php page in response to a deletion request.
  • Reworked email sent to organizers in response to an email claiming KinkKal was "violating consent" by listing events without permission
  • Added a note for people submitting events to ask that people get permission before submitting events.

04/01/2026

  • After listening to community feedback, we realized it was time for a major change in direction. Throw away the leather and break out the beige, because KinkKal is officially rebranding as the premier directory for the Suburban Lifestyle!

I hope you enjoyed the April fools joke. It has been discussed that we leave this as a permanent feature. A kind of NSFW mode. We are debating that.


  • Added XP gain for editors approving events (a oversight on my part)
  • Made some changes to the roadmap (Added milestones, added PWA as a goal)
  • Added additional songs to the piano easter egg

03/31/2026

  • Edited "Zork" adventure builder easter egg to make a GUI for editing the adventure (It's pretty barebones right now)

03/29/2026

  • Rebranded editors as "Map team"
  • Added ability to set a custom title for editors and superadmins.

03/26/2026

  • Fixed an error with a missing , in header that caused site to crash.
  • Fixed a bunch of admin backend issues.
  • Created new tools to track website reputation and to scan for malicious URLs that people may try and do.
  • Added 3 new achievements for editors
  • Improved gamification page to explain ranks.

03/25/2026

  • Fixed an error with organizer invite emails sending images with https://kinkkal.com/KinkKalV2Logotxt.png.png (note the double PNG). Added a entry to .htaccess to correct this for emails already sent.
  • Added admin header to all admin pages
  • Fixed a few admin page favicons
  • Added forgot password to admin_login.php
  • Started created new combined settings pages to combat admin utility sprawl

03/24/2026

  • Implemented whitelist for good bots
  • implemented dynamic favicon for new logo

03/23/2026

  • Fixed a disconnect between the calendar and the map in terms of live event calculation.
  • We have a new logo. KinkKalV2Logo.png
  • Reworked postcard.html with a brand new design based on feedback from SPLF.
  • Added /404.php to the whitelist of the sentinel. Even though I know the IP is likely malicious, they were just fed the 404 page.
  • Reworked the easter egg on links.php
  • added humans.txt and ads.txt
  • Fixed an issue with logging into multiple devices (if you logged in on another device you'd get logged out everywhere else)
  • Added a new easter egg to index.php
  • Added easter egg tracker to about.php

03/22/2026

  • Added filter to admin_visitors.php (AKA sentinel) to only show odd traffic.
  • Also added country stats so I can keep an eye on where people are coming from (completely anonymous).

03/21/2026

  • Added a Superadmin Time Machine mode to help diagnose a bug discovered last night. The issue was caused by a time zone mismatch in index.php, where events could appear as LIVE in the sidebar before they were marked LIVE on the calendar. All event timing is now calculated using U.S. Mountain Time so the calendar, map, and sidebar stay in sync.
  • To help offset the limitations of using a single fixed time zone, the calendar and map now retain events for an extra 24 hours before and after their scheduled time. This keeps the map more accurate for users in other regions without requiring them to manually set a time zone or adding extra calculation complexity.
  • While no one will ever see it, I allowed the time machine and test event functions to be hidden behind a cookie so I don't have to see them all the time.
  • Made claiming and corrections easier. Buttons are now on each event. Claim button disappears if event is claimed already.
  • Added new easter egg.
  • Added this new version of a changelog: changelog.php
  • Added a mass scanner to sentinel interface to ban everything after a new url is flagged
  • Added new feature to display events who currently have the final tag in admin.php

03/20/2026

  • Fixed greyed-out sold out events on the map.
  • Adjusted day labels/placement for sold out events.
  • Added the final event banner for events that are ending in honor of @beyondleather.
  • Added a permanent blue pulse for events that are ending.
  • Added a green pulse for events happening now to the main calendar.
  • Added a gold pulse for promoted events.
  • Fixed an issue where sold out events were not receiving live-state treatment.
  • Prevented final events that have already passed from pulsing on the map or in popup cards.
  • Updated style priority so promoted event styles take precedence over all other states.
  • Added a superadmin-only test event set to preview all event states.
  • Changed the combined “Promoted Live” label into two separate status boxes.
  • Made final events use a transparent background on mobile.
  • Added test events and related rules to index.php.
  • Added code to admin_edit to allow for "final" events.
  • Added a “Locate Me” feature to the map.
  • Fixed an additional issue in index.php that caused sold out events to be greyed out incorrectly.

03/19/2026

  • Enhanced submit.php with a bunch of new quality of life features. For example, fans can now adopt an event and help keep it up to date.

03/17/2026

  • Automated version in footer.
  • Also added holiday icons in footer on appropriate days.
  • Updated privacy.php to be more fun (I know. A fun privacy page?).
  • Add one more stat to stats.php.
  • Set certain stat cards to hide if they equal 0.
  • Made sentinel card match what’s on privacy.php.
  • Added gamification for editors (Thanks to @DaddyBearMike for the idea).
  • Added CSRF protections to admin_edit.php.
  • Rebuilt Tailwind.css to reflect all the new CSS.

03/16/2026

  • Huge update to admin backend. Tools were starting to get messy. Organized them into categories.
  • Enabled CSRF protections to prevent XSS attacks. Updated admin_login.php and admin_logout.php.

03/13/2026

  • Fixed a minor issue with the virtual events button overlapping the zoom in and out button on map.php.

03/12/2026

  • Updated stats.php with a few changes.
  • Discount card now shows which conventions have discounts.
  • Total convention card now only looks for events that are 2+ days.
  • Added popup for sold out events.

03/11/2026

  • Updated submit.php to allow for FL Import tool to function. Currently, the plugin is awaiting approval in the Chrome Store.
  • Added stats.php with some fun and wacky stats.
  • Created privacy.php.
  • Updated footer.php with stats.php and privacy.php.
  • Moved virtual events away from 0,0 and instead to a separate button on map.php.
  • Fixed a small issue that cropped up because of the virtual events button where event popups took up the whole screen.
  • Fixed an issue on mobile where very wordy descriptions caused the close button to not be available on individual events on map.php.

03/08/2026

  • Added additional roadmap item for editor quota to get to V3.
  • Added additional "click zones" for the map view to open the information.

03/06/2026

  • Added code to remind admins better before contacting events. The date wasn't showing on new additions (though it would show when you refreshed the page).

03/03/2026

  • Added a check to scan for "banned" events so they can't be readded to the database if they were requested to be removed.
  • Compressed header.php on mobile so things don't get pushed off screen.
  • Fixed an issue with the calendar day of the week being unreadable.
  • Added categories to faq.php as well as some additional Q&A entries.
  • To celebrate @SouthPlains selling out completely, I have added a "sold out" feature that can be toggled for events.
  • Added the ability on faq.php to hop to a particular entry if I need to call attention to it.
  • Slight edits to index.php, maps.php and links.php to display the footers.
  • Improved overall layout of faq.php.
  • Improved convention.php to show promo codes (if any better).
  • Improved organizer email to better detail what KinkKal is.

03/01/2026

  • Added a future feature for promoting events. Promoted events will pulse yellow and will appear at the top of the list if there are multiple events. This will be used later on.

02/28/2026

02/27/2026

  • Minor fixes to make Google Search Happy. Missing field "location". Items with this issue are invalid. Invalid items are not eligible for Google Search's rich results.

02/25/2026

  • Added Labs feature to test beta features. First feature behind this is categories. As we still have a lot of events without categories, it isn't as useful yet, but more are being tagged every day.

02/24/2026

02/23/2026

  • Added footer.
  • Created public facing interface for getting community assistance for tagging https://kinkkal.com/untagged_events

02/22/2026

  • Made site more LLM friendly (ChatGPT) by making a llms.txt that is auto generated every 12 hours.
  • Added faq.php with some common questions that we get asked about the site.
  • Made tweaks to header.php to accommodate roadmap and FAQ.
  • Made edits to api_export.php and rss.php to showcase more data that wasn't being displayed previously.

02/21/2026

  • Added https://kinkkal.com/roadmap.php detailing plans for KinkKal.com development.

02/17/2026

  • Added disable function for users.
  • Updated admin_users.php to divide users into superadmins, editors and users.

02/11/2026

  • Added additional protections to "The Warden". It's fun to watch all the bots try and then get banned.
  • Reworked map.php due to a VERY LONG description being added to a event.

02/08/2026

  • Enhanced robots.txt and sitemap.php to make them PHP to automatically pull from available data rather than have me edit it each time.
  • Created convention.php to show separate pages for all events (more useful for SEO).
  • Created "The Warden", an automated security system to block malicious traffic. Don't upset it.

01/26/2026

  • Added new links section.
  • Added additional entries into .htaccess to prevent malicious bots from scanning the site.
  • Fixed a bug on submit.php that allowed people to suggest categories that already existed thus creating duplicates.
  • Decluttered header on mobile as it was getting crowded.
  • I locked down .htaccess too tightly, which blocked api_export.php. Fixed.
  • Created application for editors to apply.
  • Added audit logging to events to track changes.
  • Fixed issues with social post generator (darn non-leap years).

01/25/2026

  • Added ability to suggest new categories and add/edit/remove categories into submit.php.
  • Created custom 404 page. 404.php
  • Calendar list view now auto scrolls to today.
  • Added optional option for event owners to add a discount to their events and it will be displayed on the site.

01/24/2026

  • Added "Happening now" to the calendar.
  • Added 124 more events to the calendar.
  • Created new tool to find duplicate events by location and dates.
  • Added RSS and API links to the header.
  • Created system to email event organizers to let them know they are included on my website.
  • Added "delete my event" to submit.php.
  • Dealt with first angry event producer asking why I listed them without permission :(
  • Revisited submission/edit workflow to fix some lingering issues.
  • Added "remember me" function to login page.
  • Added editor role for future editors.
  • Reordered about.php.
  • Added admin_deleted.php to track events that request to be removed so they aren't readded.
  • Added admin_prune.php to delete events older than 2 years with no current dates.

01/23/2026

  • Started Changelog.
  • Improved SEO optimization.
  • Improved overall site security via robots.txt and .htaccess.
  • Modified .htaccess to allow for /map /submit /about and /index to work.
  • Added GZip compression to enhance page loading speed.
  • Implemented Cross-site scripting attack prevention.
  • Added CSRF protection to submit.php.
  • Improved map contrast and added US state and International border lines for better readability.
  • Created social post generator.
  • Created quickview.
  • Added social redirect to .htaccess file (/fetlife goes to Fetlife group).
  • Fixed a bug where all events were being displayed as -1 days than they were supposed to be on the calendar view.
  • Added end date to popup calendar card.
  • Enhanced performance of the map view by sacrificing some accuracy at further zoom levels.
  • Enhanced admin_submissions.php so that if someone is an official representative, it creates them an account automatically and attaches them to their event.
  • Created zombie (events with no events and no one attached to them) event cleanup tool.
  • Added user traffic tracking system.
  • Added section for virtual only large events (these show up on the map at 0,0 (off the coast of Africa)).