PageSourceSearch

https://prooven.io/_nuxt/BrCjksmE.js

js prooven.io collected 2026-10-08 14:47:00 UTC 13,733 bytes, 13 lines download raw bytes

1import{_ as A}from"./BfNQs6Go.js";import{_ as B}from"./BIQXtUGu.js";import{d as U,y as E,o as r,f as i,i as e,h as s,F as p,l,t as c,m as v,v as q,r as C,g as f,p as y,n as _,w as G,b as H,s as D,e as Y,k as T,_ as R,j as L}from"./CWXzWxAq.js";import{_ as V}from"./DnmTXJSl.js";import{_ as Q}from"./BSGv3ur8.js";import{_ as z}from"./CW6TSjOm.js";import{_ as J}from"./DLF33vme.js";import{u as X,b as Z,f as K}from"./V6PXsQGD.js";import{u as ee}from"./j6FCzuTM.js";import"./CU3qXiyL.js";import"./ujoLtV0O.js";import"./DQSuM1Xs.js";const te={class:"rounded-2xl border bg-surface p-4 sm:p-5"},oe={class:"flex flex-wrap items-center justify-between gap-3"},se={class:"flex items-center gap-3"},re={class:"font-bold"},ne={key:3,class:"ml-2 rounded-full bg-surface-2 px-2 py-0.5 align-middle text-[11px] font-semibold text-muted"},ae={key:4,class:"ml-2 rounded-full bg-accent/20 px-2 py-0.5 align-middle text-[11px] font-semibold text-accent"},ie={class:"flex items-center gap-2"},le={key:0,class:"mt-2 text-xs text-brand"},ce={class:"mt-6"},de={class:"flex flex-wrap gap-2"},ue=["onClick"],me={class:"mt-6"},ye={key:0,class:"flex items-center justify-center gap-2 py-16 text-muted"},pe={key:1,class:"rounded-2xl border border-dashed bg-surface/50 p-10 text-center text-muted"},be={class:"mb-4 text-sm text-muted"},fe={class:"text-foreground"},xe={class:"text-foreground"},ge={key:0,class:"mt-8 text-center"},he={key:3,class:"rounded-2xl border border-dashed bg-surface/50 p-10 text-center text-muted"},_e=U({__name:"NearbyFinder",setup(W){const w=[{value:5,label:"5 mi"},{value:25,label:"25 mi"},{value:75,label:"75 mi"},{value:250,label:"250 mi"},{value:"worldwide",label:"Worldwide"}],x=y(null),d=y("ip"),g=y(null),b=y(""),u=y(25),m=y([]),F=y(0),N=y(!0),k=y(!1),a=y(24),t=_(()=>{const n=x.value;return n?[n.city,n.region,n.countryCode||n.country].filter(Boolean).join(", "):""}),P=_(()=>{if(d.value==="precise"&&g.value)return g.value;const n=x.value;return n?.lat!=null&&n?.lng!=null?{lat:n.lat,lng:n.lng}:null});async function h(){N.value=!0,k.value=!1,a.value=24;try{const n={radius:u.value};P.value&&(n.lat=P.value.lat,n.lng=P.value.lng);const o=await $fetch("/api/near",{query:n});m.value=o.creators,F.value=o.total}catch{k.value=!0,m.value=[]}finally{N.value=!1}}function M(n){u.value!==n&&(u.value=n,h())}function $(){if(b.value="",!navigator.geolocation){b.value="Your browser doesn't support precise location.";return}navigator.geolocation.getCurrentPosition(n=>{g.value={lat:n.coords.latitude,lng:n.coords.longitude},d.value="precise",h()},()=>{b.value="Location permission denied — using your approximate IP location instead.",d.value="ip"},{enableHighAccuracy:!1,timeout:8e3,maximumAge:6e5})}function I(){d.value="ip",g.value=null,b.value="",h()}E(async()=>{try{x.value=await $fetch("/api/geo")}catch{x.value=null}await h()});function S(n){return`rounded-full border px-4 py-1.5 text-sm font-semibold transition ${n?"brand-gradient border-transparent text-white":"bg-surface text-muted hover:text-foreground"}`}return(n,o)=>{const j=B;return r(),i("div",null,[e("div",te,[e("div",oe,[e("div",se,[o[2]||(o[2]=e("span",{class:"grid h-10 w-10 shrink-0 place-items-center rounded-full bg-brand/15 text-lg"},"📍",-1)),e("div",null,[o[1]||(o[1]=e("p",{class:"text-xs font-medium uppercase tracking-wide text-muted"},"Detected location",-1)),e("p",re,[s(d)==="precise"?(r(),i(p,{key:0},[l("Using your precise location")],64)):s(t)?(r(),i(p,{key:1},[l(c(s(t)),1)],64)):(r(),i(p,{key:2},[l("Location unavailable")],64)),s(d)==="ip"&&s(x)?(r(),i("span",ne,"IP")):s(d)==="precise"?(r(),i("span",ae,"GPS")):v("",!0)])])]),e("div",ie,[e("button",{class:q(S(s(d)==="precise")),onClick:$},"Use precise location",2),e("button",{class:q(S(s(d)==="ip")),onClick:I},"Use IP location",2)])]),o[3]||(o[3]=e("p",{class:"mt-3 text-xs text-muted"},[e("span",{class:"text-accent"},"🔒"),l(" Your location stays on your device — we use it only to sort creators by distance and never store it. ")],-1)),s(b)?(r(),i("p",le,c(s(b)),1)):v("",!0)]),e("div",ce,[o[4]||(o[4]=e("h2",{class:"mb-3 text-lg font-bold"},"Search by distance",-1)),e("div",de,[(r(),i(p,null,C(w,O=>e("button",{key:String(O.value),class:q(S(s(u)===O.value)),onClick:Ye=>M(O.value)},c(O.label),11,ue)),64))])]),e("div",me,[s(N)?(r(),i("div",ye,[...o[5]||(o[5]=[e("span",{class:"h-5 w-5 animate-spin rounded-full border-2 border-brand border-t-transparent"},null,-1),l(" Finding creators near you… ",-1)])])):s(k)?(r(),i("div",pe,[o[6]||(o[6]=l(" Couldn't load nearby creators. ",-1)),e("button",{class:"font-semibold text-brand hover:underline",onClick:h},"Try again")])):s(m).length?(r(),i(p,{key:2},[e("p",be,[o[7]||(o[7]=l(" Showing ",-1)),e("strong",fe,c(Math.min(s(a),s(m).length)),1),o[8]||(o[8]=l(" of ",-1)),e("strong",xe,c(s(F)),1),l(" "+c(s(u)==="worldwide"?"creators worldwide":`creators within ${s(u)} mi`),1)]),f(j,{creators:s(m).slice(0,s(a))},null,8,["creators"]),s(a)<s(m).length?(r(),i("div",ge,[e("button",{class:"rounded-full border bg-surface px-6 py-3 text-sm font-semibold transition hover:border-brand",onClick:o[0]||(o[0]=O=>a.value+=24)}," Load more creators ")])):v("",!0)],64)):(r(),i("div",he," No creators found "+c(s(u)==="worldwide"?"":`within ${s(u)} mi`)+". Try a wider radius or browse by city below. ",1))])])}}}),ve=Object.assign(_e,{__name:"NearbyFinder"}),we={class:"mx-auto max-w-7xl px-4 py-8"},ke={class:"mt-14"},$e={class:"grid gap-4 sm:grid-cols-3"},Ce={class:"text-sm font-bold text-brand"},Fe={class:"mt-1 text-lg font-bold"},Ne={class:"mt-2 text-sm leading-relaxed text-muted"},Pe={class:"mt-14"},Ie={key:0,class:"mt-14"},Se={class:"grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-4"},Oe={class:"min-w-0"},Te={class:"block truncate font-semibold"},Le={class:"text-xs text-muted"},Me={class:"shrink-0 text-sm font-bold text-brand"},qe={key:1,class:"mt-14"},De={class:"grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5"},Ue={key:2,class:"mt-10"},We={class:"grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5"},je={key:3,class:"mt-10"},Ae={class:"grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5"},Be={class:"mt-14 max-w-3xl"},Ee={class:"max-w-3xl"},Ge={class:"mt-8 text-sm text-muted"},He=`## Find OnlyFans creators near you
2
3Location-based discovery is one of the most popular ways fans find creators they connect with. Whether you're after a fam
3iliar accent, a regional vibe, or simply want to support creators from your own city, browsing by proximity makes it effortless.
4
5OnlyFans itself doesn't offer a location search, a map, or a distance filter — which is exactly why our **Near Me** tool exists. We detect roughly where you are, geocode the locations creators choose to share publicly, and sort the results by distance so the closest creators appear first.
6
7### How proximity discovery works
8
9The feed above is ranked by approximate distance from your location. Switch between your IP-based location and precise GPS, then narrow the radius with the distance pills. You stay in control — we never store your location, and you can browse by city, state or country at any time instead.
10
11### Local discovery for fans and creators
12
13For fans, proximity surfaces creators you share context with — same city, same scene, same culture. For creators, ranking on a location feed means nearby fans can find you more easily, which is especially valuable for meet-and-greets, local collaborations and region-specific content.`,rt=U({__name:"near-me",async setup(W){let w,x;const{data:d}=([w,x]=G(()=>ee("/api/categories",{key:"categories",default:()=>[]},"$fx-sDXw_DZ")),w=await w,x(),w),g=_(()=>(d.value||[]).filter(a=>a.group==="location")),b=_(()=>g.value.filter(a=>a.locationType==="country").sort((a,t)=>t.count-a.count)),u=_(()=>g.value.filter(a=>a.locationType==="state").sort((a,t)=>t.count-a.count)),m=_(()=>g.value.filter(a=>a.locationType==="city").sort((a,t)=>t.count-a.count)),F=_(()=>m.value.filter(a=>a.code==="US"&&a.count>0).slice(0,8)),N=[{n:"01",t:"Detect",d:"We read your approximate location from your connection (IP) the moment you land — no account, no form. Opt in to precise GPS for a tighter radius; either way the coordinates never leave your device beyond the distance sort."},{n:"02",t:"Match",d:"Every creator is grouped into city, state and country pages from the location they publish publicly. We geocode those locations to map centroids so we can measure how far each creator is from you."},{n:"03",t:"Sort by distance",d:"We rank creators by approximate distance from your location using the haversine formula, closest first. Pick a radius — 5, 25, 75 or 250 miles — or browse worldwide."}],k=[{q:"How do I find OnlyFans creators near me?",a:"Allow location access (or use the IP-based location we detect automatically) and we'll sort creators by distance from you, closest first. Prefer to browse manually? Pick your city, state or country from the lists on this page."},{q:"How does the distance sort work?",a:"Creators don't publish exact coordinates, so we geocode the city, state or country each creator lists to a map centroid, then measure the great-circle (haversine) distance from your location to that point. Closer creators surface first, and the radius pills filter to within 5, 25, 75 or 250 miles."},{q:"Is my location stored?",a:"No. Your approximate IP location is read per-request and never persisted, and precise GPS coordinates (if you opt in) stay on your device — they're only used in your browser to request a distance-sorted feed."},{q:"Can I search OnlyFans by city?",a:"Yes. We maintain dedicated location pages for major cities, states and countries. Choose your city below to see local creators, or use the distance search above."},{q:"Why don't I see creators in my exact town?",a:"Coverage is strongest in major metros. If your town isn't indexed yet, widen the radius or open the nearest big city — we anchor smaller areas to the closest city, state or country we do cover."}];return H({title:"OnlyFans Near Me — Find Local Creators by Distance, City & Country",description:"Find OnlyFans creators near you, sorted by distance. Use GPS or IP location with a 5–250 mile radius, or browse local creators by city, state and country.",ogTitle:"OnlyFans Near Me — Find Local Creators by Distance",ogDescription:"Free OnlyFans proximity search. Sort local creators by distance with GPS or IP location, or browse by city, state and country.",ogUrl:`${D.url}/near-me`}),Y({link:[{rel:"canonical",href:`${D.url}/near-me`}]}),X([Z([{name:"Home",url:"/"},{name:"Near Me",url:"/near-me"}]),K(k)]),(a,t)=>{const P=A,h=ve,M=V,$=R,I=Q,S=z,n=J;return r(),i("div",we,[f(P,{items:[{name:"Home",href:"/"},{name:"Near Me"}]}
13),t[16]||(t[16]=e("header",{class:"mb-6 max-w-3xl"},[e("h1",{class:"text-3xl font-extrabold sm:text-4xl"},"OnlyFans Near Me"),e("p",{class:"mt-3 text-muted"}," Find local OnlyFans creators sorted by distance from you. Use your precise location or your approximate IP location, set a radius, and discover nearby creators — each with a direct link to their official page. ")],-1)),f(h),e("section",ke,[t[0]||(t[0]=e("h2",{class:"mb-2 text-2xl font-bold"},"OnlyFans Near Me — how it actually works",-1)),t[1]||(t[1]=e("p",{class:"mb-6 max-w-3xl text-muted"}," Three steps from your location to a distance-sorted feed of local creators. ",-1)),e("div",$e,[(r(),i(p,null,C(N,o=>e("div",{key:o.n,class:"rounded-2xl border bg-surface p-5"},[e("span",Ce,c(o.n),1),e("h3",Fe,c(o.t),1),e("p",Ne,c(o.d),1)])),64))])]),e("section",Pe,[t[2]||(t[2]=e("h2",{class:"mb-2 text-2xl font-bold"},"Creator density map",-1)),t[3]||(t[3]=e("p",{class:"mb-6 max-w-3xl text-muted"}," Indexed creator counts by country. Tap a pulsing region to jump to that country's creators. ",-1)),f(M)]),s(F).length?(r(),i("section",Ie,[t[4]||(t[4]=e("h2",{class:"mb-2 text-2xl font-bold"},"Top US cities by creator count",-1)),t[5]||(t[5]=e("p",{class:"mb-6 max-w-3xl text-muted"},"Cities with the highest indexed creator counts. Tap to browse directly.",-1)),e("div",Se,[(r(!0),i(p,null,C(s(F),o=>(r(),L($,{key:o.slug,to:`/best/${o.slug}`,class:"flex items-center justify-between rounded-xl border bg-surface px-4 py-3 transition hover:border-brand/60"},{default:T(()=>[e("span",Oe,[e("span",Te,c(o.name),1),e("span",Le,c(o.region),1)]),e("span",Me,c(o.count),1)]),_:2},1032,["to"]))),128))])])):v("",!0),s(m).length?(r(),i("section",qe,[t[6]||(t[6]=e("h2",{class:"mb-4 text-xl font-bold"},"Browse by city",-1)),e("div",De,[(r(!0),i(p,null,C(s(m),o=>(r(),L(I,{key:o.slug,category:o},null,8,["category"]))),128))])])):v("",!0),s(u).length?(r(),i("section",Ue,[t[7]||(t[7]=e("h2",{class:"mb-4 text-xl font-bold"},"Browse by US state",-1)),e("div",We,[(r(!0),i(p,null,C(s(u),o=>(r(),L(I,{key:o.slug,category:o},null,8,["category"]))),128))])])):v("",!0),s(b).length?(r(),i("section",je,[t[8]||(t[8]=e("h2",{class:"mb-4 text-xl font-bold"},"Browse by country",-1)),e("div",Ae,[(r(!0),i(p,null,C(s(b),o=>(r(),L(I,{key:o.slug,category:o},null,8,["category"]))),128))])])):v("",!0),e("section",Be,[f(S,{markdown:He})]),e("div",Ee,[f(n,{items:k,title:"OnlyFans Near Me — FAQ"})]),e("p",Ge,[t[12]||(t[12]=l(" Want the full map? ",-1)),f($,{to:"/locations",class:"text-brand hover:underline"},{default:T(()=>[...t[9]||(t[9]=[l("Explore all locations",-1)])]),_:1}),t[13]||(t[13]=l(", ",-1)),f($,{to:"/best",class:"text-brand hover:underline"},{default:T(()=>[...t[10]||(t[10]=[l("browse all categories",-1)])]),_:1}),t[14]||(t[14]=l(" or ",-1)),f($,{to:"/search",class:"text-brand hover:underline"},{default:T(()=>[...t[11]||(t[11]=[l("search by location",-1)])]),_:1}),t[15]||(t[15]=l(". ",-1))])])}}});export{rt as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.