Community: Discover, Share and Connect
The Prompt2Love community is a public space you can read without an account and contribute to once you sign in. Share your prompts and skills as posts, sort a discovery feed by Hot, New or Top, like, save and vote, comment in threads, fork what you find into your own library, follow creators and get notified when people engage with your work. Every public post and profile gets a permanent, SEO-friendly URL with structured data, so your best prompts are findable on Google too.
Discovery Feed with Hot, New and Top Sorting
The feed opens on the 'for_you' tab sorted by 'hot'. Hot ranking is recomputed every 15 minutes by a background job: it combines likes, saves, forks and comments into an engagement score, then divides by the age of the post so fresh content rises and stale content falls, and it only considers posts from the last 7 days. New sorts strictly by post time; Top Today/Week/Month rank by likes within the last 24 hours, 7 days or 30 days. You can narrow the feed by category, AI model and tool, and it loads 20 posts per page with infinite scroll. For visitors who are not signed in, the feed is cached for 5 minutes so it stays fast.
- Sort options: Hot (default), New, Top Today, Top Week, Top Month, Top All
- Hot score = (likes + 2x saves + 3x forks + comments) / (hours + 2)^1.5, limited to the last 7 days, recomputed every 15 minutes
- Filter by category, model and tool; language de/en
- Categories include website, productivity, app, ads, marketing, design, video, image, writing, code, research, other
- Post types: prompt share, skill share, result showcase
- Infinite scroll, 20 posts per page; anonymous feed cached for 5 minutes
Likes, Saves and Voting
Likes and saves bump the post's denormalized counts, while a vote stores a per-user value of +1 or -1 and the vote score is recalculated live. Every action is idempotent: liking the same post twice does nothing extra, and casting a new vote simply replaces your old one. The interface updates immediately and reconciles with the server. Likes, saves and upvotes notify the post's author; downvotes are silent. If you are not signed in, a soft-wall gate prompts you to log in before you can interact - Pro users bypass soft-walls.
- Like (heart) and save (bookmark) increment denormalized counts; unlike/unsave never go below zero
- Vote is plus or minus 1 per user; the vote score is recomputed live, not stored as a running total
- All actions idempotent - a vote is an upsert that then recalculates
- Notifications fire on like, save and upvote; downvotes stay silent
- Anonymous and inactive users hit a soft-wall login gate; Pro users bypass it
Forking Posts to Your Library
Forking a post creates a new private (non-public) prompt or skill that you own, inheriting the original's title, description, content or instructions, tags, AI tool, language and type. The copy records where it came from: the source URL points back to the community post, the original author is stored for attribution, and a backlink keeps the genealogy. Forking increments the post's fork count, notifies the author and shows a 'Saved to Library' toast. If you later publish a post that links a forked item, the system auto-detects the community source and links it. The post must be public and not deleted, otherwise you get a 404; identical forks are allowed.
- Creates a private copy regardless of the original's visibility; inherits title, description, content/instructions, tags, AI tool, language and type
- Records source URL /community/post/{slug}, the original author, and a fork backlink
- Atomically increments the post's fork count and notifies the author
- Auto-source detection links the community origin when you re-share a forked item
- No duplicate-fork guard - you can fork the same post more than once
- Reaching 10 total forks unlocks the 'aha_forker' milestone
Comments and Threaded Replies
Comments support nesting, so replies form a tree with no depth limit, and they are sorted chronologically. Each comment is 1 to 5,000 characters and you can post up to 10 per minute. When you comment, up to 10 @mentions are extracted and those users are notified along with the post's author (you never notify yourself); a reply also notifies the author of the parent comment. Comments have their own like and vote systems separate from posts. Inline comments show in the feed and full threads appear on the post detail page. Editing a comment marks it as edited (without keeping a history), and deletion is permission-checked so only the author or an admin can remove it.
- Nested replies via parent comments, no depth limit, sorted oldest-first
- Content 1 to 5,000 characters; rate-limited to 10 comments per minute per user
- Up to 10 @username mentions per comment trigger mention notifications
- Separate like and vote (plus or minus 1) systems for comments
- A reply notifies the parent comment's author; a top-level comment notifies the post author (unless it's yourself)
- Editing sets an 'edited' flag (no edit history); only the author or an admin can delete
Public Sharing and SEO URLs
When a post is created it gets a unique, human-readable slug that never changes - even if you edit the caption - with a UUID appended only if there's a collision. The share button copies the post's /community/post/{slug} URL to your clipboard with a toast. The detail page pre-renders SocialMediaPosting JSON-LD with author, headline, publish and modified dates and interaction stats, cached for 5 minutes, and publishing fires an IndexNow ping so search engines learn about the new URL quickly. If a post is soft-deleted, old links return HTTP 410 Gone rather than a generic error, and non-public posts return 404.
- Unique, immutable slug; editing the caption never changes the URL
- Share button copies /community/post/{slug} to the clipboard with a toast
- SocialMediaPosting JSON-LD (author, headline, dates, interaction stats), cached 5 minutes
- IndexNow ping on publish for fast search-engine discovery
- Soft-deleted posts return HTTP 410 Gone for old links; non-public posts return 404
Public User Profiles
A profile shows your display name, username, bio, website and avatar, plus follower, following, post, prompt and skill counts. Content is organized into tabs: Posts, Prompts, Skills, Activity (visible only to you - your likes, saves, follows and comments), Followers and Following. Old /profile/{userId} links 301-redirect to the username URL. Editing a profile updates your username (must be unique, reserved words are rejected), display name, bio, website, avatar (kept in sync with your account image), socials and notification preferences. Profiles are server-rendered, revalidate every 5 minutes, emit Person and breadcrumb JSON-LD, and stay noindex until they have a bio or posts; a public-profiles list of users with at least one public post (cached 5 minutes) feeds the sitemap.
- URL /profile/{username}; legacy /profile/{userId} 301-redirects to it
- Tabs: Posts, Prompts, Skills, Activity (owner-only), Followers, Following
- Username is unique and rejects reserved words; avatar syncs to your account image
- Server-rendered with 5-minute revalidate; Person and breadcrumb JSON-LD; noindex until a bio or posts exist
- Public-profiles endpoint (users with at least 1 public post, cached 5 minutes) powers the sitemap
- Stats include total downloads (sum of public prompt downloads) and total upvotes
Following Creators and Notifications
When you follow someone they get a follow notification, and every new public post they publish sends you a 'new_post' notification (delivered in the background so it never slows down their publishing). A bell-icon notification center shows your unread count, polled every 30 seconds, with mark-one and mark-all-read and per-type opt-out preferences that are on by default. Notification types cover like, save, fork, comment, comment reply, comment like (deduplicated within 5 minutes), follow, mention and new post, plus support-ticket replies. A daily cleanup job removes read notifications older than 60 days, unread ones older than 180 days, and any whose target was deleted.
- Following someone notifies them; every new public post they publish sends you a 'new_post' notification (delivered in the background)
- Notification types: like, save, fork, comment, comment reply, comment like (5-minute dedup), follow, mention, new post, plus ticket reply
- Bell-icon center: unread count polled every 30 seconds, mark-one and mark-all-read
- Per-type opt-out preferences, on by default
- Daily cleanup removes read after 60 days, unread after 180 days, and orphaned notifications
Reporting Posts
You can report a post by choosing one of five reasons - spam, inappropriate, harassment, copyright or other - and adding an optional description; the report is created with a 'pending' status. To prevent abuse, you can file 5 reports per hour, which drops to just 1 per day for users who have had more than 10 reports dismissed. Reporting the same post twice returns a 409 conflict, and reporting your own post returns a 400. Reports collect into an admin queue for review.
- Reasons: spam, inappropriate, harassment, copyright, other; optional description
- New reports start with status 'pending'
- Rate limit: 5 reports per hour, dropping to 1 per day for users with more than 10 dismissed reports
- Duplicate report returns 409; reporting your own post returns 400
- Reports feed an admin review queue