> ## Documentation Index
> Fetch the complete documentation index at: https://docs.profy.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# Explore

> Browse and publish promo notes: sorting and column rules, interaction idempotency, publishing requirements, and review states

Explore (`/explore`) is where users share what they made with experts. See something good, jump straight to the same expert and try it yourself — that's the whole point.

## Four tabs

| Tab | Content | Sign-in required |
| - | - | - |
| **Discover** | Public note feed (default) | No |
| **My notes** | Your published notes and drafts | Yes |
| **Favorites** | Experts you favorited | Yes |
| **Likes** | Notes you liked | Yes |

## The feed

### Sorting

| Sort | Based on |
| - | - |
| Recommended | Curated slots plus composite ranking (default) |
| Newest | Publish time |
| Most viewed / liked / favorited / commented | The matching counter |
| Following | Creators you follow |

Choosing "Following" while signed out returns an empty list — that's expected, not a load failure. Available sorts are operations-configurable; passing a disabled sort value falls back to the default instead of erroring.

### Paging and columns

* **24 items per page**, capped at 50, loaded by infinite scroll
* Waterfall columns by viewport width: **\<1024px two, 1024–1279px three, ≥1280px four**
* Columns are filled by a JS shortest-column greedy pass, so appending the next page **never moves already-rendered cards**

> [!NOTE]
>
> The first row always follows data order left to right, so the top recommended note is always in the top-left slot.

## Note types

Media type is **derived** from content, not chosen by a separate switch: an HTML file makes it an HTML note; otherwise video makes it a video note; otherwise audio makes it a music note; otherwise it's an image note.

> **Image notes**
>
> Text plus screenshots of the scenario and result

> **Video notes**
>
> Screen recordings of the process

> **Music notes**
>
> AI music, with hand-written LRC lyrics and timestamping

> **Interactive HTML notes**
>
> Embedded interactive pages, like AI-generated mini games

> [!WARNING]
>
> HTML notes **require a manually uploaded cover** — a web page can't be auto-frame-grabbed, and without a cover there's no thumbnail in the feed. Cover dimensions are stored too, so the feed can reserve space before the image loads and avoid layout jitter.

## Interactions

| Action | Idempotent | Notes |
| - | - | - |
| Like / favorite | ✅ Toggle; repeated taps don't stack | One endpoint, differentiated by kind |
| Comment | ❌ Creates a new one each time | Sign-in required |
| Share | ❌ Increments each time | Share counter |
| View | No per-person dedup | See below |

### How views are counted

Every detail-page open counts as a view, with **no per-identity dedup**. Two filters apply:

* **Bot filtering**: common crawler user agents, and requests with no user agent, never count
* **Rate limiting**: at most **60 views per 60 seconds** per identity; the rest are dropped

Views are written to Redis first and flushed to the database every 15 seconds, so a freshly refreshed number can lag by that much. Signed-in users additionally get a permanently deduplicated view record, which serves as the conversion-rate denominator.

### Who can delete a comment

Three identities can delete the same comment:

1. The comment's author
2. The note's author
3. An admin with content operations permission

There's no separate comment moderation console — authors delete directly in the note.

## "Make one like this"

The button on a note's detail page jumps to the expert that note is linked to, carrying the note ID as an attribution marker. If you later unlock that expert, the conversion is credited to that note.

Without a note ID there's **no attribution** — the system doesn't guess, so unlocks that start from the expert marketplace aren't credited to any note. Attribution writes are best-effort and never block the unlock.

## Publishing a note

### Requirements

Any signed-in user can publish; **creator status is not required**. The one hard condition: you must have used the expert you're linking to (a conversation must exist), otherwise you get a 403.

### Flow

**1. Open the composer**

Explore → "My notes" tab → "Publish note".

**2. Pick the expert**

The list only contains experts you've used.

**3. Write the note**

Upload media and a cover, then write the title and body.

**4. AI assist (optional)**

"AI generate" returns copy in a few seconds; "AI generate image" is an async task you poll after submitting, taking up to roughly four minutes.

**5. Submit for review**

Once approved, it appears in Explore.

### Submit validation

Three checks, each with its own error:

| Check | Error |
| - | - |
| Non-empty title | `title is required` (400) |
| Non-empty body | `description is required` (400) |
| At least one medium (image / video / audio / HTML) | `media is required` (400) |

### Note states

| State | Meaning | Label you see |
| - | - | - |
| Draft | Being edited, not submitted | Draft |
| Pending review | Submitted, awaiting review | In review |
| Published | Live in Explore | Published |
| Rejected | First publish was rejected | Rejected |
| Offline | You took it down yourself | Offline |
| Admin takedown | Removed by an admin, with a reason | Rejected |

Rejection and admin takedown both display as "Rejected" on your side because the next step is identical: edit and resubmit. The reason text distinguishes the specific problem.

When you revise a published note, the **old version stays live** while the new content queues for review. While a submission is pending you can't edit or resubmit (409). You can withdraw the pending submission to get back to an editable state.

## Failures and fixes

| Message | Cause | What to do |
| - | - | - |
| 403 `You have not used this expert` | Linked an expert you've never used | Have one conversation with it first |
| 409 pending submission exists | Your previous submission is still under review | Withdraw it or wait |
| 400 missing title / body / media | A required field is empty | Fill it in |
| "Following" tab is empty | Not signed in, or following nobody | Sign in and follow some creators |
| View count isn't moving | Rate limited, or your UA looks like a bot | Use a normal browser; expect \~15s flush lag |
| HTML note has no image in the feed | No cover uploaded | Add a cover and resubmit |
| Home-feature button points to subscriptions | No paid subscription | See below |

## Featuring on the home page

Pushing a note to the home page requires **an active paid subscription** or **an admin role** — either one suffices. Free users see a prompt to visit the subscription page.

When a subscription expires, a background job demotes featured notes back to regular ranking. Admin-granted pins are not affected by that demotion.

## Related

> **[Expert marketplace](/en/documentation/marketplace/expert-marketplace.md)**
>
> Find the expert you want to share

> **[Subscription plans](/en/documentation/billing/subscription-plans.md)**
>
> Home-feature and other paid perks


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.