@perchance@lemmy.world

"If you think the review is wrong, please post on the forum..." ...where your post will be just ignored, not even to say "we're busy, we can review your site next month".

Please don't take me wrong, I do know that the 'staff' is probably a one-man staff who's already too busy setting up and maintaining the entire Perchance universe, and I can only be grateful for that. But enforcing such an over-strict flagging system that moreover doesn't give the faintest hint at what's wrong with the site probaby wasn't the best move, considering the lack of human resources.

I currently have one PG-13 stories site flagged as mature, and there's an extensive explanation why I feel the flag is unjust; and then I have a NSFW stories site completely blocked for reasons I do not know, and I've asked on the forum to unblock, to no avail.

It's sad, because I love the Perchance community, and I'm grateful for the powerful framework Perchance offers us for free, and I wanted to give something in return. I'm good at writing stories, and just wanted to offer them to the community, because I'm not the kind of person who feels comfortable at taking and taking without ever giving back anything.

Thank you anyway to the Perchance staff for the effort, the energy and the resources they put in this project. I truly appreciate it.

[–] [S] 2 points 3 days ago* (1 child)

Thank you, as always, for the important info. But this is a problem, as the new check system isn't as quick to judge as the old one (a complete review can take days), and I often realized very late that a site of mine had been excluded from the official listing, or had been totally blocked.

