
Show HN: Camp Fire – chat with people within a radius - nemasu
https://campfire.rest
======
nemasu
Just thought I'd share something I've been working on. Basically it's a
message relay that sends messages to others around you (given GPS coordinates
from browser). Can choose range from "Range" pull down near top left (hover
over options for approximate distances). Back end is written in Rust.

~~~
orobinson
Neat idea. Little bit of feedback: would be good if you could get the
interface working nicely on mobile. It’s very cumbersome at the moment.

~~~
nemasu
Yes! This is top priority at the moment, I'm eyeing mobile twitch chat style,
simpler, more compact, less bubbly.

------
CGamesPlay
There are 4 people chatting with the word "ignition" over their messages but
my range selector (presently "campfire") says "1 in range".

Also, my preferred username, <span style="float: right">~ry, causes some weird
layout issues.

~~~
mcjiggerlog
username: <script type="text/javascript">alert('oh oh')</script>

Oh boy... How long till someone loads a cryptominer on everyone's machine?

Also, for kicks:
[https://i.imgur.com/wHq8nrb.png](https://i.imgur.com/wHq8nrb.png)

~~~
nannal
Yeah either the service is shutdown or I can't use that name anymore.

~~~
pistachiopro
The last comment was a giant full screen goatse and then it shut down.

------
neillyons
With the advent of wifi on airplanes, I made a similar thing called "flight
roulette". Inspiration was from chat roulette except instead of matching you
to people randomly it would you to people directly below you on the ground as
you flew over.

------
patrickvmm
This is fun. In europe we have jodel which has a big userbase. The quality of
discussion varies from location and it's fun to listen in what the locals are
talking about.

------
andreareina
I also got a geolocation error even though I allowed location access. Could
benefit from allowing the user to set a location as a fallback (or override).
FF 72 (Ubuntu)

~~~
nannal
Same FF 72 ((I use) Arch (btw)) & chromium 79

~~~
steeleduncan
Same: FF 72.0.4 on macOS 10.15.2

------
PawelDecowski
I get:

    
    
        Error when getting location: 1 User denied geolocation prompt
    

even though I allowed location access.

Firefox 72.0.2 on macOS Mojave 10.14.6

~~~
mcjiggerlog
On ubuntu 19.10 I get:

    
    
        Error when getting location: 2 Unknown error acquiring position

~~~
AdmiralGinge
Same on Kubuntu 19.04.

------
californical
This is a really cool idea, and I like it so far!! -- would you mind sharing
what the different ranges are for each type? I see people chatting, but not
sure how close they are to me... Within 10 miles radius? 100?

Edit: I'm on mobile, it seems like maybe it shows on desktop. I'd check but
I'm laying in bed haha. Regardless, I really like this idea. Seems like a good
way to maybe even meet my neighbors since I moved across the country recently

~~~
nemasu
Thanks! The ranges are 1KM, 10KM, 100KM etc.

------
every_other
This is cool! I had been thinking about creating something similar but I
couldn't solve this problem:

Given a radius of 5 miles and three users in a geographic straight line, each
4 miles from each other. User 1 and user 2 are in the same radius, user 2 and
three are in the same radius but user 1 and 3 are not in the same radius.
Therefor user 1 and 3 will only see "half" the conversation (which would
obviously be confusing). Do you solve for this problem? if so, how?

~~~
unoti
An idea of how to solve that problem: connect a user to the closest person if
there is nobody in their radius. Use Disjoint Sets to sort of glom people
together like pieces of cereal in milk. Everybody in the same glob can hear
each other.

------
thejosh
Reminds me of yikyak :)

~~~
andrewzah
Now that’s a name I’ve not heard in a long time. I remember when yikyak on
college campuses was a thing.

~~~
inkeddeveloper
Ooo...that name takes me back.

------
Udo
I think the concept is neat, and this could be a worthwhile mode for some chat
apps. I would get rid of the cute range names though and just tell users how
many km this reaches.

I remember there was a project exactly like this in nReduce (a communal online
incubator which sadly died quickly), a few years back.

------
state_less
Looks neat! I like that you show how many are in range. Here's some
suggestions, take them for what they are worth.

\- Fix the layout on iOS Safari.

\- Show the location of all current users (with opt out) on a globe. Users can
see where the activity is and who is chatting where.

\- Consider adding ignore to squelch certain users.

\- Show past messages for your area.

\- Add voice messages and autoplay (with opt out)

~~~
bullen
But first make the location by IP so you don't have to turn on browser geo-
location.

