f

Stars and mentions

Last 30 days, Oct 4 – Nov 2

GitHub stars3,256
mentions35
058116174232Oct 4Oct 18Nov 2
UTC days · repositories f owns14 repositories

Package downloads

Cumulative recorded downloads · since 2025-10-20

npm118K
029.5K59K88.5K118KOct 4Oct 18Nov 2
Oct 22npm: 4/9 packages observed

Across 9 known packages in repositories f owns. Cumulative totals include recorded downloads before the selected range. Missing observations leave gaps; totals may be incomplete.

Top repositories

f’s repositories ranked by pull request authors, as on trending.

Loading

Contributes to

Repositories outside f’s account where f opened or reviewed pull requests in the past 365 days.

Who noticed f

Everyone who starred or forked f’s repositories since the archive began in 2011.

Notable accounts

Ordered by the stars their own repositories have received.

Biggest fans

Accounts that starred the most of these repositories.

Breakout weeks

Each repository’s best week of new stars, with the release published around it.

Mentions

34posts
Nov 30 posts
  1. 全球最大的开源提示词库: f/prompts.chat t.co

    1 like · 297 views
  2. Building a Self-Hosted Prompt Library UI with TailwindCSS and Radix Dialog Building a Self-Hosted Prompt Library UI with TailwindCSS and Radix Dialog When evaluating f/prompts.chat for internal deployment, the first friction point wasn't the backend—it was the UI layer for browsing, searching, and injecting prompts into existing AI workflows. The repository offers a clean prompt-sharing architecture, but integrating it into a production developer portal requires solving three specific UI problems: 1. Accessible modal overlays for prompt preview without disrupting screen reader navigation 2. Token-aware textarea components that provide visual feedback when prompt length approaches model limits 3. CSS containment strategies to prevent layout thrashing when rendering thousands of prompts with dynamic Markdown content The Broken Pattern: Direct DOM Manipulation for Modals Our initial prototype used a naive approach—toggling display: none on a modal wrapper and manually managing focus with document.querySelector. This broke immediately: // Anti-pattern: breaks screen reader focus trapping const showPrompt = (id: string) => { document.getElementById('modal').style.display = 'block'; document.getElementById('modal-content').focus(); // ❌ Lost context }; Root cause: No focus restoration on close, no aria-modal="true" attribute, and animations triggered layout recalculations on every frame due to animating width/height directly. Production Fix: Radix Dialog with TailwindCSS Transitions Switching to Radix Primitives solved the accessibility contract while keeping TailwindCSS for styling: import * as Dialog from '@radix-ui/react-dialog'; import { useEffect, useRef } from 'react'; interface PromptModalProps { prompt: { id: string; title: string; content: string; tokens?: number }; open: boolean; onClose: () => void; } export function PromptModal({ prompt, open, onClose }: PromptModalProps) { const textareaRef = useRef<HTMLTextAreaElement>(null); useEffect(() => { if (open && textareaRef.current) { textareaRef.current.select(); } }, [open]); return ( <Dialog.Root open={open} onOpenChange={onClose}> <Dialog.Portal> <Dialog.Overlay className="fixed inset-0 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0" /> <Dialog.Content className="fixed left-[50%] top-[50%] z-50 w-full max-w-2xl translate-x-[-50%] translate-y-[-50%] rounded-lg border border-gray-200 bg-white p-6 shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]" aria-describedby="prompt-description" > <Dialog.Title className="text-xl font-semibold text-gray-900"> {prompt.title} </Dialog.Title> <Dialog.Description id="prompt-description" className="sr-only"> Prompt content for copying into your AI workflow </Dialog.Description> <TokenAwareTextarea ref={textareaRef} value={prompt.content} maxTokens={prompt.tokens} className="mt-4" /> <div className="mt-4 flex justify-end gap-2"> <button onClick={() => { navigator.clipboard.writeText(prompt.content); }} className="rounded bg-blue-600 px-4 py-2 text-sm font-medium text-white hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2" > Copy to Clipboard </button> <Dialog.Close asChild> <button className="rounded border border-gray-300 px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50"> Close </button> </Dialog.Close> </div> </Dialog.Content> </Dialog.Portal> </Dialog.Root> ); } Token-Aware Textarea with Visual Feedback When integrating with AI gateways (we route through https://b-lost.com/v1 for multi-provider fallback), token limits vary by model. The textarea needs to warn users before they hit the ceiling: import { forwardRef, useMemo } from 'react'; import { encode } from 'gpt-tokenizer'; // or tiktoken interface TokenAwareTextareaProps { value: string; maxTokens?: number; className?: string; } export const TokenAwareTextarea = forwardRef< HTMLTextAreaElement, TokenAwareTextareaProps >(({ value, maxTokens = 4096, className = '' }, ref) => { const tokenCount = useMemo(() => encode(value).length, [value]); const isNearLimit = tokenCount > maxTokens * 0.9; const isOverLimit = tokenCount > maxTokens; return ( <div className={className}> <textarea ref={ref} value={value} readOnly rows={12} className={`w-full rounded border p-3 font-mono text-sm focus:outline-none focus:ring-2 ${ isOverLimit ? 'border-red-500 bg-red-50 focus:ring-red-500' : isNearLimit ? 'border-yellow-500 bg-yellow-50 focus:ring-yellow-500' : 'border-gray-300 focus:ring-blue-500' }`} aria-describedby="token-count" /> <div id="token-count" className={`mt-1 text-right text-xs ${ isOverLimit ? 'text-red-600' : isNearLimit ? 'text-yellow-600' : 'text-gray-500' }`} > {tokenCount} / {maxTokens} tokens {isOverLimit && ' — exceeds model limit'} </div> </div> ); }); TokenAwareTextarea.displayName = 'TokenAwareTextarea'; CSS Containment for Prompt List Performance Rendering 2,000+ prompts with Markdown preview caused 300ms layout recalculations. Adding contain: layout style to each card container dropped it to 45ms: /* Tailwind arbitrary property */ .prompt-card { @apply rounded-lg border border-gray-200 p-4; contain: layout style; } For dynamic height cards with auto-rows-auto grid, use content-visibility: auto instead: <div className="grid auto-rows-auto gap-4 md:grid-cols-2 lg:grid-cols-3"> {prompts.map((p) => ( <article key={p.id} className="prompt-card [content-visibility:auto]" style={{ contentVisibilityAutoStateCallback: true } as any} > {/* Card content */} </article> ))} </div> The Remaining Question: State Synchronization f/prompts.chat's architecture assumes prompts are relatively static. But when integrating with live AI sessions, you need bidirectional sync—users might annotate prompts with execution results or pin favorites. Do you: 1. Fork the prompt object into session-local state and accept drift? 2. Extend the backend schema with user-specific metadata (breaking self-hosted simplicity)? 3. Store deltas in localStorage and accept that shared devices lose context? Each choice trades off data consistency, deployment complexity, and user experience. What's your approach when the upstream data model doesn't match your runtime needs?

  3. YouTube · · YouTube description · Tool Metrik · f/prompts.chat

    Nearly 2,500 FREE AI Prompts, Plugged Into Claude Code Found on GitHub: prompts.chat (f/prompts.chat), a free, open-source library of AI prompts with 172K stars. The site lists 2,494 prompts plus 86 agent skills and 17 workflows across coding, writing, business, images, video and more. Its MCP server plugs the whole library into Claude Code: in our real run, Claude searched the library and pulled the best prompt for a code review. In this Reel: • The repo (172K stars) and the site • 2,494 prompts, 86 skills, 17 workflows (counts on the site, 8 Oct 2026) • Connecting it to Claude Code with the MCP server • A real Claude Code run finding the best prompt for a task Full test with every number: "Claude Code for Free: I Tested 3 Setups on a Real Project" (tap the related video above). Links GitHub: f/prompts.chat Site: prompts.chat About this Reel • Counts as shown on prompts.chat and GitHub on 8 October 2026; they change as the community adds prompts. • The Claude Code run is real: Claude Code 2.1.292 with only the public prompts.chat MCP server (prompts.chat) allowed. • Prompts are public domain (CC0); the code is MIT-licensed. Narration is an AI voice. Not affiliated with prompts.chat or Anthropic. #Shorts #ClaudeCode #AITools

    38 views
  4. CVE-2026-28412: Resource exhaustion through unlimited connections (DoS) > Textream's WebSocket server imposed no limit on concurrent connections. Flooding it exhausted CPU and memory and could freeze the app during a live session. Summary In Textream for macOS prior to 1.5.1, the DirectorServer WebSocket server imposed no limit on concurrent connections. Impact Combined with a broadcast timer sending state to all clients every 100 ms, an attacker could exhaust CPU and memory by flooding the server, freezing and crashing the application during a live session. Fix Update to 1.5.1 or later. If you run your own server, cap concurrent connections and limit connections per source. References: - NVD: nvd.nist.gov - GitHub Security Advisory: github.com/f/textream/security/advisories/GHSA-qr… - Fix commit: github.com/f/textream/commit/3524fa96f98ba17025b4… - CVE record (MITRE): cve.org - CVE record (Feedly): feedly.com --- Originally published at iamcanturk.dev.

  5. CVE-2026-28403: Missing WebSocket origin validation (Cross-Site WebSocket Hijacking) > Textream's local WebSocket server did not validate the Origin header. A malicious web page visited by the user could silently connect to it and send commands. Summary In Textream for macOS prior to 1.5.1, the DirectorServer WebSocket server accepted connections from any origin without validating the HTTP Origin header during the handshake. Impact A malicious web page visited in the same browser session could silently connect to the local WebSocket server and send arbitrary commands. Fix Update to 1.5.1 or later. If you write your own WebSocket server, compare the Origin header against an allowlist during the handshake and reject anything that doesn't match. References: - NVD: nvd.nist.gov - GitHub Security Advisory: github.com/f/textream/security/advisories/GHSA-wr… - Fix commit: github.com/f/textream/commit/f5ebad82750b9313386c… - CVE record (MITRE): cve.org - CVE record (Feedly): feedly.com --- Originally published at iamcanturk.dev.

  6. f/prompts.chat ‼️IMPORTANTE ‼️ He montado una app de gestión de patrimonio en tiempo real para: → Cuenta Personal → Autónomos → Empresas PRUÉBALA AHORA: fider.app Si te ha gustado el contenido: 1. Sígueme en 👉 @NicoGarcia_IA 2. Mándaselo a tu amig@ 3. Dale like y RT al primer post del hilo ❤️

    1 like · 45 views
  7. Found a really useful GitHub repo for developers. prompts.chat has a collection of prompts for ChatGPT, Claude, Gemini, and other AI models Could be handy when you're stuck or looking for a starting point Save this and thank me later 😅 f/prompts.chat

    3 likes · 1 repost · 127 views
  8. YouTube · · YouTube description · Repo Radar · f/prompts.chat

    prompts.chat: The Hottest HTML Repo on GitHub Right Now In this video, we break down f/prompts.chat - one of the hottest open-source projects on GitHub right now. f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy. It has already earned 173,526 stars on GitHub and is written primarily in HTML. We look at what it does, why developers are paying attention to it right now, and who should try it. 📂 Repo: f/prompts.chat 🌐 Stars: 173,526 | Language: HTML | Forks: 22,197 🔔 Subscribe for daily picks of the hottest GitHub repos: / @reporadar #github #opensource #programming keywords: coding, developer tools, github, opensource, programming, software, tech

    1 view
  9. YouTube · · YouTube description · Insight AI · f/prompts.chat

    Prompts.chat: f.k.a; Playnite; Plane: Open-source Jira | GitHub Curated Picks | 2026-10-20 Chapters: 00:00 2026-10-20 | GitHub Curated Picks 00:05 Pick #1 Prompts.chat 00:32 Pick #2 Playnite 00:48 Pick #3 Plane GitHub Curated Picks reviews 3 source-verified repositories selected for developer usefulness, not popularity position. Each pick is checked against its GitHub repository, README, release evidence, and recent commit; pick numbers are editorial order. The compact card keeps rank, signal, why it matters, and next check together while the ledger preserves direct URLs and release evidence. Treat the list as an educational review surface, not software endorsement, and verify license and maintenance before adoption. Published: 2026-10-20 Review window: daily Curated repository picks: - Pick #1 Prompts.chat | Latest commit | Fix homepage stargazer CTA link pointing to 404 /stargazers page | f/prompts.chat - Pick #2 Playnite | Latest commit | Don't override online installer config in Appveyor build | JosefNemec/Playnite - Pick #3 Plane | Latest commit | Recent commit verified | makeplane/plane Chapters: 00:00 2026-10-20 | GitHub Curated Picks 00:05 Pick #1 Prompts.chat 00:32 Pick #2 Playnite 00:48 Pick #3 Plane 01:10 Watch Next 01:18 Educational Use Only Top comment prompt: Which repository would you verify first, and what release or commit evidence matters most? Source ledger: Direct source URLs: - github.com/trending - api.github.com - github.com/f/prompts.chat/blob/main/README.md - github.com/f/prompts.chat/releases - github.com/f/prompts.chat/commit/e78128539a745e43… - f/prompts.chat - api.github.com - JosefNemec/Playnite - github.com/JosefNemec/Playnite/releases/tag/10.63 - github.com/JosefNemec/Playnite/commit/3e8abb24187… - api.github.com - github.com/makeplane/plane/blob/preview/README.md - github.com/makeplane/plane/releases/tag/v1.4.2 - github.com/makeplane/plane/commit/6c16585c81bac84… - makeplane/plane Informational and educational purposes only. Not investment advice, product endorsement, or professional guidance. Subscriber reason: Subscribe for the daily AI, GitHub, and market board. Tomorrow watchlist: Tomorrow, check the next tagged release, recent commit, and issue-health signals for the selected projects.

    20 views
  10. Self-Hosting prompts.chat: A Privacy-First Prompt Library Behind Traefik Why prompts.chat Belongs in Your Homelab When testing f/prompts.chat — the open-source prompt library formerly known as Awesome ChatGPT Prompts — I needed a self-hosted instance that wouldn't leak internal prompts to third-party SaaS. The project ships as a static site, but real production deployments need: - Reverse proxy with automatic HTTPS - Zero-trust network access (no public exposure) - Persistent storage for custom prompts - Local authentication layer Here's the battle-tested stack I landed on after two failed attempts with bare Nginx and accidental public exposure. Architecture: Traefik + Tailscale + Docker # docker-compose.yml version: '3.8' services: prompts-chat: image: ghcr.io/f/prompts.chat:latest container_name: prompts-chat restart: unless-stopped volumes: - ./data:/app/data labels: - "traefik.enable=true" - "traefik.http.routers.prompts.rule=Host(`prompts.homelab.local`)" - "traefik.http.routers.prompts.entrypoints=websecure" - "traefik.http.routers.prompts.tls=true" - "traefik.http.services.prompts.loadbalancer.server.port=3000" networks: - homelab traefik: image: traefik:v2.10 container_name: traefik restart: unless-stopped command: - "--api.insecure=false" - "--providers.docker=true" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.tailscale.acme.tlschallenge=true" ports: - "443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./traefik-certs:/letsencrypt networks: - homelab networks: homelab: driver: bridge Zero-Trust Routing with Tailscale ACL Instead of exposing port 443 to the internet, bind Traefik to your Tailscale interface: // tailscale-acl.json { "acls": [ { "action": "accept", "src": ["group:engineering"], "dst": ["tag:homelab:443"] } ], "tagOwners": { "tag:homelab": ["admin@yourorg.com"] } } Apply the policy: tailscale up --advertise-tags=tag:homelab sudo ufw allow in on tailscale0 to any port 443 sudo ufw deny 443 # block public interface Deployment & Verification # Start stack docker-compose up -d # Verify Traefik routes docker logs traefik | grep prompts # Test internal access curl -k https://prompts.homelab.local # Confirm external block curl -I https://<public-ip>:443 # should timeout War Story: SQLite Corruption Under Load During initial testing with three concurrent users editing prompts, the app crashed with: SQLite database is locked (5) Root cause: prompts.chat uses a single SQLite file without WAL mode. Fix: # Enable Write-Ahead Logging sqlite3 data/prompts.db "PRAGMA journal_mode=WAL;" # Verify sqlite3 data/prompts.db "PRAGMA journal_mode;" # Should return: wal After enabling WAL, sustained 10+ concurrent write operations with zero locks. Accidental Public Exposure (and the Fix) First deployment mistake: I exposed Traefik dashboard on :8080 without authentication. Shodan indexed it within 4 hours. The hard lesson: every listening port needs explicit access control. Fixed config: # Traefik dynamic config (traefik-config.yml) http: middlewares: basic-auth: basicAuth: users: - "admin:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/" # htpasswd generated routers: traefik-dashboard: rule: "Host(`traefik.homelab.local`)" service: api@internal middlewares: - basic-auth entryPoints: - websecure Mount this config: volumes: - ./traefik-config.yml:/etc/traefik/dynamic/config.yml:ro Performance Notes - Cold start: ~2.3s (Node.js SSR) - Warm response: <80ms (cached static assets) - Memory footprint: 140MB (prompts.chat) + 95MB (Traefik) - Disk I/O: negligible after WAL mode When NOT to Self-Host This Skip this setup if: 1. Your team is distributed without VPN — the Tailscale ACL model assumes a private network backbone 2. You need multi-region replication — SQLite won't scale horizontally 3. Compliance requires audit trails — you'll need to add event logging middleware Next Steps For production-grade deployments, add: - Automated SQLite backups (litestream to S3) - Prometheus metrics export from Traefik - Fail2ban rules for repeated auth failures - Health check endpoint monitoring The complete stack runs on a $5/month VPS with 1GB RAM. Total setup time: 18 minutes after sorting out the SQLite locking issue. No affiliate links. No sponsored tools. Just a working reference architecture for keeping your prompt library private.

Trending awards, every completed day and week
Gold
111st place finishes
Silver
82nd place finishes
Bronze
123rd place finishes
Awarded repositories
2Owned by f now

Repositories

Ordered by gold, then silver, then bronze.

  1. awesome-chatgpt-promptsBest: 1st by stars, 4,632 stars11811
  2. graphql.jsBest: 3rd by stars, 259 stars001

A repository earns an award for finishing first, second or third in a completed trending day or week, ranked by new stars, new forks or pull request authors. Awards follow a repository through renames and transfers and count toward its current owner. Weeks run Monday to Sunday, UTC.