Drop a Listing

Step 1 of 2
📍
The essentials
4 fields. Under a minute. Your listing goes live immediately.
Your property code
Type address above
Auto-generated
Agents text this ↑
Shared Drive folder containing all media files
🏡
Tap to upload listing photo
JPG or PNG · Landscape works best
Preview
🔍
Public
Shows in library + SMS
🔒
Code Only
SMS only, hidden from library
Make it stand out
Your listing is already queued. These details make your card look sharper.
All optional — skip anytime
Agents will be asked to tag you when they post
Agent contact info is captured automatically on every download — no extra work needed.
🎉
Listing Dropped!
Share your code anywhere — Facebook groups, stories, emails, texts.
Your Property Code
WILLOW
Agents text this for instant media access
// ── 2-STEP SUBMIT MODAL ── var subCurrentStep=1; var subPrivacy='public'; var subGeneratedCode=''; function openSubmit(){ subCurrentStep=1; document.getElementById('subOverlay').classList.add('open'); document.getElementById('subStep1').classList.add('active'); document.getElementById('subStep2').classList.remove('active'); document.getElementById('subSuccess').classList.remove('show'); document.getElementById('subFooter').style.display='flex'; document.getElementById('subProgress').style.width='50%'; document.getElementById('subStepLabel').textContent='Step 1 of 2'; var btn=document.getElementById('subBtnNext'); btn.innerHTML='Continue '; btn.onclick=subNext;btn.disabled=false; document.getElementById('subBtnSkip').style.display='none'; document.getElementById('subFooterLeft').textContent='Free to submit'; } function closeSubmit(){document.getElementById('subOverlay').classList.remove('open')} function updateCodePreview(addr){ var val=document.getElementById('codePreviewVal'); if(!addr||addr.trim().length<3){val.textContent='Type address above';val.className='code-preview-val empty';subGeneratedCode='';return;} var parts=addr.trim().split(' '); var word=''; for(var i=0;i1&&isNaN(parts[i])){word=parts[i];break;}} if(!word)word=parts[parts.length-1]; subGeneratedCode=word.toUpperCase().replace(/[^A-Z]/g,'').substring(0,8); val.textContent=subGeneratedCode;val.className='code-preview-val'; } function formatPrice(input){ var raw=input.value.replace(/[^0-9]/g,''); if(raw)input.value='$'+parseInt(raw).toLocaleString(); } function setPrivacy(val){ subPrivacy=val;document.getElementById('fPrivacy').value=val; document.getElementById('privPublic').classList.toggle('selected',val==='public'); document.getElementById('privCode').classList.toggle('selected',val==='code_only'); } function handleFileDrop(e){ e.preventDefault();document.getElementById('uploadZone').classList.remove('dragover'); var file=e.dataTransfer.files[0]; if(file&&file.type.startsWith('image/'))uploadToCloud(file); } function handleUpload(input){var file=input.files[0];if(file)uploadToCloud(file);} function uploadToCloud(file){ var title=document.getElementById('uploadTitle'); var zone=document.getElementById('uploadZone'); title.textContent='Uploading...';zone.style.borderColor='var(--sky)'; var fd=new FormData(); fd.append('file',file);fd.append('upload_preset',CLD_PRESET);fd.append('folder','acmh-heroes'); fetch('https://api.cloudinary.com/v1_1/'+CLD_CLOUD+'/image/upload',{method:'POST',body:fd}) .then(function(r){return r.json()}) .then(function(d){ document.getElementById('fThumbURL').value=d.secure_url; var img=document.getElementById('thumbImg');img.src=d.secure_url;img.classList.add('show'); title.textContent='Photo uploaded';zone.style.borderColor='#16A34A';zone.style.background='rgba(22,163,74,.04)'; }) .catch(function(){title.textContent='Upload failed — try again';zone.style.borderColor='#DC2626';}); } function subNext(){ if(subCurrentStep===1){ var addr=document.getElementById('fAddr').value.trim(); var price=document.getElementById('fPrice').value.trim(); var drive=document.getElementById('fDrive').value.trim(); var photo=document.getElementById('fThumbURL').value.trim(); if(!addr){toast('Please enter the property address');return;} if(!price){toast('Please enter the list price');return;} if(!drive){toast('Please paste your Google Drive link');return;} if(!photo){toast('Please upload a hero photo');return;} subCurrentStep=2; document.getElementById('subStep1').classList.remove('active'); document.getElementById('subStep2').classList.add('active'); document.getElementById('subProgress').style.width='90%'; document.getElementById('subStepLabel').textContent='Step 2 of 2'; var btn=document.getElementById('subBtnNext'); btn.textContent='Submit Listing';btn.onclick=submitListing; document.getElementById('subBtnSkip').style.display='block'; document.getElementById('subFooterLeft').textContent='These details are optional'; } } function skipToSubmit(){submitListing();} function submitListing(){ var btn=document.getElementById('subBtnNext'); btn.disabled=true;btn.textContent='Submitting...'; var addr=document.getElementById('fAddr').value.trim(); var price=document.getElementById('fPrice').value.trim(); var drive=document.getElementById('fDrive').value.trim(); var photo=document.getElementById('fThumbURL').value.trim(); var code=subGeneratedCode||(addr.split(' ').find(function(w){return w.length>1&&isNaN(w);})||'LIST').toUpperCase().replace(/[^A-Z]/g,'').substring(0,8); var payload={ address:addr, full_address:addr+(document.getElementById('fArea').value.trim()?', '+document.getElementById('fArea').value.trim():'')+', San Antonio TX', price:parseInt(price.replace(/[^0-9]/g,''))||0, price_display:price, property_code:code, hero_photo_url:photo, drive_link:drive, media_type:document.getElementById('fMedia').value, area:document.getElementById('fArea').value.trim()||null, beds:document.getElementById('fBeds').value?parseInt(document.getElementById('fBeds').value):null, baths:document.getElementById('fBaths').value?parseInt(document.getElementById('fBaths').value):null, sqft:document.getElementById('fSqft').value.trim()||null, attribution_required:document.getElementById('fAttrName').value.trim().length>0, agent_name:'Dustin Losoya', agent_brokerage:'REAL Broker LLC', is_public:document.getElementById('fPrivacy').value==='public', status:'pending' }; fetch(SUPA_URL+'/rest/v1/listings',{method:'POST',headers:{...sbHeaders(),'Prefer':'return=minimal'},body:JSON.stringify(payload)}) .then(function(r){ if(!r.ok)throw new Error(r.status); document.getElementById('subStep2').classList.remove('active'); document.getElementById('subSuccess').classList.add('show'); document.getElementById('subFooter').style.display='none'; document.getElementById('successCode').textContent=code; document.getElementById('subProgress').style.width='100%'; document.getElementById('subStepLabel').textContent='Live ✓'; setTimeout(function(){loadListings();},800); }) .catch(function(){ toast('Something went wrong — please try again'); btn.disabled=false;btn.textContent='Submit Listing'; }); } function copyShareText(){ var code=document.getElementById('successCode').textContent; var addr=document.getElementById('fAddr').value.trim(); var price=document.getElementById('fPrice').value.trim(); var text='New listing just dropped!\n\n'+addr+' | '+price+'\n\nProfessional photos, video & drone footage available.\n\nText '+code+' to (210) 555-0100 for instant access. Free to use — no watermarks, post as your own!\n\n#SanAntonio #RealEstate #ListingDrop'; if(navigator.clipboard){navigator.clipboard.writeText(text).then(function(){toast('Post text copied to clipboard!')});} else{var ta=document.createElement('textarea');ta.value=text;document.body.appendChild(ta);ta.select();document.execCommand('copy');document.body.removeChild(ta);toast('Copied!');} }
Attribution Required
The listing agent has requested that you credit them when using this media. Please include the following when you post:

Drop a Listing

Property Info
Cover Photo

Click to upload hero photo

JPG, PNG \u00b7 Max 10MB
Preview
Privacy
Attribution
Your Info