~~~
nemasu
This isn't accurate enough. Custom lat/lon though I might add.

~~~
bullen
Just add country/city dropdowns?

------
easytiger
Wasn't Camp Fire the name of a 37 Signals chat product they later merged into
bootcamp? Rings a bell

~~~
andrewSC
Yup:
[https://basecamp.com/retired/campfire](https://basecamp.com/retired/campfire)

------
SeasonalEnnui
I have experience with VHF radio emulation, so I wanted to ask what formula
you're using for ranging?

I've found the haversine formula to be a robust compromise between accuracy
and computational complexity, where on a typical day, I'm doing 5000-200000
haversine calculations a second.

~~~
nemasu
Yup, using Haversine.

------
fladd
Not sure what it is supposed to do, but currently it does:

    
    
        - Ask for location access
        - When granted ask for a user name
        - When given a username show:
          ? in range
          Error: undefind

~~~
nemasu
I ran into this problem too, I just refreshed and it would eventually connect.
Not sure what exactly is breaking.

------
thedingwing
This reminds me of the Twinkle iOS app by Tapulous. It worked a lot like
Twitter, except you only saw posts from within a certain radius. There's now
an unrelated dating app of the same name; I can only find this about the
original
[https://www.youtube.com/watch?v=Dd4u-E5qmxE](https://www.youtube.com/watch?v=Dd4u-E5qmxE)

------
Angostura
On iPhone Safari (cellular data) I get Error when getting location - 1 user
denied)

Even when I set the website permnissions for location to 'Allow'

------
soylentcola
For a second I got this confused with Firechat (but I guess that's a different
setup since proximity is required for direct p2p relay, not just to find
people to chat with).

[https://www.opengarden.com/firechat/](https://www.opengarden.com/firechat/)

------
theveloped
Great job on releasing the project!

Had a similar iOS app years ago that would make chat groups with everyone in a
1km radius [1]. In the end our largest hurdle was getting enough users
together per location.

1: [http://www.zonemessenger.com/](http://www.zonemessenger.com/)

~~~
nemasu
Thanks. I made something similar a while ago myself called Shoutium, basically
the same thing. More simpler this time around tho. Users are always difficult
to get, this too will probably also fizzle out.

~~~
thevelop
All the best of luck with Shoutium! I still love the concept of a local
messaging app and it was great fun in active areas. But like you said getting
the critical mass required is always tough.

------
splittydev
It's very easy to impersonate another user right now by just using the same
name. It would be great if the first 5 chars of a hashed IP fingerprint (or
something similar) could be shown next to the name as a kind of ID to prevent
that kinda thing from happening.

~~~
nemasu
Yeah I'll probably add something like a unique number at the end of username.

------
paulgpetty
There still is — for legacy users — Campfire at 37 Signals (home of Basecamp):
[https://basecamp.com/retired/campfire](https://basecamp.com/retired/campfire)

------
derangedHorse
You might want to make 'message-text' have relative positioning, and 'range-
display' absolutely positioned so 'ignition' or 'bonfire' isn't hovering over
the text box.

------
laurensr
Kinda reminds me of Grindr, except for the different target audience ;)

~~~
fredley
Find hot fires in your area

------
_bxg1
I understand that it's a work in progress, but I could see a polished, native
mobile version of this really taking off. I'd be excited to try it, at least.

------
maury91
I tried firestorm (1000KM radius) and I'm alone, seems I'm the only Italian
user

------
kart23
pretty cool. I found someone who lives ~15 minutes away from me.

------
einpoklum
Nobody in range, even if I increase the range.

------
ensozos
Try to do something with spam messages

~~~
nemasu
Will add throttling. But going to bed now, will try to do it tomorrow. Might
be unpleasant in there for a bit -_-

------
achow
I logged in..

Started getting only spam. Logged out.

~~~
nemasu
Yeah, I need to figure out a way to mitigate this. For now lowering range and
locking it works.

------
happppy
what are you using for backend and real time connections?

~~~
nemasu
Rust and the tokio-tungstenite lib.

------
dingle3
damn. death by balls of steel.

~~~
nemasu
Yeah, I need to add throttling. That being said server didn't crash, handling
it quite well.

------
draugadrotten
Location based chatting is a privacy nightmare. How do you protect against
stalkers using this tool for triangulating the actual physical location of
someone?

If the GPS coordinatates are client-generated, then it would be possible to
spoof the coordinates and generate a search pattern rather quickly.

Competition like grindr and badoo try to randomize the distances.

~~~
nemasu
I truncate the GPS data server side, it's a bit over 1KM accurate.

