Sorry, forgot to mention. The planner is a mess on mobile I totally forgot to make it mobile friendly as I didn't think anyone would want to plan their trip on a phone.
verelo 35 days ago [-]
Interesting assumption. My mind goes to to a) Most people are mobile first and b) In this category of app, i imagine people want the route with them on their phone as they bike (as they're probably unfamiliar with the route, hence the need to plan it)
Cool idea, i'd love to try it but honestly i'd love it on my phone for the aforementioned reasons!
---
Edit: Some follow up remarks (From Chrome on a Mac)
1. I found it a bit confusing when creating a route. I assumed it would let me do address completion. The UI seems to just be naming my route instead, i think if you're going to borrow visually from Google maps you should follow their patterns.
2. I was able to add my first point (my home), but adding a second point never worked.
3. The click mechanic is a bit odd. I expect clicking elsewhere when the menu is open (add point/close) that the menu would go away - rather than re-appear in my new click location.
4. The map centred me over Europe, i'm in Canada however. Some GeoIP lookup here could give a better experience.
5. Re:point 2, this seems to work when i selected random locations in Europe. I assume this is a data issue? So the real issue here (apart from the routing not working) is there's no feedback on the UI when the routing fails.
6. Refreshing my screen loses my route. Any chance you could save it to local storage or something? Would be amazing if i could create this route on my desktop and then send a link to my phone (once mobile is supported?)
carlosjobim 35 days ago [-]
I think the purpose is to export the route to GPX, so that you can use it on your phone when you're cycling.
verelo 35 days ago [-]
Yeah, that's fair. I just don't have a habit of doing that so for me the GPX thing while good is a change in behaviour that limits me from adopting this app / exploring new trails. Also on further thought, i could see myself wanting to change the route mid-journey and that would be another issue with only having the GPX file.
allg12 34 days ago [-]
Thanks for the feedback! I actually want to have it on mobile as well but will most likely choose React Native instead of trying to make the web app work on mobile (or maybe only with some very simple functionality). At first, my approach was to have a planner on desktop and route viewer/navigator on mobile, but you're right - there needs to be an option to update/modify your route while traveling.
Regarding state: it's only a matter of changing the blacklist array in redux persist config. Right now I have all global state blacklisted because I noticed a small bug with rendering the map layers when the state is persisted and I didn't have time to fix it but in the next version it will be persisted in localstorage.
wintermutestwin 35 days ago [-]
>a) Most people are mobile first
I couldn't imagine trying to build a complex route on a tiny screen with a crappy phone UI. I am starting to feel like an old man yelling at clouds here. Why in the hell wouldn't you prefer to use a nice monitor with a mouse for a complex task like this?
david-gpu 35 days ago [-]
> I couldn't imagine trying to build a complex route on a tiny screen with a crappy phone UI.
I nearly always plan routes on my phone. After all, it's the device I use for navigation attached to the stem of my bike.
> Why in the hell wouldn't you prefer to use a nice monitor with a mouse for a complex task like this?
The task isn't very complex with a decent UI. See for example the open-source app OSMAnd (Android & iPhone). Also, I am rarely at my desk, but I always have my phone on me. There can also be the issue of "Neat, I made a route on a big screen; now, how do I get it on my phone for real-time navigation?" depending on the app you are using.
asdff 35 days ago [-]
Because you might plan a route while already out on your bike
0_____0 35 days ago [-]
I just did this today! I got routed up a cow path and had to shoo cows out of my way as I hiked my bike up a canyon.
antasvara 34 days ago [-]
Obviously not a representative sample, but I'd say ~25% of the people I know have a monitor and mouse, and the majority of that group only use it for work.
Thia isn't to say you're wrong. I much prefer my monitor and mouse for anything of reasonable complexity. But I increasingly find myself in the minority in that regard among people I know. Hell, I even find myself in the minority for using a laptop for tasks sometimes.
verelo 35 days ago [-]
I mean, i made the remark and I feel the same as you. I think its just the reality of the world we live in. A lot of people are mobile first, watching a neighbours kid try use a mouse the other day really drilled it home for me. Put her on a phone? No issues. But on the laptop the kid was as lost as I was when my dad showed me a slide rule (i'm 38).
ickelbawd 35 days ago [-]
Perhaps the number of mobile users would be lower than desktop, but I’ve had to reroute a planned trip from my phone a few times now due to unforeseen construction and road obstructions.
qwertox 35 days ago [-]
I share your perspective. I use Komoot extensively and I use it only on the phone for recording the ride, have it route me through the trip I planned on the web interface, and also to check where some paths I find during the ride lead to. If I then decide to use that unknown path, I either add a new waypoint or just ignore it until I'm on the planned track again (just seeing the trails is then good enough).
There are simply some things where a phone screen is just too small to use efficiently, and the fingers sometimes aren't just a good, precise enough input device.
Though I am a bit irritated by the brightness of the route on your site, it lacks contrast with respect to the surrounding map.
BTW, how is that routing done? Like which is the used routing engine and is it done server-side or in the browser?
---
It does seem to have a bug, where, when deleting a waypoint, the mouse still is in "create waypoint mode", and any mouse-down on the map, including for panning, results in adding a waypoint.
uoaei 35 days ago [-]
When I'm on multi-day trips, planning on my phone is the only option. I usually plan only a couple days ahead and refresh the route based on that day's detours and activities.
Moru 35 days ago [-]
I'm so desktop first, it's not even funny. But this is one of the few things I do on mobile. When I have the chance to go for a long ride I do the routing every few hours or so. This because I'm using something called Turfgame.com to explore new areas and take zones for a competition. I need to plan the route between the zones and maybe change route in case someone blocks my path. This will be done on the phone while having a break somewhere. I'm using Ride With GPS for the recording of the path and Naviki for the routing because that has all the turf zones as POI's so very easy to reroute.
pppone 35 days ago [-]
+1 for mobile. I would use it primarily as a means to plan urban routes and cycle touring (I wouldn't be touring with my laptop :P)
hgomersall 35 days ago [-]
Fwiw, mapping is the thing I genuinely value smart phones for (vs dumb phones). I've been recently looking at uploading the gpx traces to my new Garmin watch, but creating the traces is still not perfect. OSMAnd does a reasonable job, but it's a bit circuitous to get the trace uploaded.
jameal 35 days ago [-]
Looks interesting! Unfortunately doesn't seem to let me add more than one point on my route. In the console I see
`Error fetching route from Graphhopper Error: Network response was not ok`
I tried a couple times and got this in the U.S. In Europe I picked a couple random points and it worked fine.
oregoncurtis 35 days ago [-]
I'm getting the same, it's a 400 response.
allg12 35 days ago [-]
So far, I've only generated the graph for Europe(using Graphhopper). Even just Europe required 128GB of RAM and around 10 hours of computation time (the entire planet would likely need 384GB of RAM). I plan to add North America on a separate Docker container soon though. I started with Europe because I’m familiar with some of the bike trails here, which makes it easier for me to check if the routing makes sense.
karussell 35 days ago [-]
> the entire planet would likely need 384GB of RAM
Unlikely. Even with turn costs enabled 256GB (or less) are sufficient. You could also try to disable CH as for bike often no long routes are required (you could disable them). Here we have written down a few more details: https://www.graphhopper.com/blog/2022/06/27/host-your-own-wo...
allg12 34 days ago [-]
Hey karussell, I really appreciate all the hard work you’ve put into Graphhopper. I wouldn't be able to create this project without GH. I have a question about memory usage during the import stage (specifically in the OSM Reader's preprocessRelations function). I'm using a HashMap<Long, List<Long>> to map way IDs to OSM bike route relation IDs, which means allocating lots of arrays. Could this be causing me to run out of heap memory faster or am I off base here?
I thought I would be able to compute the graph with 64GB of ram but it kept crushing before CH and LM stage. After switching to a 128GB instance, it finally worked, hitting around 90GB at peak memory usage. For context, I was using 3 profiles - one with CH and two with LM, plus elevation data and used all of the tips from deploy.md
giamma 34 days ago [-]
Love your project!
Maybe you already considered, but there are a number of collection libraries out there that are optimized for holding Java primitives and/or for very large sets of data, which could help you save significant memory. Eclipse Collections [0] and Fastutil [1] come to mind first, but there are many out there [2]
Thank you! I'm a total Java noob - actually, this is the first project where I've written any Java code (had to slightly modify the Graphhopper source code to suit my needs). Those libraries look very interesting. I'm saving this post for another battle with processing maany GBs of OSM data :D
karussell 33 days ago [-]
We already use carrotsearch internally so you could replace the java util classes like HashMap and HashList with it to reduce memory usage a bit. But it won't help much. E.g. all data structures (in any standard library btw) do usually double their size at some point when their size increases and then copy from the old internal array to the new internal array, which means that you need roughly 3x the current size and if that happens roughly at the end of the import process you have a problem. For that reason we developed DataAccess (inmemory or MMAP possible) which is basically a large List but 1. increases only segment by segment and 2. allows more than 2 billion items (signed int).
Another trick for planet size data structure could be to use a List instead of the Map and the OSM ID as index. Because the memory overhead of a Map compared to a List is huge (and you could use DataAccess) and the OSM IDs for planet are nearly adjacent or at least have not that many gaps (as those gaps are refilled I think).
All these tricks (there are more!) are rather tricky&low level but necessary for memory efficiency. A simpler way for your use case could be to just use a database for that, like MapDB or sqlite. But this might be (a lot) slower compared to in-memory stuff.
karussell 34 days ago [-]
> Could this be causing me to run out of heap memory faster
Yes, definitely.
> I thought I would be able to compute the graph with 64GB of ram but it kept crushing before CH and LM stage.
For normal GraphHopper and just the EU the 64GB should be more than sufficient.
mvdtnz 35 days ago [-]
You should at least add some kind of error handling so I'm not sitting there like a dope clicking over and over with no result.
allg12 34 days ago [-]
Apologies, just added a popup with region availability info
cfcfcf 34 days ago [-]
Cool project, best of luck! Agree with the other commenter that some kind of error handling or warning re: outside-of-EU availability.
Doctor_Fegg 35 days ago [-]
Nice!
I added a similar feature to cycle.travel (my site) a few months back. 5% of the work was writing the code to route only on waymarked routes, 95% was writing code to "heal" the accidental breaks in OSM bike route data...
allg12 34 days ago [-]
Oh wow, nice! I wasn't aware cycle.travel had this. I thought I had done something new but I see I was mistaken. By the way, good job on cycle.travel - the route finding is super smooth!
wintermutestwin 35 days ago [-]
Your site doesn't appear to have waypoints? As an avid cyclist, I couldn't imagine just using some calculated route between two points. I ride for fun, not transportation.
Doctor_Fegg 35 days ago [-]
Sure, you can add up to 200 waypoints - if you want to do that via the old-school click-click-click there’s a toggle, or you can just drag the route. I ride for fun too which is why I built a routeplanner that likes quiet and scenic roads!
PrismCrystal 35 days ago [-]
What does “waymarked routes” mean, exactly? And same question for the OP.
Doing OSM editing from Mapillary imagery in various US states, I find that the roads that have roadside signage as “official bike routes”, predate modern safe(r) bike infrastructure. These are often highways that frankly look like death traps: no shoulder, high speed limits. Especially when so many North American long-haul cyclists now are riding “bikepacking” setups, it may be preferable for a router to prioritize quiet agricultural tracks and other unpaved terrain over the supposedly official bike route.
Doctor_Fegg 35 days ago [-]
Yeah, waymarked routes in much of the US are an absolute embarrassment. Last time I went cycling in NY State the worst part of the whole route was the official State Bicycle Route. The quiet roads were lovely.
cycle.travel treats routes in the States differently to those in Europe for precisely this reason, and there are some routes which get absolutely zero uplift because many of them are so bad (looking at you, East Coast Greenway).
nodehopper42 35 days ago [-]
Are you aware of "brouter"? Depending on the routing rules (upper left selector) you can choose multiple trail preferences.
Unusable for me as it won't let me force a specific route. Yes, a car can't drive through that gate, but I can walk through it with my bike. Auto routing is neat and all, but in the real world, cyclists need more flexibility.
giamma 34 days ago [-]
Not as good as the project from the OP: I tried to connect two cities in Italy, Padova and Riva del Garda (because I know the cycle roads you could use to travel from one to the other) and this project perfectly nailed it, while cycling Brouter suggests low traffic roads but seems to not be aware of many cycle roads.
Would love to see this for the SF Bay Area - lots of great cycling around here and I'm unsatisfied with using Strava to create routes!
One of the most frustrating things for me with snapping to official paths is not being able to modify it for common workarounds (for instance, going across the Golden Gate bridge, everyone takes a shortcut through a parking lot, but every map routing platform I have used forces me to go the official route and messes up my nav)
burnt-resistor 34 days ago [-]
And Davis, naturally. ;)
I'm around hill country TX now where there is typically a patchwork of bike lanes segments that start and stop without much attention given to continuity of (sub)urban planning, walkability, safety, or design consideration for non-motorized users.
raywu 34 days ago [-]
It feels like the approach OP is taking won’t be able to take this short cut into account.
I too am interested in linking up good bike trails. Mostly for the east bay gravel systems. Today, I save GPX or geojson from routes I find on Strava and import into a map client (CalTopo). It’s a okay solution but my problem is in finding more alternative routes.
arjvik 34 days ago [-]
Which parking lot? I ride the bridge a ton from the Presidio to travel up to Marin!
wilson090 34 days ago [-]
It's the parking lot near Lincoln Blvd and Merchant Rd. If you come from Chrissy field, you wouldn't cut thru it, but my route is Arguello -> Washington -> Lincoln then through the parking lot onto the path by the battery onto the bridge
cullenking 35 days ago [-]
Nice work! I run ridewithgps.com and am responsible for all our mapping and routing. If you ever want to pick my brain about anything related to bike software, and of course grapphopper / vector tiles, feel free to reach out, email is in my profile. I'm actually about to dive into fixing up some custom graphhopper routing profiles today for some new route planner updates we are about to release!
allg12 35 days ago [-]
Oh wow, that's amazing - thank you! I really appreciate your offer and I love RWGPS. I just read your comment about about all the hardware you're using at RWGPS and it's clear you're operating on a completely different scale than I am :D Right now, I'm just running Graphhopper on a €40/month Hetzner server and free tiers on Vercel and Maptiler. Though I already hit the free-tier limits for Maptiler so I'm quickly setting up a Martin server to server Europe mbtiles on some cheap server instead. Once the traffic drops after this HN post I think a low-cost server should do the trick for now.
As for Graphhopper, I ran into some challenges during the Europe-wide import stage. It turns out 64GB of RAM wasn’t enough, so I ended up spinning up a 128GB instance on AWS. After tweaking some config settings and following the deployment guide, I finally got it working. I also had to change the source code a bit to link each "official bike route" edge to its corresponding OSM relation info but I managed to get it working in the end(using KVStorage and KValues).
For now, my planner is pretty basic, so I don’t want to bombard you with beginner-level questions. But if something more complex comes up down the road, I’ll definitely take you up on your offer to reach out. Thanks again—I really appreciate your help and generosity!
somic 35 days ago [-]
I frequently use RWGPS for planning my bike rides but don't pay for it (yet!). Curious - is all routing done by graphhopper or do you have some secret sauce on your end? Also graphhopper web has regular bike mode and "racing bike", they tend to come up with different routes, wondering if it's incorporated on your side somehow or if there is a way to influence RWGPS algorithm to be more "road cycling" vs casual cycling (I think that's what graphhopper means by "racing").
cullenking 35 days ago [-]
We have an update to our web and mobile route planners coming out in the next month that adds more specific bike profiles, including paved/unpaved preferences and cycling infrastructure preferences. Maybe an MTB profile as well.
We use graphhopper for everything, with customized profiles. We add data to the weekly planet PBF files from the OSM project for additional routing data not present in OSM.
somic 35 days ago [-]
Thanks, looking forward! I don't know where most of your users are, but coming up with a safe road bike route in US suburbia is not a trivial problem. Current RWGPS planner routinely wants to take me to very dangerous roads (for a road cyclist). I hope your update will make it better.
acaloiar 35 days ago [-]
MTB would be most welcome :)
clementmas 35 days ago [-]
It’s nice to see so many founders here. I run travelmap.net and I can also help out with self-hosting custom map tiles or tracing itineraries on Mapbox/Maplibre maps.
allg12 35 days ago [-]
Thank you, appreciate it!
Travelmap looks awesome—I love the idea. I will definitely try it out on my next trip.
This morning, I picked up an affordable m920q with 64GB of RAM and I’m planning to use it for hosting GH and maybe vector tiles too. If I run into any issues I can’t figure out quickly I’ll reach out but I don’t want to bug you with basic questions.
cullenking 34 days ago [-]
I have a stack of about 10 older dual xeon based supermicro 1u machines with 512gb of ram....if you are in the oregon area you can have any number of them for free! infini-ram makes life easier when dealing with OSM data.
allg12 34 days ago [-]
Oh man, that's sweet! Thank you. I would be at your door by now but I'm located 8000 km away from Oregon :D I just received a tiny M920Q, and 64 GB of RAM should arrive tomorrow. I'll have to make do with it for now :D
clementmas 34 days ago [-]
Nowadays the cheapest way to self-host planet vector tiles is probably to use protomaps.com and throw the .pmtiles file on a S3 bucket (AWS, Cloudflare, etc.).
wnc3141 35 days ago [-]
You are doing the lord's work. I love this website! - particularly that it preserves an in progress route when I exit and return to my planning session.
35 days ago [-]
salmonlogs 34 days ago [-]
This is great!
It really reminds me of https://trailrouter.com/ which I've found amazing for finding new running routes.
It would be amazing to have similar functionality to suggest cycling routes of a certain distance that are mostly on bike trails i.e. suggest to me a 40km circular/out-and-back bike route from my house.
carlosjobim 35 days ago [-]
Have you seen www.cycle.travel? It's an excellent bike route planner made by an indie developer. Your GUI is much more pleasant, and the official bike trails idea is good. What you're missing is writing start and destination points instead of clicking on the map. Maybe you could get together and make a killer product.
Edit: I see now that the cycle.travel developer is here in the thread :)
greener_grass 35 days ago [-]
A great concept, but there's one big problem: many official bike trails are crap.
Sometimes it's actually better to take the road, or you end up on a windy route that's near impossible to follow, debris everywhere, no right of way, etc.
I would like to try this with a "prefer offroad" option.
rconti 35 days ago [-]
There are numerous options available for that; Strava, RideWithGPS, Google Maps, etc. I think the point of this project is to create something _new_ and different.
chainwax 35 days ago [-]
I love where you're going with this, nearly all of my little side projects have something to do with maps and bikes. No comment on how the routes are as I'm not really familiar with any good routes in bigger Euro cities, but as someone who rides around NYC a lot this would be really useful in making routes for visitors who aren't as keen on riding in NYC traffic.
Mobile needs some work. Are you planning on open sourcing this? I'm a mobile dev that might be able to clean that up a little. Good candidate for React Native.
unstyledcontent 35 days ago [-]
I spent a minute or two trying to create a route but couldn't figure out how to do it. I'm on mobile, using chrome. I didn't see anywhere to enter coordinates.
pppone 35 days ago [-]
Thank you for this. I personally appreciate the easy to download GPX for my Wahoo. For reference, I've been using [0] to get around the city since Google Maps sucks here. I also really like the routes suggested by [1], but their mobile app is super buggy.
[0] looked like it would be great, but every time I select an origin point, it just shows a bunch of plans which get in the way of the route I am trying to build.
So far, every planner I have tried from this thread has just been frustrating in one way or another. It seems very hard for most to understand things like road+MTB in one ride or that the map shows that the road doesn't go through, but I can simply walk through a gate that a car can't.
This looks interesting and the mobile app seems well made, I like that it suggests multiple routes. Currently I just use Google Maps and it sucks here as well.
thenewrohirrim 35 days ago [-]
hi - if you like the routes suggested by 1, try https://cyclema.ps/hello - disclaimer, i'm part of the team behind it.
pppone 35 days ago [-]
Looks really nice - congrats on the app :). I can't test it since I don't use iOS. But if you ever make an android or web browser version - happy to play :)
thenewrohirrim 35 days ago [-]
thank you!
wintermutestwin 35 days ago [-]
As a cyclist, I would never plan routes on a tiny phone screen with a crappy UI. I would always plan on a computer and then use the phone to keep me on track.
allg12 35 days ago [-]
Hey everyone, I spotted a bug with the default routing profile. It was set to regular bike routing instead of the touring profile, even though the UI suggested otherwise (the Redux state didn’t match what was shown in the UI :D). I’ve fixed it, so it should work as expected now! Love your feedback, thanks so much! The project is in a very early stage so I didn't expect such a response.
jubjubbird 35 days ago [-]
Here's a cool demo I saw recently that allows a cyclist to specify risk tolerance for busy roads, based on traffic data. Take the direct, busy route, or the roundabout way, using bike paths where available.
This may not be the site's problem, but why is the OSM map showing some place name labels in Gaelic? Montenegro is "Am Monadh Neagrach," Greece is "A' Ghrèig." Last I checked Gaelic is not a widely spoken language in either of those countries (and I'm nowhere near Scotland).
benjiweber 35 days ago [-]
This does a much better job than anything I've seen before. Nice work. It still doesn't generate routes I'd use as they're too circuitous due to the poor cycle infrastructure in the UK. However, it does a good job of highlighting good options and options I didn't even know about.
INTPenis 35 days ago [-]
Not bad! I'm an avid bike camper and I just tried creating a route through Sweden and it does a pretty good job. We are a bit spoilt for choice here with bicycle routes.
The only feature I'd want is to be able to print the route on paper maps. I wonder if print CSS could be used to create pages of the whole route.
joshribakoff 35 days ago [-]
Constructive feedback: (i am on mobile). The map pulls up somewhere in Europe, even though I am in the bay area. I can’t really see for sure because the side bar covers the whole map. I cannot zoom in or out at all. When I clicked to add a point, it just adds it in a random location. The map is really zoomed out so a few pixels is like 100 km. There is metadata displayed such as the length of my route, but it seems I cannot input a length and have it create a route for me
I have personally had good luck with my Garmin watch. If I start out near a major trail, it tends to suggest routes along that trail. I’m able to input a desired length such as 10 miles and then it suggests multiple routes that are close to that length and use major trails. My biggest complaint with the Garmin is that it tends to suggest the same routes every day.
burnt-resistor 34 days ago [-]
Next.js without a node backend, what do you lose (SSR, etc.) by choosing to use another backend-only or monolithic framework?
I was looking at Rails (API mode + partial asset pipeline) + Next.js for a project to start, and might entertain elixir or rust when scalability of slow areas became a problem. Sometimes I think there will be eventually a system of LLMs that will figure out how to manage and configure operating systems, write mobile native and web apps, and administer databases. And then they'll eventually rewrite programming languages and design silicon to be better for themselves, so that they will only need a part time human to clean and maintain the robot security guard.
thenewrohirrim 35 days ago [-]
This looks really great! Do you offer an api as well? I'm part of the team behind https://cyclema.ps and we'd love to see if we could incorporate this as a backend.
allg12 34 days ago [-]
The backend at this point is just Graphhopper so I think it would make more sense to use it directly and customize it based on your needs: https://github.com/graphhopper/graphhopper
NowhereMan 35 days ago [-]
The menu takes up the entire screen on my phone and it is not clear how to close it.
doublehelix1020 35 days ago [-]
Additionally, even when holding my phone sideways so that I can see the map, it doesn’t appear that hitting “add new point” does anything
gorgonical 34 days ago [-]
This is very cool and very useful as a commuting cyclist. The routes that OSM and Google give me don't always have a high "reasonability" score in that they may be the most direct routes, but the road conditions are very uncomfortable for cycling for any one of many reasons.
One thing that would be very useful is to color the segments on the map based on the waytype. The proportions are given in the summary but unless I already know the route I can't tell where exactly those segments of difficult cobblestone are.
insane_dreamer 35 days ago [-]
Nicely done! I use Komoot and RidewithGPS, but this is a nice tool if you want to plan a route that relies on bike trails as much as possible.
Would be cool to also show the elevation for a given segment along with its distance (in the route trail list).
And maybe when you click on a segment in the map, it should highlight that segment in the trial list so you see the length of that segment.
I realize you're just using existing map data, but some bike routes seem to be broken up with very small (couple km) gaps (shown in grey) -- is that really the case? (see Loire a Velo 4 for example)
anotheryou 34 days ago [-]
If only Berlin cobblestone was mapped as "cobblestone" not "sett" on open streetmaps -_-
Had to customize https://brouter.de/brouter-web to make something workable. But i's annoying to paste script, route, export gps, send to phone, import in komot just for a 30min ride. (Can share if anyone is interesed. Just be very respectful please, it does not avoid footpaths either)
lqet 35 days ago [-]
Works very well, it exactly replicated my everyday route to work.
Mainsail 35 days ago [-]
So for me, it doesn't add a second point. Is that because it can't find a route or is it just not working?
Boulder, Colorado for reference.
vulture916 35 days ago [-]
Same in Phoenix.
KomoD 35 days ago [-]
"Currently the app only works for the Euro region but I'm planning to add North America very soon and then rest of the world."
mvdtnz 35 days ago [-]
"Add new point" button doesn't do anything. Falls over at the very first hurdle. 3 error in the console,
POST https://routes.trailimap.com/route/ 400 (Bad Request)
Error fetching route from Graphhopper Error: Network response was not ok
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'paths')
at g (page-c19a2a89477d3054.js:1:35496)
simlevesque 35 days ago [-]
Reminds me of a story: two years ago I was riding my bike, doing a 45 miles ride from Montreal to Dunham. I was following Google Map's directions and it led me inside a Canadian Army base (Farnham). I saw modified pickup trucks full of guys with rifles about 100 metres from the entrance which said "Keep out" and Google wanted me to go there. I didn't. They changed it now.
sammyo 35 days ago [-]
I sent in a report sending bikes through a highway tunnel in Boston, took six months but received a message they made the correction.
dkga 34 days ago [-]
Exciting! For me would be a nice complement or competition to, say, Komoot.
Constructive feedback: at least on safari, it was not as smooth to navigate as other map apps, and also a bit cumbersome to add waypoints, etc.
A small but important thing - there is a typo in the “activity” spelling.
Hope that helps, and best of luck with it!
burnt-resistor 34 days ago [-]
Woah, impressive. I plotted a course from the northern tip of Amsterdam to Kinderdijk and it worked the first time. Neat!
It would be great™ if it could drag new mandatory points and choose alternative routes. Also, switching from administrative to with satellite view would be helpful.
UI is not as good but, there is very useful tools like camping, train station, the ability to split your trip in steps ect.
perpil 35 days ago [-]
Typo on the menu: Acitvity->Activity
allg12 35 days ago [-]
Damn, that's a bit embarrassing. Thanks for pointing this out!
kilokilosupa 35 days ago [-]
Any plan to make it open source?
amarcheschi 35 days ago [-]
It has a few graphical issues but it's definitely cool, here in Tuscany I just grab the car recommended track on maps because if I select to go by bike it suggests off-road, which is a no no for road bikes
lmm 34 days ago [-]
Hmm, I've more often found myself wanting the opposite - a way to plan bike travel that follows reasonable roads rather than the Silly Sustrans Routes. Does your approach generalise to that?
allg12 34 days ago [-]
You can change the profile to 'road cycling' and it will avoid paths with bad surfaces.
Not sure about the UK but I've cycled quite a lot around here in Europe (12 countries so far) and from my experience, if you don't follow the official bike trails you're missing a lot. They are usually nice scenic and quiet roads with good (asphalt) surfaces. I'm talking about trails like the Alpe Adria Cycle path. There are tons of them in mainland Europe.
But you're right - if the surface is bad, then it doesn't make sense to follow the trail. I will add a feature that will highlight the selected surface on the line (similar to what Komoot already does) so you can better investigate the route and make sure the surface is alright.
I'm also planning to add a feature where users could rate the track so you could filter out the bad tracks based on other people's reviews.
PrismCrystal 34 days ago [-]
Avoiding the official bike trails in Europe has advantages. For example, when you plot your own routes away from the touristic ones, local people might be more willing to chat or offer you a place to stay for the night because they have never met a foreign bicycle traveler before. Also, bikepacking is big these days, so a lot of cyclists want routes that don't have good asphalt surfaces.
bagels 35 days ago [-]
Are tracks and trails paved? I'm always looking for urban routes, which occasionally uses paved "trails", but also bike routes, bike lanes and smaller less trafficked roads.
SonicScrub 35 days ago [-]
This is phenomenal! As an avid bike packer, I've always wanted this. Eagerly awaiting the expansion to North America. Please don't forget about Canada when building ;)
TheBozzCL 34 days ago [-]
This looks fantastic! Please make sure to let us know when it's available in the Americas as well, I would love to use this.
allg12 34 days ago [-]
Thank you! I didn’t add a way for people from other regions to sign up, like a newsletter since I figured most people dislike it here on HN. You can check back on this thread in 2–3 weeks, and there should be an update comment from me announcing a new version of the planner with the US region included.
hermitcrab 35 days ago [-]
Thanks for doing this.
BTW Typo: 'Acitvity type' in the UI should be 'Activity type'.
mackatsol 34 days ago [-]
Does anyone know of similar apps for walking/hiking trails?
Select it in in upper left menu - then fine tune the script on the right.
mackatsol 33 days ago [-]
Thanks, I will go have a look, much appreciated!
allg12 32 days ago [-]
Update: North America is now supported!
Sacco215 35 days ago [-]
Holy shit it's awesome!
I've been bikepaking for two years now and I wish I had this tool
I've used komoot in the past but I was never satisfied with the paths it suggested and had to rely on local guides
I've checked with some of the past trips I id and it guesses correctly all of the best paths
allg12 35 days ago [-]
Thanks man! Really glad to hear that. Actually, I had bikepacking and bike touring in mind while working on it as I love doing long cross-country bike trips every summer myself.
ghostly_s 35 days ago [-]
Seems completely broken on mobile.
ollybee 35 days ago [-]
What I really want form a bike route planner is a map style that shows smaller roads as you zoom out. When planning a cycling I'm interested in tiny back back roads but they are hidden as soon as I zoom out on any map enough to be useful for route planning.
qrohlf 35 days ago [-]
Not sure if you're looking for paved or unpaved backroads, but if it's the latter I recently shipped a feature at my day job (https://ridewithgps.com) that highlights all unpaved backroads, visible up to zoom level 8 (above zoom 8 we start running into tile size/data limitations).
May be useful to you or others in this thread. We lean pretty heavily into the "cycling power user" market segment, the feature set isn't always the most discoverable but it's quite comprehensive if you put in the up-front time to learn the tooling (similar to a lot of other specialty mapping apps out there - caltopo, fatmap (rip) etc)
wintermutestwin 35 days ago [-]
A subscription? $10 a month?? That's the cost of a music streaming service!!
I'd spend up to a $100 once on a killer tool that meets all my needs in this space.
This subscription first crap is way out of hand.
insane_dreamer 35 days ago [-]
Except that if you're a serious cyclist, spending $10/month on a really good road mapping service is worth more to you than spending $10/month on a music streaming service (or 2 coffees at Starbucks).
Moru 35 days ago [-]
Don't compare RWGPS to Starbucks please... The coffee isn't really worth that kind of money. But $10 is a lot in different parts of the world. For me that is more than what I pay for my mobile internet connection that works out in the nowhere.
insane_dreamer 35 days ago [-]
> But $10 is a lot in different parts of the world
of course; this is primarily a US audience (maybe parts of Europe)
wintermutestwin 35 days ago [-]
Since this is getting downvoted, I'd sure like to hear why you think an app like this justifies a $10/mo sub.
dx-800 35 days ago [-]
It's for serious cyclists, for whom $10 a month is barely noticeable, considering how much you can spend on the bicycling hobby. For example, I do bicycle touring, weeks-long or months-long trips every year, and the RideWithGps route planner/navigation tools are extremely useful when riding thousands of miles by yourself in places you aren't familiar with.
vanilla_nut 35 days ago [-]
I've used ridewithGPS for multiple bike tours, the longest being a full month of unsupported riding. I also use it to scout out routes when I want to create a new ride somewhere in my area on roads I don't know already. ridwithGPS has a few features that really stand out, IMO:
* excellent, almost entirely bug-free routing on mobile
* heatmap data, because maps aren't entirely up-to-date
* multiple map styles, so you can pick what works best for your workflow and the country you're in
* easy GPX file export, I use it all the time with the bike computer (every day on tours)
* collection management, especially useful when I make per-day routes for a tour
* a healthy trial period so you can actually test it out and learn it
Basically it's just an excellent app (and site) that works reliably across every supported platform, that isn't full of spammy upselling garbage, that is clearly made by a competent team of developers who care deeply about the product they make.
Every tech product should be made like this. A lot of tech products used to be like this before enshittification really took off in the last 5-10 years.
I'm more than happy to support a great product like this, as a bicycle tourist and frequent router over unfrequented trails and dirt roads in the mountains around me. For road riders in cities, it's probably a whole lot less useful. But there are a lot of bicycle riding use cases outside of 'road riders in cities' :-)
wintermutestwin 35 days ago [-]
>frequent router over unfrequented trails and dirt roads in the mountains around me
This is me as well. Thanks much for your perspective, it was helpful in me making the decision to jump in.
I do like the idea of supporting products and services that are staving off enshitificaiton.
carlosjobim 35 days ago [-]
$10 per month is the minimum price that you should use for any software or digital product. People who are unwilling to pay $10 per month are also unwilling to pay $5 per month or $1 per month – regardless of how much value they get from the product. Ten dollars is the bottom.
Why should it be a subscription instead of a pay-once app? Maps have to update as the real world updates, and probably they have other features that can't be on-device.
Moru 35 days ago [-]
$10 per month might be the minimum price that is acceptable in US. This looks very different depending on your salary and if you can choose not to pay tax for health care and such. Have seen cases where different prices for different areas in the world when I was younger, not sure how that looks now.
I'm paying for $1 and $5 subscriptions (ko-fi) for things I like and use. But $10 is getting too high for a thing even though I use it every day. Within five months I'm already past the value of my bike. I need that money to change parts to be able to continue biking.
What I ususally do is a one-month subscription to support. Then I turn it off for the rest of the year.
carlosjobim 35 days ago [-]
You are the exception. Very few people who wouldn't pay $10 would pay $5 or $1, no matter which region. If your salary level makes $10 an important amount of money, then priorities should be food, shelter and such. And if you need five months to save up for bike parts, then you have to urgently try to fix your economic situation, before you put your own health and future at risk.
Moru 34 days ago [-]
I feel sorry for you. On high horses there must be awfully thin air and that can cause nose bleed I heard.
omg... what?
carlosjobim 34 days ago [-]
What's high about my horses? When $10 is a considerable amount of money for you, that means you are broke. If on the other hand, you don't think the product is worth $10, then that's it. I see it every day hackers talking about how they cannot afford $5 or $10 for something. If they are honest, then that means they are living in poverty. If they are not living in poverty, why not just say "I don't think it's worth my money". Why the charade?
wintermutestwin 34 days ago [-]
There is a huge difference between $10 and $10 a month. "Afford" is not necessarily the right qualifier. Frequency of utility is pretty important here. My apple music sub costs $16 for my partner and I. We both use it extensively throughout the day. I might plan a new bike route once or twice a month.
carlosjobim 34 days ago [-]
If $10 per month or $10 once is an important amount, that means the person is broke. Like you explain yourself, it's not that you cannot afford the bike app, it is that the product is not for you, ie it's not worth your money. Most things are not worth our money. That doesn't mean we can't afford them.
macintux 35 days ago [-]
I think your price analysis is predicated on the amount of friction.
For me to sign up with a 3rd party service to pay a subscription: yes, $10/month is probably the smallest fee I'd bother with.
To add a subscription through my Apple devices, where I can manage my apps in a single pane of glass and start/stop subscriptions at will, I'm fine with paying $10/year, $2/month, whatever.
cullenking 35 days ago [-]
I didn't downvote you FYI, but to answer your question, I run ridewithgps and as a result have a pretty in depth understanding of all the costs involved.
We have 14 machines in a rack at a datacenter in PDX, and have focused on low hosting costs since we have historically been bootstrapped and margin sensitive. Redundant switches, 2 firewall/load balancers, 4 compute machines, 3 database machines, 5 storage servers. Single upstream network provider, about to be two sometime next year. Rack space + power + redundant network is about $3500 a month. Machines have an average service life of about 5 years.
Database machines cost about $45k for a set of three.
Storing user data is non-trivial - GPS track files add up when you get close to a billion of them, photos are also very large. We use a self-hosted ceph object storage cluster of 5 machines, about $100k of hardware. it's cheaper than 20k a month in S3 bills.
Our rack all-in is probably about $250k of equipment. 5 year service life, probably $5k a month amortized out. So, doing things as cheap as possible (I buy nvme SSDs for storage cluster off ebay, and am about to buy a couple arista 100gbe switches from ebay as well) we are somewhere around $8500 a month on hosting.
We use both google maps as well as self-hosted OSM based map and routing services. About half our map usage goes to google, by user preference, and we pay them about $20,000 per month for that. Our self-hosted OSM map stuff require 1tb of ram, fast disks, a ton of CPU cores. We host 10 different planet scale routing profiles via graphhopper, which take 3 days to build every week with updated data. They also host a vector maps stack which is much more efficient, taking about 3 hours a week to build.
My last estimate of an AWS bill for all the above was $30k a month, assuming some discounts. We have grown since then and I'd napkin us to be > $40k a month at this point.
We strive to minimize any costs for third party platforms. We do use amplitude for analytics, that's > $30k a year at this point. We do use an external email service for easy marketing emails, but the majority of our millions of emails a month are sent from our own mail servers, using an in-house system we made a decade ago that still works well. We try to minimize vendor lockin and costs, where it makes sense.
Most expensive part of the entire company of course is salaries, with of course an eye to developer and related salaries. We run pretty bare bones where possible, with a flat management structure with minimal overhead. Our total staff size is 32, of which 6 are full-time end user support.
A bit of a ramble, sorry, but there's a large amount of overhead to run a system like ours. We don't just make a one-time use desktop application, we have to continually provide storage and compute for all users. If we stopped that, the entire service would fall apart. So yes, a subscription makes sense in a case like ours. You can't do what we do with a desktop app. Plus, the entire world has switched to mobile for this sort of consumer application, which is an entire rat race of it's own. You can't just release a single purchase app and expect it to be maintained, it's a massive effort to keep up with mobile development just to maintain features, much less build anything new.
wintermutestwin 35 days ago [-]
I sincerely appreciate your serious answer to my serious question. I am quite surprised at all these costs considering that OSM is free, but you explained them very thoroughly and I am impressed. You have adequately justified the subscription requirement.
This post, combined with the fact that your planner actually allows me to force a path has won me as a customer. I'll also note that setting your yearly at 75% of the monthly is wise considering very low winter time usage.
For me, churn or not is going to come down to whether I can read critical details on your mobile app without having to put reading glasses on. (which is a factor that not even a $2t company like Apple can address properly)
cullenking 35 days ago [-]
Unfortunately we still have work to do there. We have dabbled in a separate map style, but it's really difficult to get any roadnames to show up when you start increasing font sizes in map styles. It's a sort of pick-your-poison - big maps where you can see the roads with almost no road names, or maps with smaller details with road names. The app itself should mostly scale well with increased system font sizes, but we are still carving out a couple of webviews in the app which have funky behavior. I do like to joke that with our average staff age passing 40 in the next year or two, we'll solve all readability issues....
wintermutestwin 35 days ago [-]
Well, at least you are aware and considering oldster eyes. Apple regularly makes incredibly bad UI choices that would be easy to avoid.
Serious cyclists tend to be on the older side…
dx-800 35 days ago [-]
Thanks for your interesting comment. I'm a happy customer of ridewithgps, and run a small B2B SaaS, so I love hearing details like this.
One comment: I hope you don't start emphasizing the "social media" aspects, like Strava has done, to their detriment, in my opinion. That's what prompted me to finally delete my Strava account (after uploading my thousands of activities to ridewithgps.)
kemotep 35 days ago [-]
Always great to see a successful “Single Rack of Failure” project out in the wild. And I don’t mean this as a negative. By being able to contain and control all the business into a single rack, you can more easily set up redundancy than trying to replicate your AWS environment between availability zones or worst, try recreating it in Azure or Google with all the different services, footguns, and so on. Just get another rack in a different datacenter and you’re set.
Congratulations to your team on keeping costs low and running a successful business out of a single rack.
cullenking 35 days ago [-]
We are just about finished with a total hoist into a self-hosted k8s cluster. We've gone slow due to my concerns about k8s and the additional complexity, but it's actually been pretty smooth and enjoyable. The end goal is the ability to point our helm charts at any cloud provider and have the entire infra stood up in less than a day. We already do offsite backups to rsync.net. We don't need crazy redundancy and are OK with a certain amount of risk to availability and < 1 day of data loss. Only thing that would take a long time is some GIS search data. We use elasticsearch and h3 hex strings encoded to guarantee prefix searching works for different zoom levels, which is a couple terabytes of derived data that takes a while to compute.
I have been enjoying this on-prem renaissance that we've seen over the last couple of years, makes my stubbornness around self-hosting feel smart in hindsight ;)
Moru 35 days ago [-]
You forget one thing. RWGPS is (I think) one of the few training apps that can record and display all the data on the free tier. And it doesn't nag you every 5 minutes to upgrade to Pro or whatever. I really appreciate that and try to buy a one-month subscription once per year when I can afford it.
I have also worked with gps data and run my own map server (for a small country) so I know it costs money, time and effort. And thanks for the breakdown!
Doctor_Fegg 35 days ago [-]
cycle.travel (my site) aims to do that - the advantage of developing your own cartography! Minor roads in rural areas are shown earlier than in most other styles, but in urban areas they kick in later to avoid cluttering the map too much.
RankingMember 35 days ago [-]
Just wanted to pop in and let you know I use your site all the time and it's still the best (and I've tried everything) at creating routes to avoid dangerous roads. Thank you for the awesome app.
One little feature that's great is the quick link to view Google Streetview images, and the only thing I'd change is to have it let me do that anywhere on the map (not just on the route) so that I can look at alternatives without dragging the route there first.
113 35 days ago [-]
It's a good app, I was happy to subscribe once I used it a couple of times to find new routes about the city.
hn_user82179 35 days ago [-]
is that your site? I love it! I used it on an 800 mile bike ride 2 years go.
Moru 35 days ago [-]
Wow, first bike router that chooses the same route I would to and from work. The others all take the steepest hill in the area instead of the slightly longer around the hill.
qwertox 35 days ago [-]
OpenTopoMap is what solves that issue for me. The contrast on that map is excellent.
It's a mostly a style for OSM with hillshading applied. The Friedrich-Alexander-Universität Erlangen-Nürnberg is hosting a web-based "preview" of it at https://opentopomap.org. https://brouter.de/brouter-web and https://bikerouter.de also have it as a selectable map layer, and it can also be added to OsmAnd.
Yep. This is the a crucial cycling feature that's missing.
Ideally, I'd also like to highlight roads with diverters, circles, chicanes, bumps, tables, etc.
david-gpu 35 days ago [-]
In OpenStreetMap, which is the data source used by most of these navigation apps, the relevant key is traffic_calming.
I have not found any navigation app that preferentially chooses streets with traffic_calming features, such as speed humps. I recently suggested that in OSMAnd and got no traction [0].
Have you tried https://brouter.de/ ? If that feature is neither supported here, it worth trying to request it.
jMyles 35 days ago [-]
Interesting - I'd love to know more about this, and perhaps assist with the data model.
While purpose-built traffic calming infra is super nice to have, I'm somewhat more interested in the much more prevalent (at least, outside Europe and Asia) and also muc less expensive roadways which are traffic-calm by default, owing to natural chicanes, unimproved areas, one-lane bridges, etc.
Bogota, for example, has a fairly elegant network of unimproved roads connecting the parks. If you take a ride with a local, you see the bike infra much more acutely than what is expressed on gmaps, or even theoretically by looking at `traffic_calming==true`. A much more granular data type is required.
35 days ago [-]
T3RMINATED 34 days ago [-]
[dead]
givinguflac 35 days ago [-]
[flagged]
allg12 35 days ago [-]
I definitely want to get the mobile version up and running soon but it’s a lot of work to set everything up for this project especially since Im working solo. For a fully functional route planner, it would probably make more sense to build a React Native app instead of just a website.
Cool idea, i'd love to try it but honestly i'd love it on my phone for the aforementioned reasons!
---
Edit: Some follow up remarks (From Chrome on a Mac)
1. I found it a bit confusing when creating a route. I assumed it would let me do address completion. The UI seems to just be naming my route instead, i think if you're going to borrow visually from Google maps you should follow their patterns.
2. I was able to add my first point (my home), but adding a second point never worked.
3. The click mechanic is a bit odd. I expect clicking elsewhere when the menu is open (add point/close) that the menu would go away - rather than re-appear in my new click location.
4. The map centred me over Europe, i'm in Canada however. Some GeoIP lookup here could give a better experience.
5. Re:point 2, this seems to work when i selected random locations in Europe. I assume this is a data issue? So the real issue here (apart from the routing not working) is there's no feedback on the UI when the routing fails.
6. Refreshing my screen loses my route. Any chance you could save it to local storage or something? Would be amazing if i could create this route on my desktop and then send a link to my phone (once mobile is supported?)
Regarding state: it's only a matter of changing the blacklist array in redux persist config. Right now I have all global state blacklisted because I noticed a small bug with rendering the map layers when the state is persisted and I didn't have time to fix it but in the next version it will be persisted in localstorage.
I couldn't imagine trying to build a complex route on a tiny screen with a crappy phone UI. I am starting to feel like an old man yelling at clouds here. Why in the hell wouldn't you prefer to use a nice monitor with a mouse for a complex task like this?
I nearly always plan routes on my phone. After all, it's the device I use for navigation attached to the stem of my bike.
> Why in the hell wouldn't you prefer to use a nice monitor with a mouse for a complex task like this?
The task isn't very complex with a decent UI. See for example the open-source app OSMAnd (Android & iPhone). Also, I am rarely at my desk, but I always have my phone on me. There can also be the issue of "Neat, I made a route on a big screen; now, how do I get it on my phone for real-time navigation?" depending on the app you are using.
Thia isn't to say you're wrong. I much prefer my monitor and mouse for anything of reasonable complexity. But I increasingly find myself in the minority in that regard among people I know. Hell, I even find myself in the minority for using a laptop for tasks sometimes.
There are simply some things where a phone screen is just too small to use efficiently, and the fingers sometimes aren't just a good, precise enough input device.
Though I am a bit irritated by the brightness of the route on your site, it lacks contrast with respect to the surrounding map.
BTW, how is that routing done? Like which is the used routing engine and is it done server-side or in the browser?
---
It does seem to have a bug, where, when deleting a waypoint, the mouse still is in "create waypoint mode", and any mouse-down on the map, including for panning, results in adding a waypoint.
`Error fetching route from Graphhopper Error: Network response was not ok`
I tried a couple times and got this in the U.S. In Europe I picked a couple random points and it worked fine.
Unlikely. Even with turn costs enabled 256GB (or less) are sufficient. You could also try to disable CH as for bike often no long routes are required (you could disable them). Here we have written down a few more details: https://www.graphhopper.com/blog/2022/06/27/host-your-own-wo...
I thought I would be able to compute the graph with 64GB of ram but it kept crushing before CH and LM stage. After switching to a 128GB instance, it finally worked, hitting around 90GB at peak memory usage. For context, I was using 3 profiles - one with CH and two with LM, plus elevation data and used all of the tips from deploy.md
Maybe you already considered, but there are a number of collection libraries out there that are optimized for holding Java primitives and/or for very large sets of data, which could help you save significant memory. Eclipse Collections [0] and Fastutil [1] come to mind first, but there are many out there [2]
[0] https://github.com/eclipse-collections/eclipse-collections [1] https://fastutil.di.unimi.it/ [2] https://github.com/carrotsearch/hppc/blob/master/ALTERNATIVE...
Another trick for planet size data structure could be to use a List instead of the Map and the OSM ID as index. Because the memory overhead of a Map compared to a List is huge (and you could use DataAccess) and the OSM IDs for planet are nearly adjacent or at least have not that many gaps (as those gaps are refilled I think).
All these tricks (there are more!) are rather tricky&low level but necessary for memory efficiency. A simpler way for your use case could be to just use a database for that, like MapDB or sqlite. But this might be (a lot) slower compared to in-memory stuff.
Yes, definitely.
> I thought I would be able to compute the graph with 64GB of ram but it kept crushing before CH and LM stage.
For normal GraphHopper and just the EU the 64GB should be more than sufficient.
I added a similar feature to cycle.travel (my site) a few months back. 5% of the work was writing the code to route only on waymarked routes, 95% was writing code to "heal" the accidental breaks in OSM bike route data...
Doing OSM editing from Mapillary imagery in various US states, I find that the roads that have roadside signage as “official bike routes”, predate modern safe(r) bike infrastructure. These are often highways that frankly look like death traps: no shoulder, high speed limits. Especially when so many North American long-haul cyclists now are riding “bikepacking” setups, it may be preferable for a router to prioritize quiet agricultural tracks and other unpaved terrain over the supposedly official bike route.
cycle.travel treats routes in the States differently to those in Europe for precisely this reason, and there are some routes which get absolutely zero uplift because many of them are so bad (looking at you, East Coast Greenway).
https://brouter.de/essbee/
One of the most frustrating things for me with snapping to official paths is not being able to modify it for common workarounds (for instance, going across the Golden Gate bridge, everyone takes a shortcut through a parking lot, but every map routing platform I have used forces me to go the official route and messes up my nav)
I'm around hill country TX now where there is typically a patchwork of bike lanes segments that start and stop without much attention given to continuity of (sub)urban planning, walkability, safety, or design consideration for non-motorized users.
I too am interested in linking up good bike trails. Mostly for the east bay gravel systems. Today, I save GPX or geojson from routes I find on Strava and import into a map client (CalTopo). It’s a okay solution but my problem is in finding more alternative routes.
As for Graphhopper, I ran into some challenges during the Europe-wide import stage. It turns out 64GB of RAM wasn’t enough, so I ended up spinning up a 128GB instance on AWS. After tweaking some config settings and following the deployment guide, I finally got it working. I also had to change the source code a bit to link each "official bike route" edge to its corresponding OSM relation info but I managed to get it working in the end(using KVStorage and KValues).
For now, my planner is pretty basic, so I don’t want to bombard you with beginner-level questions. But if something more complex comes up down the road, I’ll definitely take you up on your offer to reach out. Thanks again—I really appreciate your help and generosity!
We use graphhopper for everything, with customized profiles. We add data to the weekly planet PBF files from the OSM project for additional routing data not present in OSM.
This morning, I picked up an affordable m920q with 64GB of RAM and I’m planning to use it for hosting GH and maybe vector tiles too. If I run into any issues I can’t figure out quickly I’ll reach out but I don’t want to bug you with basic questions.
It really reminds me of https://trailrouter.com/ which I've found amazing for finding new running routes.
It would be amazing to have similar functionality to suggest cycling routes of a certain distance that are mostly on bike trails i.e. suggest to me a 40km circular/out-and-back bike route from my house.
Edit: I see now that the cycle.travel developer is here in the thread :)
Sometimes it's actually better to take the road, or you end up on a windy route that's near impossible to follow, debris everywhere, no right of way, etc.
I would like to try this with a "prefer offroad" option.
Mobile needs some work. Are you planning on open sourcing this? I'm a mobile dev that might be able to clean that up a little. Good candidate for React Native.
[0] - https://cyclers.app/
[1] - https://www.cyclestreets.net/
So far, every planner I have tried from this thread has just been frustrating in one way or another. It seems very hard for most to understand things like road+MTB in one ride or that the map shows that the road doesn't go through, but I can simply walk through a gate that a car can't.
This looks interesting and the mobile app seems well made, I like that it suggests multiple routes. Currently I just use Google Maps and it sucks here as well.
https://rc.nau.edu/cranc/?profile=ibc&layer=OpenStreetMap
The only feature I'd want is to be able to print the route on paper maps. I wonder if print CSS could be used to create pages of the whole route.
I have personally had good luck with my Garmin watch. If I start out near a major trail, it tends to suggest routes along that trail. I’m able to input a desired length such as 10 miles and then it suggests multiple routes that are close to that length and use major trails. My biggest complaint with the Garmin is that it tends to suggest the same routes every day.
I was looking at Rails (API mode + partial asset pipeline) + Next.js for a project to start, and might entertain elixir or rust when scalability of slow areas became a problem. Sometimes I think there will be eventually a system of LLMs that will figure out how to manage and configure operating systems, write mobile native and web apps, and administer databases. And then they'll eventually rewrite programming languages and design silicon to be better for themselves, so that they will only need a part time human to clean and maintain the robot security guard.
One thing that would be very useful is to color the segments on the map based on the waytype. The proportions are given in the summary but unless I already know the route I can't tell where exactly those segments of difficult cobblestone are.
Would be cool to also show the elevation for a given segment along with its distance (in the route trail list).
And maybe when you click on a segment in the map, it should highlight that segment in the trial list so you see the length of that segment.
I realize you're just using existing map data, but some bike routes seem to be broken up with very small (couple km) gaps (shown in grey) -- is that really the case? (see Loire a Velo 4 for example)
Had to customize https://brouter.de/brouter-web to make something workable. But i's annoying to paste script, route, export gps, send to phone, import in komot just for a 30min ride. (Can share if anyone is interesed. Just be very respectful please, it does not avoid footpaths either)
Boulder, Colorado for reference.
Constructive feedback: at least on safari, it was not as smooth to navigate as other map apps, and also a bit cumbersome to add waypoints, etc.
A small but important thing - there is a typo in the “activity” spelling.
Hope that helps, and best of luck with it!
It would be great™ if it could drag new mandatory points and choose alternative routes. Also, switching from administrative to with satellite view would be helpful.
UI is not as good but, there is very useful tools like camping, train station, the ability to split your trip in steps ect.
Not sure about the UK but I've cycled quite a lot around here in Europe (12 countries so far) and from my experience, if you don't follow the official bike trails you're missing a lot. They are usually nice scenic and quiet roads with good (asphalt) surfaces. I'm talking about trails like the Alpe Adria Cycle path. There are tons of them in mainland Europe.
But you're right - if the surface is bad, then it doesn't make sense to follow the trail. I will add a feature that will highlight the selected surface on the line (similar to what Komoot already does) so you can better investigate the route and make sure the surface is alright.
I'm also planning to add a feature where users could rate the track so you could filter out the bad tracks based on other people's reviews.
BTW Typo: 'Acitvity type' in the UI should be 'Activity type'.
https://brouter.de/essbee/
Select it in in upper left menu - then fine tune the script on the right.
I've been bikepaking for two years now and I wish I had this tool
I've used komoot in the past but I was never satisfied with the paths it suggested and had to rely on local guides
I've checked with some of the past trips I id and it guesses correctly all of the best paths
May be useful to you or others in this thread. We lean pretty heavily into the "cycling power user" market segment, the feature set isn't always the most discoverable but it's quite comprehensive if you put in the up-front time to learn the tooling (similar to a lot of other specialty mapping apps out there - caltopo, fatmap (rip) etc)
I'd spend up to a $100 once on a killer tool that meets all my needs in this space.
This subscription first crap is way out of hand.
of course; this is primarily a US audience (maybe parts of Europe)
* excellent, almost entirely bug-free routing on mobile
* heatmap data, because maps aren't entirely up-to-date
* multiple map styles, so you can pick what works best for your workflow and the country you're in
* easy GPX file export, I use it all the time with the bike computer (every day on tours)
* collection management, especially useful when I make per-day routes for a tour
* a healthy trial period so you can actually test it out and learn it
Basically it's just an excellent app (and site) that works reliably across every supported platform, that isn't full of spammy upselling garbage, that is clearly made by a competent team of developers who care deeply about the product they make.
Every tech product should be made like this. A lot of tech products used to be like this before enshittification really took off in the last 5-10 years.
I'm more than happy to support a great product like this, as a bicycle tourist and frequent router over unfrequented trails and dirt roads in the mountains around me. For road riders in cities, it's probably a whole lot less useful. But there are a lot of bicycle riding use cases outside of 'road riders in cities' :-)
This is me as well. Thanks much for your perspective, it was helpful in me making the decision to jump in.
I do like the idea of supporting products and services that are staving off enshitificaiton.
Why should it be a subscription instead of a pay-once app? Maps have to update as the real world updates, and probably they have other features that can't be on-device.
I'm paying for $1 and $5 subscriptions (ko-fi) for things I like and use. But $10 is getting too high for a thing even though I use it every day. Within five months I'm already past the value of my bike. I need that money to change parts to be able to continue biking.
What I ususally do is a one-month subscription to support. Then I turn it off for the rest of the year.
omg... what?
For me to sign up with a 3rd party service to pay a subscription: yes, $10/month is probably the smallest fee I'd bother with.
To add a subscription through my Apple devices, where I can manage my apps in a single pane of glass and start/stop subscriptions at will, I'm fine with paying $10/year, $2/month, whatever.
We have 14 machines in a rack at a datacenter in PDX, and have focused on low hosting costs since we have historically been bootstrapped and margin sensitive. Redundant switches, 2 firewall/load balancers, 4 compute machines, 3 database machines, 5 storage servers. Single upstream network provider, about to be two sometime next year. Rack space + power + redundant network is about $3500 a month. Machines have an average service life of about 5 years.
Database machines cost about $45k for a set of three.
Storing user data is non-trivial - GPS track files add up when you get close to a billion of them, photos are also very large. We use a self-hosted ceph object storage cluster of 5 machines, about $100k of hardware. it's cheaper than 20k a month in S3 bills.
Our rack all-in is probably about $250k of equipment. 5 year service life, probably $5k a month amortized out. So, doing things as cheap as possible (I buy nvme SSDs for storage cluster off ebay, and am about to buy a couple arista 100gbe switches from ebay as well) we are somewhere around $8500 a month on hosting.
We use both google maps as well as self-hosted OSM based map and routing services. About half our map usage goes to google, by user preference, and we pay them about $20,000 per month for that. Our self-hosted OSM map stuff require 1tb of ram, fast disks, a ton of CPU cores. We host 10 different planet scale routing profiles via graphhopper, which take 3 days to build every week with updated data. They also host a vector maps stack which is much more efficient, taking about 3 hours a week to build.
My last estimate of an AWS bill for all the above was $30k a month, assuming some discounts. We have grown since then and I'd napkin us to be > $40k a month at this point.
We strive to minimize any costs for third party platforms. We do use amplitude for analytics, that's > $30k a year at this point. We do use an external email service for easy marketing emails, but the majority of our millions of emails a month are sent from our own mail servers, using an in-house system we made a decade ago that still works well. We try to minimize vendor lockin and costs, where it makes sense.
Most expensive part of the entire company of course is salaries, with of course an eye to developer and related salaries. We run pretty bare bones where possible, with a flat management structure with minimal overhead. Our total staff size is 32, of which 6 are full-time end user support.
A bit of a ramble, sorry, but there's a large amount of overhead to run a system like ours. We don't just make a one-time use desktop application, we have to continually provide storage and compute for all users. If we stopped that, the entire service would fall apart. So yes, a subscription makes sense in a case like ours. You can't do what we do with a desktop app. Plus, the entire world has switched to mobile for this sort of consumer application, which is an entire rat race of it's own. You can't just release a single purchase app and expect it to be maintained, it's a massive effort to keep up with mobile development just to maintain features, much less build anything new.
This post, combined with the fact that your planner actually allows me to force a path has won me as a customer. I'll also note that setting your yearly at 75% of the monthly is wise considering very low winter time usage.
For me, churn or not is going to come down to whether I can read critical details on your mobile app without having to put reading glasses on. (which is a factor that not even a $2t company like Apple can address properly)
Serious cyclists tend to be on the older side…
One comment: I hope you don't start emphasizing the "social media" aspects, like Strava has done, to their detriment, in my opinion. That's what prompted me to finally delete my Strava account (after uploading my thousands of activities to ridewithgps.)
Congratulations to your team on keeping costs low and running a successful business out of a single rack.
I have been enjoying this on-prem renaissance that we've seen over the last couple of years, makes my stubbornness around self-hosting feel smart in hindsight ;)
I have also worked with gps data and run my own map server (for a small country) so I know it costs money, time and effort. And thanks for the breakdown!
One little feature that's great is the quick link to view Google Streetview images, and the only thing I'd change is to have it let me do that anywhere on the map (not just on the route) so that I can look at alternatives without dragging the route there first.
It's a mostly a style for OSM with hillshading applied. The Friedrich-Alexander-Universität Erlangen-Nürnberg is hosting a web-based "preview" of it at https://opentopomap.org. https://brouter.de/brouter-web and https://bikerouter.de also have it as a selectable map layer, and it can also be added to OsmAnd.
Ideally, I'd also like to highlight roads with diverters, circles, chicanes, bumps, tables, etc.
I have not found any navigation app that preferentially chooses streets with traffic_calming features, such as speed humps. I recently suggested that in OSMAnd and got no traction [0].
[0] https://github.com/osmandapp/OsmAnd/issues/21320
While purpose-built traffic calming infra is super nice to have, I'm somewhat more interested in the much more prevalent (at least, outside Europe and Asia) and also muc less expensive roadways which are traffic-calm by default, owing to natural chicanes, unimproved areas, one-lane bridges, etc.
Bogota, for example, has a fairly elegant network of unimproved roads connecting the parks. If you take a ride with a local, you see the bike infra much more acutely than what is expressed on gmaps, or even theoretically by looking at `traffic_calming==true`. A much more granular data type is required.