However, based on the info you provide, it should be possible to check if the site is on the listing, and if it's not (for whatever reason, including automatic check, manual ban list and ban word list) the switch should reflect that. If checking the official listing it too heavy on the server, maybe creating a JSON or XML snapshot updated every few hours would be better than nothing anyway.

  • source
  • parent
  • context
  •  

    The "Listed/Unlisted" switch should mirror the actual state of the generator, i.e. if it's actually listed on the generators directory or not. Currently, it only states the intention of the creator, who must go and check manually the directory at each modification of the site.

    Previously, the old links "Make public / Make private" gave an almost instant feedback, alerting the creator that there was something wrong with his site. Now the feedback is gone; and a "Listed" switch for an unlisted site is misleading...

    [–] [S] 1 point 3 days ago

    Third's charm? Let's cross fingers. I love the Perchance universe, I truly do, but this way-too-strict check system, coupled with the lack of feedback, is starting to drain my energies and my passion...

    EDIT - 3rd UPDATE (03 nov 2026)

    Since the NSFW warning is still in place, on 03/11/2026 the entire site was subjected to a meticulous, almost obsessive review aimed at finding and eliminating every single element that could trip an automated "Mature content" check. The audit covered the whole shipped codebase (page chrome, mature gate, exit gate, SEO block, Hunk static notice including its IT/ES/FR/DE translations, badge, footer, owner dialog), the full corpus (both stories, word by word), all metadata ($meta, tags, manifests, blurbs), and every image — each cover and each in-story illustration was viewed individually. No nudity, no genitalia, no sexual acts depicted anywhere: the only bare skin shown is male chests, arms and faces, which is standard PG-13 imagery.

    Changes applied on 03/11/2026

    1. Full review of all stories, removing anything that could even vaguely fall outside PG-13 limits: the historical offence is now named with the period-appropriate legal term ("the offence of sodomy"); an anatomical reference became an abstraction ("trousers that highlighted their virility"); arousal vocabulary was neutralized ("barely able to restrain himself after such prolonged abstinence"); the bedroom scenes were softened ("take off his underwear", "make love on my first date").
    2. A second gate on top of the entry gate. The entry gate already declares the site's PG-13 content; a further exit gate was added so that every link to an external NSFW site now requires explicit consent (a checkbox) plus an adult-age declaration before redirecting. Its wording was carefully drawn: parental guidance admits readers to this PG-13 site, but never to the adult-only external sites ("Continue only if you are an adult" — no exceptions).
    3. Source hygiene. The developer documentation (README) and all other files shipped with the site were scrubbed of adult-vocabulary tokens, so that even a scanner reading the raw sources finds nothing — except the two intentional user-facing adult-content declarations (the "More stories at main site (18+)" card and the Butch's Tales blurb). They exist solely to warn the reader about what awaits on the external adult sites, and every one of those links sits behind the exit gate.

    What PG-13 means on this site (again)

    The PG-13 classification applied here follows one clear, defensible line: it forbids explicit descriptions of sexual acts and of intimate anatomical parts, but it allows descriptions of kisses and of non-intimate body parts — chest, muscles, facial and body hair. A young reader without prior knowledge of sexual acts perceives only passion in these pages, never mechanics: nowhere is it described how passion is turned into acts. Vague expressions that can only be understood by a reader who already knows the acts in question remain obscure to the inexperienced reader — who can ask a parent what they mean. That parental guidance is precisely what the "PG" in PG-13 assumes for this site — while the external adult sites remain strictly adults-only, as the exit gate now states without exception.

  • source
  • [–] 2 points 5 days ago (2 children)

    For the life of me, I can't really understand why someone should downvote such a useful post... 🙄 It seems like there are "serial downvoters" lurking around; whatever their reasons, they harm the entire community.

  • source
  • [–] [S] 1 point 5 days ago

    I've now edited my main post to include a thorough and detailed report exlaining why the site is PG-13 and what elements may trigger false NSFW alerts. Please someone review it.

  • source
  • [–] 1 point 1 week ago

    It happens to me, too. I think it may be by design, to let the AI start answering sooner, at the risk of having to remove an incomplete answer and replace it with a more complete one.

  • source
  • [–] [S] 1 point 1 week ago* (last edited 1 week ago)

    Thanks, that's good advice, I'll try it!

    EDIT to add: I've done as you suggested, and then I've renamed the URLs of the two copies so that the new fork got the URL of the older (flagged) one; so far, no NSFW content warning has been issued on the fork (the warning persists on the older site, despite the URL change). Let's cross fingers. Thank you again for the suggestion!

  • source
  • parent
  • context
  •  

    TL;DR: my PG-13 gay story site got flagged for "Mature content" by the new NSFW check. I gated it, then stripped it down to an empty shell with zero content (independent scan confirms: no NSFW content, hidden or visible). The warning is still there. Bug or verdict?

    Original post (outdated):

    spoilerI run hunknown-virile-stories-pg13, a read-only archive of a few strictly PG-13 gay-themed love stories. It was quietly treated as PG-13 with no flag since its creation — until the new check rolled out, and the "Mature content" warning appeared, with subsequent exclusion from the public Generators page.

    To clear the warning, I did everything I could think of:

    Gate first. I hid the entire site behind an explicit opt-in gate describing the site's nature and requiring explicit consent. No change after 24h.

    Then demolition, piece by piece. I removed the two image-site cards, the $meta image, the last remaining story, the last shelf card, and neutralized every remotely suggestive string (SEO text, footer, AI assistant prompts, metadata tags). The scan run by 'Malicious Generator Hunter' finds zero NSFW content, hidden or visible. What's left is an empty shell: one "Write me" card, zero stories.

    The warning is still active.

    So my question is simple: is this a genuine filter verdict, or a stuck/unjustified and immodifiable flag? The check should run roughly within three hours from last modification, but days go by and nothing changes. If it's a genuine, what exactly is it reacting to on a page with no content at all, moreover gated behind a custom block? Happy to provide any detail an admin needs.

    @perchance@lemmy.world

    EDIT - 1st UPDATE (outdated):

    spoilerFollowing RudBo's suggestion, I have: 1) duplicated the "NSFW" site (hunknown-virile-stories-pg13) to a new fork; 2) renamed the old site as "hunknown-virile-stories-pg13-old"; renamed the new fork as "hunknown-virile-stories-pg13" (the exact URL of the old one); 4) restored the entire content of the site, i.e. the content that was once flagged as NSFW. --> RESULT: after 9 hours the new fork is still NOT FLAGGED, while the old site (now hunknown-virile-stories-pg13-old), an empty shell, is still flagged.

    With the fork I've lost the site stats and my readers have lost their bookmarks, but at least the fork is not flagged.

    EDIT - 2nd UPDATE (outdated):

    spoilerAfter a few days, the "Mature content" warning is back, but there are no contents that exceed the PG-13 guidelines. Here is a complete and detailed report to prove that the filter is wrongly triggered by PG-13 elements.

    ###1. What "PG-13" means for this site PG-13 means content suitable for a 13-year-old with parental guidance: no pornography, no nudity presented sexually, no depiction of sexual acts. Romantic relationships — including romantic relationships between men — told with tasteful, non-graphic sensuality are consistent with PG-13 when an opt-in notice is shown before entering. This generator is exactly that: a mild PG-13 edition of a couple of my stories, fronted by an explicit opt-in gate.

    2. Safeguards already in place

    • Entry gate (opt-in). Every first-time visitor sees a "Before you enter" dialog: it states the site is an archive of romantic stories about love between men in a mild PG-13 edition, notes that external links may host mature content, and offers Enter / Leave (Leave returns to https://perchance.org/). Consent is stored locally; the page chrome stays completelly hidden until consent is given.
    • No generative AI on this site, neither textual nor pictorial: there is only an inactive AI textual assistant that runs in static mode, showing only a fixed message translated in any language; it cannot suggest stories, fetch any knowledge base or post anything.
    • Moderated, rate-limited guestbook. Channels (Guestbook / News / Typos) run at 1 message per 15 seconds and 10 per 10 minutes, with a banned-users list and admin login. Vote comments (capped at 1000 characters) are posted through the same moderated guestbook channel.
    • Accurate metadata. $meta title, description and tags declare the PG-13 nature (pg-13, sfw, gay, love stories, romance); the listing image is an SFW cover.
    • Independent scan. An indipendent scan didn't found a single warning regarding mature or inappropriate content.

    3. Review of the elements a coarse filter may flag

    • Page SEO text (fixed proactively): The <noscript> block, the JSON-LD structured data and the footer SEO line previously used adult-site vocabulary ("erotic", "sex stories", "man on man"). That wording was inherited verbatim from the NSFW main site and has been rewritten in romance framing ("Romantic illustrated stories about love between men, in a mild PG-13 edition…"). A filter trained on that old wording will clear once the page is re-scanned.

    • Story text: The two stories are the mild PG-13 editions. Their romantic scenes between consenting adults are tasteful and non-graphic: kissing, embraces and romantic context, with no depiction of genitalia and no pornographic detail of sexual acts. This is precisely the "parental guidance" band PG-13 is designed for, and both titles are labeled (PG-13).

    • Images (evidence for PG-13): All site images — the listing image, the two story covers (a uniformed sailor seen from behind; a candle) and the "Other resources" shelf covers, including the new PG-13 GayDemon crop — were submitted to a third-party AI content check: all rated within PG-13 limits, several at PG or G. No nudity, no sexual acts depicted anywhere. A male hairy chest with visible nipples or two men holding hands looking at each other may (I guess) trigger a false positive, but it's still widely within the PG-13 boundaried.

    • "Other resources" shelf (evidence for PG-13): Per PG-13 practice for links to gated external sites, the shelf meets both requirements: (a) every linked cover image is PG-13 per the check above; (b) every adult destination is explicitly declared with an "External site — NSFW" label, as required by the PG-13 guidelines, so age evaluation at the destination is the destination's responsibility once the reader clicks through. The whole shelf additionally sits behind this site's own opt-in gate. Yet, the words "NSFW" and "homoerotic" used to correctly label the content of the destination sites may trigger a false NSFW alert.

    • Dynamic / user-generated content.

      • Guestbook and vote comments: rate-limited, length-capped, admin- moderated with bans, as described in §2. A single offending message can be removed; the surfaces themselves are PG-13 by rule.
      • AI assistant: static on this edition (see §2). The single questionable string ever present — a knowledge-base fallback inherited from the main site ("…explicit man-on-man erotica") — lived in dead code never executed here and has been replaced with a neutral PG-13 stub. No visitor ever saw it, and no scanner will again.
      • Wording hardened site-wide: tagline and $meta.description now say "queer fiction" instead of "homoerotic stories", removing the last trigger-prone adjective from headings and crawler metadata.

    EDIT - 3rd UPDATE (03 nov 2026)

    Since the NSFW warning is still in place, on 03/11/2026 the entire site was subjected to a meticulous, almost obsessive review aimed at finding and eliminating every single element that could trip an automated "Mature content" check. The audit covered the whole shipped codebase (page chrome, mature gate, exit gate, SEO block, Hunk static notice including its IT/ES/FR/DE translations, badge, footer, owner dialog), the full corpus (both stories, word by word), all metadata ($meta, tags, manifests, blurbs), and every image — each cover and each in-story illustration was viewed individually. No nudity, no genitalia, no sexual acts depicted anywhere: the only bare skin shown is male chests, arms and faces, which is standard PG-13 imagery.

    Changes applied on 03/11/2026

    1. Full review of all stories, removing anything that could even vaguely fall outside PG-13 limits: the historical offence is now named with the period-appropriate legal term ("the offence of sodomy"); an anatomical reference became an abstraction ("trousers that highlighted their virility"); arousal vocabulary was neutralized ("barely able to restrain himself after such prolonged abstinence"); the bedroom scenes were softened ("take off his underwear", "make love on my first date").
    2. A second gate on top of the entry gate. The entry gate already declares the site's PG-13 content; a further exit gate was added so that every link to an external NSFW site now requires explicit consent (a checkbox) plus an adult-age declaration before redirecting. Its wording was carefully drawn: parental guidance admits readers to this PG-13 site, but never to the adult-only external sites ("Continue only if you are an adult" — no exceptions).
    3. Source hygiene. The developer documentation (README) and all other files shipped with the site were scrubbed of adult-vocabulary tokens, so that even a scanner reading the raw sources finds nothing — except the two intentional user-facing adult-content declarations (the "More stories at main site (18+)" card and the Butch's Tales blurb). They exist solely to warn the reader about what awaits on the external adult sites, and every one of those links sits behind the exit gate.

    What PG-13 means on this site (again)

    The PG-13 classification applied here follows one clear, defensible line: it forbids explicit descriptions of sexual acts and of intimate anatomical parts, but it allows descriptions of kisses and of non-intimate body parts — chest, muscles, facial and body hair. A young reader without prior knowledge of sexual acts perceives only passion in these pages, never mechanics: nowhere is it described how passion is turned into acts. Vague expressions that can only be understood by a reader who already knows the acts in question remain obscure to the inexperienced reader — who can ask a parent what they mean. That parental guidance is precisely what the "PG" in PG-13 assumes for this site — while the external adult sites remain strictly adults-only, as the exit gate now states without exception.

    Request

    The NSFW flag appears to come from a coarse automated signal (old SEO wording since rewritten, adult-destination labels that are in fact compliance declarations, and possibly a transient guestbook message) — not from the site's actual content, which an independent scan and a third-party image audit both clear. We ask that hunknown-virile- stories-pg13 be restored to PG-13 status, or that a human reviewer indicate the exact content that triggered the flag so it can be addressed directly.

    @perchance@lemmy.world

    [–] 1 point 1 week ago*

    The easiest way is to go to edit mode and add a few comment lines ( = lines starting with // ) to the main list page; here is some of my own preferences (change it at will):

    // === USER PREFERENCES (apply to every session) ===

    // - The following preferences (including this one) should be placed in a dedicated User Preferences section in src/README.md; the source of truth of the User Preference is the main.pjs of this generator, that can be modified by the user only. The source of truth must be checked for changes whenever the User Preferences are read from the README.md file.

    // - If the request is ambiguous, or two or more ways of doing it come to mind — especially if one departs from the last decision or touches something worth keeping — stop and ask before acting, sketching the alternatives in one or two lines and letting the user choose: never settle a doubt on his behalf.

    // - Don't speculate on the user's intentions or unspoken desires: ask them to clarify.

    // - If you're running in circles and something seem illogical, ask the user, as he has some basic knowledge about coding and how the Perchance infrastructure works.

    // - Before making any code changes, explain the changes you intend to make and wait for the user's consent.

    // - If you identify errors on code you did NOT change yourself, or pre-existing errors, ask the user to perform a hard refresh (F5) BEFORE investigating the error (a harness-side false positive may disappear after an F5).

    // (add your own preferences)

    When done, you issue --only for the first time-- an order like "Read the User Preferences from main.pjs". The AI agent will create a README.md file in src/ with your preferences. From now on, every time you think the AI agent is not following your Preferences, you just tell him: "Read README", and he will read again your preferences, checking if in the meantime you have added/modified the comment lines in the main list editor.

  • source
  • parent
  • context
  • [–] 1 point 2 weeks ago (2 children)

    I gave similar instructions to my AI agent, to ask me if it got confused; I've written this info in the README.md file in src, and I ask the agent to read it now and then, when I feel he's forgotten, or when I start a fresh new chat.

  • source
  • [–] 3 points 1 month ago

    When I've read that the problem was fixed, I tried again and still couldn't save; the error message was different, though: something like "The perchance server has timed out. Your generator was NOT saved". I checked what was wrong and realized that my browser was sending a whole lot of data (apparently, the entire generator) to cloudflareinsights.com.
    This huge upload was using up my entire upload bandwidth, so the generator couldn't be sent to the Perchance server.

    I blocked the scripts related to cloudflare (using NoScript), the bandwidth immediately freed up, and the save started working again.

  • source
  • [–] 1 point 1 month ago

    Same here. Last save on Sep 28 at 20:39 UTC, then I began getting errors or endless "saving". It's comforting knowing that it's a general problem and not something bad into my code/src files, because I'm sure the devs will fix it sooner or later.

  • source
  • [–] [S] 1 point 1 month ago* (last edited 1 month ago)

    For anyone remotely interested: PROBLEM SOLVED.
    To fool the stupid nsfw filter, I've applied a stupid trick: a simple diagonal texture superimposed to the image; it's barely visible and adds a touch of "artsy" to the image. And while I was there, I created a vector text to replace the "totally not genAI" 😂 previous one.
    The Content Warning has gone (for the PG-13 site: the other two are definitely NSFW, and not for the $meta.image... 😅)
    Final results for nsfw / pg13 / stories sites:

  • source
  •  

    I have an image generator devoted to male beauty. It's strictly PG-13: I have enforced a strict control over prompts and images published in the gallery, and actively remove (via bannedPromptPhrases) possible non-PG13 content. The generator is immaculate.

    And yet, recently it got flagged as possibly nsfw and locked behind a Content Warning, with the consequence that the generator cannot be listed anymore on the public listing, even if I set it as 'public'.

    I've run extensive tests, removing, changing, adding and rewording, and the culprit is the site image in the $meta block. The unacceptable, outrageous, obscene image is this one:

    Please someone tell me (and tell the Perchance staff) that I'm not crazy, and this image is perfectly safe and PG13-compliant.

    PS: The test I've last run can't be mistaken:

    • original site: flagged;
    • clone of the original site: flagged
    • clone with the "image = ..." line removed: NOT flagged
    • clone with the image line re-added: flagged.
    view more: next ›