PageSourceSearch

https://veloplanner.com/app

html veloplanner.com collected 2026-10-01 13:05:56 UTC 61,026 bytes, 935 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" class="[scrollbar-gutter:stable] h-full">
3  <head>
4    <meta charset="utf-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1">
6    <meta name="csrf-token" content="fwQFHgoDdzEufB9DLhcJJ0NIJWVOBgkL26ZIXi8zzHJvwZgh2yVRw3dY">
7
8    
8<script>
9  // Configure sentryOnLoad before adding the Loader Script
10  window.sentryOnLoad = function () {
11    Sentry.init({
12      ignoreErrors: [/(Non-Error promise rejection)/, /(TurnstileError: [Cloudflare Turnstile] Error: 300030)/, /(Error\: 300030)/, /(TurnstileError)/, "TurnstileError", /(Fetch is aborted)/, /(Event `ErrorEvent` captured as exception with message `Script error.`)/, /(ResizeObserver loop)/]
13    });
14  };
15</script>
15
16
17<script src="https://js-de.sentry-cdn.com/631b37f05741103849cd7a1d8359b71b.min.js" crossorigin="anonymous">
18</script>
18
19
20    <title data-suffix="">
21      VeloPlanner Mobile App | Plan Cycling Routes
22    </title>
23    <meta property="og:title" content="VeloPlanner Mobile App | Plan Cycling Routes">
24    <meta property="og:type" content="website">
25    <meta property="og:locale" content="en_US">
26    <meta property="og:locale:alternate" content="cs_CZ"><meta property="og:locale:alternate" content="de_DE"><meta property="og:locale:alternate" content="es_ES"><meta property="og:locale:alternate" content="fr_FR"><meta property="og:locale:alternate" content="nl_NL"><meta property="og:locale:alternate" content="pl_PL">
27
28    <meta name="apple-itunes-app" content="app-id=6753161627">
29
30    <link rel="icon" type="image/x-icon" href="/favicon.ico">
31    <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32.png">
32    <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png">
33
34    
35  
35<script type="application/ld+json">
36    {"@context":"https://schema.org","@id":"https://veloplanner.com/#mobile-app","@type":"MobileApplication","applicationCategory":"SportsApplication","inLanguage":"en","installUrl":["https://play.google.com/store/apps/details?id=com.veloplanner.mobile","https://apps.apple.com/app/veloplanner-bike-planner/id6753161627"],"name":"VeloPlanner","offers":{"@type":"Offer","price":"0","priceCurrency":"EUR"},"operatingSystem":"iOS, Android","publisher":{"@id":"https://veloplanner.com/#organization"},"url":"https://veloplanner.com/app"}
37  </script>
37
38
39  
39<script type="application/ld+json">
40    {"@context":"https://schema.org","@id":"https://veloplanner.com/#organization","@type":"Organization","logo":"https://veloplanner.com/images/logo.png","name":"VeloPlanner","sameAs":["https://www.facebook.com/VeloPlannerGlobal/","https://www.instagram.com/veloplanner","https://www.linkedin.com/company/veloplanner/","https://www.youtube.com/@veloplanner","https://play.google.com/store/apps/details?id=com.veloplanner.mobile","https://apps.apple.com/app/veloplanner-bike-planner/id6753161627"],"url":"https://veloplanner.com"}
41  </script>
41
42
43  
43<script type="application/ld+json">
44    {"@context":"https://schema.org","@type":"WebSite","description":"Detailed guides for official cycling routes plus advanced route planner. Explore EuroVelo, Alpe Adria, Elbe Cycle Route, and more with POI information","inLanguage":"en","name":"VeloPlanner: Bike Route Planner and Official Cycling Routes","publisher":{"@id":"https://veloplanner.com/#organization"},"url":"https://veloplanner.com"}
45  </script>
45
46
47
48    
49
50    <meta name="description" content="Plan your perfect cycling adventure - from weekend rides to epic tours. Download VeloPlanner app for iOS and Android.">
51    <meta property="og:description" content="Plan your perfect cycling adventure - from weekend rides to epic tours. Download VeloPlanner app for iOS and Android.">
52
53    <meta property="og:image" content="https://veloplanner.com/images/meta_en.png?v=1">
54    <meta property="og:image:url" content="https://veloplanner.com/images/meta_en.png?v=1">
55    <meta property="og:image:type" content="image/png">
56
57    <meta name="twitter:card" content="summary_large_image">
58    <meta name="twitter:title" content="VeloPlanner Mobile App | Plan Cycling Routes">
59    <meta name="twitter:description" content="Plan your perfect cycling adventure - from weekend rides to epic tours. Download VeloPlanner app for iOS and Android.">
60    <meta name="twitter:image" content="https://veloplanner.com/images/meta_en.png?v=1">
61
62    <link phx-track-static rel="stylesheet" href="/assets/ui-ff2ac6d107052f7327a9c50284153a31.css?vsn=d">
63
64    <meta property="og:url" content="https://veloplanner.com/app">
65
66    <link rel="canonical" href="https://veloplanner.com/app">
67
68    
68<script>
69
70    </script>
70
71
72    
73    
74
75    
76  <link rel="alternate" hreflang="x-default" href="https://veloplanner.com/app">
77
78  <link rel="alternate" hreflang="en" href="https://veloplanner.com/app">
79
80  <link rel="alternate" hreflang="cs" href="https://veloplanner.com/cs/app">
81
82  <link rel="alternate" hreflang="de" href="https://veloplanner.com/de/app">
83
84  <link rel="alternate" hreflang="es" href="https://veloplanner.com/es/app">
85
86  <link rel="alternate" hreflang="fr" href="https://veloplanner.com/fr/app">
87
88  <link rel="alternate" hreflang="nl" href="https://veloplanner.com/nl/app">
89
90  <link rel="alternate" hreflang="pl" href="https://veloplanner.com/pl/app">
91
92
93    
93<script>
94      window.VELO_CONSTANTS = {
95        googleMapsEmbedApiKey: "AIzaSyB4EnR4UvovPBfPi3MZewg3dt5ZQOjbCVY",
96        bookingAid: 2434044,
97        enableFbAnalytics: true,
98        isPremiumUser: false,
99        canEmbedTerrainBasemap: false,
100        currentLocale: "en",
101        isUserLoggedIn: false,
102        userId: -42,
103        isUserEmailConfirmed: false,
104        hasUsedMobileApp: false,
105        isAdmin: false,
106        defaultRideSpeedKmh: null,
107        unitSystem: "metric",
108        bookingLogoPath: `/images/icons/booking-025d4f263f34a07c5a2f1a0353112346.svg?vsn=d`,
109        mprMalopolskaLogoPath: `/images/logos/mpr_malopolska_simple_100-c3aac70b037d4337b9679a4a243914d5.png?vsn=d`,
110        veloplannerAvatarPath: `/images/veloplanner_avatar-c4886362923b3a7dc0428d4c09eff27b.png?vsn=d`,
111        veloplannerLogoPath: `/images/logo_veloplanner-9f752141b351a34a94ee8ff8542e7b5c.svg?vsn=d`,
112        routes: {
113          userProfile: `/users/:user_id`,
114          ranking: `/community/ranking`,
115          planner: `/plan`,
116          getPremium: `/premium`,
117          terms: `/terms`,
118          userRouteUrl: `https://veloplanner.com/user-routes/:user_route_id`,
119          cyclingRouteUrl: `https://veloplanner.com/routes/:slug`,
120          userRouteEmbedUrl: `https://veloplanner.com/embeds/user-routes/:user_route_id`,
121          cyclingRouteEmbedUrl: `https://veloplanner.com/embeds/cycling-routes/:id`,
122          login: `/login`,
123          register: `/signup`,
124          confirmEmail: `/users/confirm-email`,
125          userRoute: `/user-routes/:user_route_id`,
126          userRoutes: `/users/:user_id/routes`,
127          userCollections: `/users/:user_id/collections`,
128          regionUrl: `/regions/:slug`,
129          plannerEdit: `/user-routes/:user_route_id/edit`,
130          collectionEmbedUrl: `https://veloplanner.com/embeds/collections/:collection_id`,
131          collectionUrl: `/collections/:collection_id`,
132          collectionNew: `/users/:user_id/collections/new`,
133          collectionEdit: `/users/:user_id/collections/:collection_id/edit`,
134          collectionManage: `/users/:user_id/collections/:collection_id/manage`,
135          routeViewUpload: `/route-view-upload`,
136          communityRanking: `/community/ranking`,
137          veloFriendly: `/velo-friendly`,
138          placeUrl: `/places/:slug`,
139          userActivities: `/users/:user_id/activities`,
140          activity: `/activities/:activity_id`,
141          api: {
142            userRoute: `/api/internal/user_routes/:user_route_id`,
143            userRouteCreate: `/api/internal/user_routes`,
144            kioskUserRouteCreate: `/api/internal/kiosk/user_routes`,
145            userRouteUpdate: `/api/internal/user_routes/:user_route_id`,
146            cyclingRoutesSearch: `/api/internal/cycling-routes`,
147            cyclingRouteLike: `/api/internal/cycling-routes/:id/like`,
148            cyclingRouteUnlike: `/api/internal/cycling-routes/:id/like`,
149            userRouteLike: `/api/internal/user_routes/:id/like`,
150            userRouteUnlike: `/api/internal/user_routes/:id/like`,
151            userRouteCollections: `/api/internal/user_routes/:id/collections`,
152            userRouteRegenerateToken: `/api/internal/user_routes/:id/regenerate-token`,
153            updateRideSpeed: `/api/internal/user/ride-speed`,
154            collectionRegenerateToken: `/api/internal/collections/:id/regenerate-token`,
155            activityRegenerateToken: `/api/internal/activities/:id/regenerate-token`,
156            collections: `/api/internal/collections`,
157            collectionLike: `/api/internal/collections/:id/like`,
158            collectionUnlike: `/api/internal/collections/:id/like`,
159            regionLike: `/api/internal/regions/:id/like`,
160            regionUnlike: `/api/internal/regions/:id/like`,
161            createPoiReview: `/api/internal/poi-reviews`,
162            updatePoiReview: `/api/internal/poi-reviews/:id`,
163            deletePoiReview: `/api/internal/poi-reviews/:id`,
164            showPoi: `/api/internal/poi-details`
165          }
166        },
167        csrfToken: "fwQFHgoDdzEufB9DLhcJJ0NIJWVOBgkL26ZIXi8zzHJvwZgh2yVRw3dY",
168        workerPaths: {
169          distanceSymbolsWorker: `/assets/workers/distanceSymbolsWorker-854cae93e5ba0d76362f046ce022a629.js?vsn=d`
170        },
171        i18nLocaleUrls: {"cs":"/assets/locales/cs-f1c1cb32e7ff3dbb9bde459c0e51d3ca.json?vsn=d","de":"/assets/locales/de-1a1e80f5621bb27b5a904ec3fa13925f.json?vsn=d","es":"/assets/locales/es-f8ee2c6d786cd0733c75acc8941c1149.json?vsn=d","fr":"/assets/locales/fr-e14a71f478b9dcd09678aad2b7663deb.json?vsn=d","nl":"/assets/locales/nl-c5ddf735aaf34dbe38b8a64595bcb60d.json?vsn=d","pl":"/assets/locales/pl-2754358d422a2f9521fef8f746c22e96.json?vsn=d"}
172      }
173    </script>
173
174  </head>
175  <body class="h-full bg-white " data-view-name="MobileAppShowView">
176    
177  <div id="flash-group" class="fixed" style="z-index: 100;">
178  
179  
180  <div id="client-error" phx-click="[[&quot;push&quot;,{&quot;value&quot;:{&quot;key&quot;:&quot;error&quot;},&quot;event&quot;:&quot;lv:clear-flash&quot;}],[&quot;hide&quot;,{&quot;time&quot;:200,&quot;to&quot;:&quot;#client-error&quot;,&quot;transition&quot;:[[&quot;transition-all&quot;,&quot;transform&quot;,&quot;ease-in&quot;,&quot;duration-200&quot;],[&quot;opacity-100&quot;,&quot;translate-y-0&quot;,&quot;sm:scale-100&quot;],[&quot;opacity-0&quot;,&quot;translate-y-4&quot;,&quot;sm:translate-y-0&quot;,&quot;sm:scale-95&quot;]]}]]" data-toggle="#client-error" role="alert" class="fixed top-2 right-2 mr-2 w-80 sm:w-96 z-50 rounded-lg p-3 ring-1 bg-rose-50 text-rose-900 shadow-md ring-rose-500 fill-rose-900" hidden phx-connected="[[&quot;hide&quot;,{&quot;time&quot;:200,&quot;to&quot;:&quot;#client-error&quot;,&quot;transition&quot;:[[&quot;transition-all&quot;,&quot;transform&quot;,&quot;ease-in&quot;,&quot;duration-200&quot;],[&quot;opacity-100&quot;,&quot;translate-y-0&quot;,&quot;sm:scale-100&quot;],[&quot;opacity-0&quot;,&quot;translate-y-4&quot;,&quot;sm:translate-y-0&quot;,&quot;sm:scale-95&quot;]]}]]" phx-disconnected="[[&quot;show&quot;,{&quot;time&quot;:1300,&quot;to&quot;:&quot;.phx-client-error #client-error&quot;,&quot;transition&quot;:[[&quot;delay-1000&quot;,&quot;transition-all&quot;,&quot;transform&quot;,&quot;ease-out&quot;,&quot;duration-300&quot;],[&quot;opacity-0&quot;,&quot;translate-y-4&quot;,&quot;sm:translate-y-0&quot;,&quot;sm:scale-95&quot;],[&quot;opacity-100&quot;,&quot;translate-y-0&quot;,&quot;sm:scale-100&quot;]]}]]">
181  <p class="flex items-center gap-1.5 text-sm font-semibold leading-6">
182    
183    <span class="hero-exclamation-circle-mini h-4 w-4"></span>
184    We can&#39;t find the internet
185  </p>
186  <p class="mt-2 text-sm leading-5">
187    Attempting to reconnect
188    <span class="hero-arrow-path ml-1 h-3 w-3 animate-spin"></span>
189  </p>
190  <button type="button" class="group absolute top-1 right-1 p-2" aria-label="close">
191    <span class="hero-x-mark-solid h-5 w-5 opacity-40 group-hover:opacity-70"></span>
192  </button>
193</div>
194
195  <div id="server-error" phx-click="[[&quot;push&quot;,{&quot;value&quot;:{&quot;key&quot;:&quot;error&quot;},&quot;event&quot;:&quot;lv:clear-flash&quot;}],[&quot;hide&quot;,{&quot;time&quot;:200,&quot;to&quot;:&quot;#server-error&quot;,&quot;transition&quot;:[[&quot;transition-all&quot;,&quot;transform&quot;,&quot;ease-in&quot;,&quot;duration-200&quot;],[&quot;opacity-100&quot;,&quot;translate-y-0&quot;,&quot;sm:scale-100&quot;],[&quot;opacity-0&quot;,&quot;translate-y-4&quot;,&quot;sm:translate-y-0&quot;,&quot;sm:scale-95&quot;]]}]]" data-toggle="#server-error" role="alert" class="fixed top-2 right-2 mr-2 w-80 sm:w-96 z-50 rounded-lg p-3 ring-1 bg-rose-50 text-rose-900 shadow-md ring-rose-500 fill-rose-900" hidden phx-connected="[[&quot;hide&quot;,{&quot;time&quot;:200,&quot;to&quot;:&quot;#server-error&quot;,&quot;transition&quot;:[[&quot;transition-all&quot;,&quot;transform&quot;,&quot;ease-in&quot;,&quot;duration-200&quot;],[&quot;opacity-100&quot;,&quot;translate-y-0&quot;,&quot;sm:scale-100&quot;],[&quot;opacity-0&quot;,&quot;translate-y-4&quot;,&quot;sm:translate-y-0&quot;,&quot;sm:scale-95&quot;]]}]]" phx-disconnected="[[&quot;show&quot;,{&quot;time&quot;:300,&quot;to&quot;:&quot;.phx-server-error #server-error&quot;,&quot;transition&quot;:[[&quot;transition-all&quot;,&quot;transform&quot;,&quot;ease-out&quot;,&quot;duration-300&quot;],[&quot;opacity-0&quot;,&quot;translate-y-4&quot;,&quot;sm:translate-y-0&quot;,&quot;sm:scale-95&quot;],[&quot;opacity-100&quot;,&quot;translate-y-0&quot;,&quot;sm:scale-100&quot;]]}]]">
196  <p class="flex items-center gap-1.5 text-sm font-semibold leading-6">
197    
198    <span class="hero-exclamation-circle-mini h-4 w-4"></span>
199    Something went wrong!
200  </p>
201  <p class="mt-2 text-sm leading-5">
202    Hang in there while we get back on track
203    <span class="hero-arrow-path ml-1 h-3 w-3 animate-spin"></span>
204  </p>
205  <button type="button" class="group absolute top-1 right-1 p-2" aria-label="close">
206    <span class="hero-x-mark-solid h-5 w-5 opacity-40 group-hover:opacity-70"></span>
207  </button>
208</div>
209</div>
210  
211
212
213
214  <div>
215  <div id="sticky_navbar" class="sticky top-0 z-50 bg-white">
216    <header class="bg-white ">
217  <nav class="flex items-center justify-between px-4 py-4 mx-auto">
218    <div class="flex lg:flex-1 items-center">
219      <div class="flex items-center gap-x-4" style="margin-right: 32px;">
220        <a href="/" class="-m-1.5 px-1.5">
221          <span class="sr-only">VeloPlanner</span>
222          <svg class="shrink-0 block overflow-visible" width="158.8" height="34.8" style="height: 34.8px" viewBox="0 0 794 174" fill="none" xmlns="http://www.w3.org/2000/svg">
223  <path d="M87 0C135.051 0 174 38.9514 174 87C174 135.049 135.051 174 87 174C38.9493 174 0 135.049 0 87C0 38.9514 38.9493 0 87 0Z" fill="#054327"></path>
224  <path fill-rule="evenodd" clip-rule="evenodd" d="M88.1128 60.5419C88.1128 48.9268 96.1864 39.5882 107.709 39.5882C116.27 39.5882 122.033 44.6449 125.264 50.5775C127.271 54.2637 128.458 58.4813 129.044 62.6808C132.411 60.194 135.961 56.7358 139.555 52.0191L151.324 60.9026C144.195 70.2573 136.428 76.4287 128.719 79.8279C126.918 92.1566 122.101 104.599 115.316 114.751C106.74 127.584 93.8109 138.412 78.2106 138.412C69.4148 138.412 61.9386 136.08 56.6992 130.818C51.4778 125.573 49.6138 118.557 49.6138 111.554C49.6138 107.59 50.5733 103.452 51.7137 99.6578C52.7761 96.1238 54.154 92.397 55.4581 88.87C55.5711 88.5644 55.6835 88.2602 55.7952 87.9577C58.7881 79.8517 61.0702 73.1749 61.0702 68.0237C61.0702 64.5123 60.0738 61.4191 58.304 59.3346C56.7152 57.4633 53.879 55.6492 48.3828 55.6492V40.9486C57.6222 40.9486 64.8223 44.2357 69.5859 49.8462C74.1686 55.2435 75.8408 62.0128 75.8408 68.0237C75.8408 76.2863 72.4166 85.5606 69.6854 92.9577L69.6594 93.0282C69.5576 93.3038 69.4565 93.5775 69.356 93.8494C68.0111 97.4889 66.7892 100.795 65.8646 103.871C64.857 107.223 64.3844 109.737 64.3844 111.554C64.3844 116.114 65.58 118.852 67.1913 120.47C68.7846 122.071 71.9141 123.711 78.2106 123.711C86.6206 123.711 95.6436 117.644 103.017 106.61C107.671 99.6461 111.184 91.361 113.099 83.0402C112.394 83.0185 111.694 82.9735 111.001 82.9057C98.6597 81.6996 88.1128 72.7364 88.1128 60.5419ZM114.715 68.3369C114.59 64.0586 113.701 60.196 112.278 57.5831C110.879 55.0136 109.439 54.2889 107.709 54.2889C105.511 54.2889 102.883 55.8329 102.883 60.5419C102.883 63.3
22411 105.645 67.611 112.444 68.2754C113.153 68.3447 113.912 68.3687 114.715 68.3369Z" fill="white"></path>
225  <path d="M758.741 114.355V57.787H771.85V82.0451H771.541C771.541 74.0623 773.227 67.9032 776.599 63.5677C780.04 59.2322 784.994 57.0645 791.463 57.0645H793.631V71.3096H789.502C784.96 71.3096 781.45 72.5483 778.973 75.0257C776.495 77.4343 775.257 80.944 775.257 85.5548V114.355H758.741Z" fill="#054327"></path>
226  <path d="M724.363 116.316C719.546 116.316 715.279 115.49 711.563 113.839C707.916 112.187 704.854 109.985 702.376 107.232C699.968 104.411 698.11 101.28 696.802 97.8387C695.563 94.329 694.944 90.7505 694.944 87.1032V85.0387C694.944 81.2537 695.563 77.6408 696.802 74.2C698.11 70.6903 699.968 67.5591 702.376 64.8064C704.785 62.0537 707.778 59.886 711.357 58.3032C715.004 56.6516 719.133 55.8258 723.744 55.8258C729.8 55.8258 734.892 57.2021 739.021 59.9548C743.219 62.6387 746.419 66.1828 748.621 70.5871C750.824 74.9226 751.925 79.6709 751.925 84.8322V90.4064H701.86V81.0129H741.912L736.544 85.3484C736.544 81.9763 736.062 79.086 735.099 76.6774C734.135 74.2688 732.69 72.4451 730.763 71.2064C728.905 69.8989 726.565 69.2451 723.744 69.2451C720.854 69.2451 718.411 69.8989 716.415 71.2064C714.419 72.514 712.905 74.4408 711.873 76.9871C710.841 79.4645 710.325 82.5269 710.325 86.1742C710.325 89.5462 710.806 92.5054 711.77 95.0516C712.733 97.529 714.247 99.4559 716.312 100.832C718.376 102.209 721.06 102.897 724.363 102.897C727.391 102.897 729.869 102.312 731.796 101.142C733.722 99.972 735.03 98.5269 735.718 96.8064H750.892C750.067 100.591 748.449 103.963 746.041 106.923C743.632 109.882 740.604 112.187 736.957 113.839C733.31 115.49 729.112 116.316 724.363 116.316Z" fill="#054327"></path>
227  <path d="M635.244 114.355V57.7871H648.354V82.0452H647.425C647.425 76.2645 648.147 71.4473 649.593 67.5935C651.106 63.7398 653.377 60.8495 656.405 58.9226C659.433 56.9957 663.115 56.0323 667.451 56.0323H668.173C674.78 56.0323 679.803 58.2 683.244 62.5355C686.754 66.8021 688.509 73.3054 688.509 82.0452V114.355H671.993V81.1161C671.993 78.0882 671.098 75.6107 669.309 73.6839C667.519 71.757 665.111 70.7935 662.083 70.7935C658.986 70.7935 656.474 71.7914 654.547 73.7871C652.689 75.714 651.76 78.2602 651.76 81.4258V114.355H635.244Z" fill="#054327"></path>
228  <path d="M572.035 114.355V57.7871H585.144V82.0452H584.215C584.215 76.2645 584.938 71.4473 586.383 67.5935C587.897 63.7398 590.168 60.8495 593.196 58.9226C596.224 56.9957 599.906 56.0323 604.241 56.0323H604.964C611.57 56.0323 616.594 58.2 620.035 62.5355C623.544 66.8021 625.299 73.3054 625.299 82.0452V114.355H608.783V81.1161C608.783 78.0882 607.889 75.6107 606.099 73.6839C604.31 71.757 601.901 70.7935 598.873 70.7935C595.777 70.7935 593.265 71.7914 591.338 73.7871C589.48 75.714 588.551 78.2602 588.551 81.4258V114.355H572.035Z" fill="#054327"></path>
229  <path d="M549.043 114.355V97.6323H546.256V79.4645C546.256 76.5742 545.568 74.4065 544.191 72.9613C542.815 71.5161 540.613 70.7935 537.585 70.7935C536.071 70.7935 534.075 70.828 531.598 70.8968C529.12 70.9656 526.574 71.0688 523.959 71.2065C521.344 71.3441 518.97 71.4817 516.836 71.6194V57.6839C518.419 57.5462 520.277 57.4086 522.411 57.271C524.544 57.1333 526.746 57.0301 529.017 56.9613C531.288 56.8925 533.421 56.8581 535.417 56.8581C541.198 56.8581 546.049 57.6839 549.972 59.3355C553.963 60.9871 556.991 63.4989 559.056 66.871C561.12 70.1742 562.152 74.4409 562.152 79.671V114.355H549.043ZM530.978 115.8C526.918 115.8 523.34 115.077 520.243 113.632C517.215 112.187 514.841 110.123 513.12 107.439C511.4 104.686 510.54 101.417 510.54 97.6323C510.54 93.5032 511.606 90.1312 513.74 87.5161C515.873 84.8323 518.866 82.871 522.72 81.6323C526.574 80.3247 531.013 79.671 536.036 79.671H548.114V88.8581H535.933C533.043 88.8581 530.806 89.5807 529.223 91.0258C527.709 92.4022 526.952 94.2946 526.952 96.7032C526.952 98.9742 527.709 100.832 529.223 102.277C530.806 103.654 533.043 104.342 535.933 104.342C537.791 104.342 539.443 104.032 540.888 103.413C542.402 102.725 543.641 101.589 544.604 100.006C545.568 98.4237 546.118 96.2215 546.256 93.4L550.178 97.529C549.834 101.452 548.871 104.755 547.288 107.439C545.774 110.123 543.641 112.187 540.888 113.632C538.204 115.077 534.901 115.8 530.978 115.8Z" fill="#054327"></path>
230  <path d="M487.164 114.355V39H503.784V114.355H487.164ZM480.455 51.1806V39H503.784V51.1806H480.455Z" fill="#054327"></path>
231  <path d="M417.991 135V57.7871H431.101V82.2516L429.346 82.1484C429.621 76.5054 430.791 71.757 432.856 67.9032C434.92 63.9806 437.707 61.0559 441.217 59.129C444.727 57.1333 448.684 56.1355 453.088 56.1355C457.011 56.1355 460.555 56.8581 463.72 58.3
231032C466.955 59.7484 469.707 61.7785 471.978 64.3935C474.318 66.9398 476.073 69.9677 477.243 73.4774C478.482 76.9183 479.101 80.7032 479.101 84.8323V87.2064C479.101 91.2667 478.516 95.086 477.346 98.6645C476.176 102.174 474.456 105.237 472.185 107.852C469.983 110.467 467.264 112.531 464.03 114.045C460.864 115.49 457.217 116.213 453.088 116.213C448.821 116.213 444.968 115.353 441.527 113.632C438.155 111.843 435.437 109.159 433.372 105.581C431.307 101.933 430.172 97.3226 429.966 91.7484L434.507 97.9419V135H417.991ZM448.443 102.381C451.264 102.381 453.707 101.692 455.772 100.316C457.905 98.9398 459.557 97.0129 460.727 94.5355C461.897 92.0581 462.482 89.2021 462.482 85.9677C462.482 82.7333 461.897 79.9118 460.727 77.5032C459.557 75.0946 457.94 73.2366 455.875 71.929C453.811 70.5527 451.333 69.8645 448.443 69.8645C445.966 69.8645 443.626 70.4495 441.424 71.6193C439.221 72.7892 437.432 74.4753 436.056 76.6774C434.748 78.8108 434.095 81.4258 434.095 84.5226V88.3419C434.095 91.3011 434.783 93.8473 436.159 95.9806C437.604 98.0452 439.428 99.6279 441.63 100.729C443.832 101.83 446.103 102.381 448.443 102.381Z" fill="#054327"></path>
232  <path d="M379.419 116.316C374.464 116.316 370.059 115.559 366.206 114.045C362.352 112.462 359.083 110.329 356.399 107.645C353.784 104.961 351.789 101.899 350.412 98.458C349.036 94.9484 348.348 91.2666 348.348 87.4129V85.0387C348.348 81.1161 349.036 77.4 350.412 73.8903C351.857 70.3118 353.922 67.1806 356.606 64.4967C359.358 61.8129 362.662 59.7139 366.515 58.2C370.369 56.6172 374.67 55.8258 379.419 55.8258C384.305 55.8258 388.64 56.6172 392.425 58.2C396.279 59.7139 399.548 61.8129 402.232 64.4967C404.915 67.1806 406.98 70.3118 408.425 73.8903C409.87 77.4 410.593 81.1161 410.593 85.0387V87.4129C410.593 91.2666 409.905 94.9484 408.528 98.458C407.152 101.899 405.122 104.961 402.438 107.645C399.823 110.329 396.589 112.462 392.735 114.045C388.881 115.559 384.442 116.316 379.419 116.316ZM379.419 102.381C382.653 102.381 385.337 101.692 387.47 100.316C389.604 98.9398 391.221 97.0129 392.322 94.5354C393.492 92.058 394.077 89.3053 394.077 86.2774C394.077 83.043 393.492 80.2215 392.322 77.8129C391.152 75.3355 389.466 73.3742 387.264 71.929C385.13 70.4838 382.515 69.7613 379.419 69.7613C376.391 69.7613 373.776 70.4838 371.573 71.929C369.371 73.3742 367.685 75.3355 366.515 77.8129C365.414 80.2215 364.864 83.043 364.864 86.2774C364.864 89.3053 365.414 92.058 366.515 94.5354C367.616 97.0129 369.268 98.9398 371.47 100.316C373.672 101.692 376.322 102.381 379.419 102.381Z" fill="#054327"></path>
233  <path d="M324.149 114.355V39H340.768V114.355H324.149ZM317.439 51.1806V39H340.768V51.1806H317.439Z" fill="#054327"></path>
234  <path d="M289.05 116.316C284.233 116.316 279.966 115.49 276.25 113.839C272.603 112.187 269.541 109.985 267.063 107.232C264.655 104.411 262.796 101.28 261.489 97.8387C260.25 94.329 259.631 90.7505 259.631 87.1032V85.0387C259.631 81.2537 260.25 77.6408 261.489 74.2C262.796 70.6903 264.655 67.5591 267.063 64.8064C269.472 62.0537 272.465 59.886 276.044 58.3032C279.691 56.6516 283.82 55.8258 288.431 55.8258C294.487 55.8258 299.579 57.2021 303.708 59.9548C307.906 62.6387 311.106 66.1828 313.308 70.5871C315.51 74.9226 316.611 79.6709 316.611 84.8322V90.4064H266.547V81.0129H306.599L301.231 85.3484C301.231 81.9763 300.749 79.086 299.786 76.6774C298.822 74.2688 297.377 72.4451 295.45 71.2064C293.592 69.8989 291.252 69.2451 288.431 69.2451C285.541 69.2451 283.098 69.8989 281.102 71.2064C279.106 72.514 277.592 74.4408 276.56 76.9871C275.528 79.4645 275.012 82.5269 275.012 86.1742C275.012 89.5462 275.493 92.5054 276.457 95.0516C277.42 97.529 278.934 99.4559 280.999 100.832C283.063 102.209 285.747 102.897 289.05 102.897C292.078 102.897 294.556 102.312 296.482 101.142C298.409 99.972 299.717 98.5269 300.405 96.8064H315.579C314.753 100.591 313.136 103.963 310.728 106.923C308.319 109.882 305.291 112.187 301.644 113.839C297.996 115.49 293.799 116.316 289.05 116.316Z" fill="#054327"></path>
235  <path d="M217.929 114.355L201 57.7871H218.032L233.929 114.355H217.929ZM223.09 114.355V100.626H239.71V114.355H223.09ZM229.181 114.355L242.91 57.7871H258.806L244.148 114.355H229.181Z" fill="#054327"></path>
236</svg>
237        </a>
238      </div>
239
240      <div class="hidden lg:flex lg:gap-x-12 items-center mr-8">
241        <a href="/explore" class="text-sm/6 font-semibold hover:text-gray-700 py-1 border-b-2 border-white hover:border-brand/20 transition-colors duration-100">
242          Explore
243        </a>
244
245        <div class="relative group">
246          <a href="/routes" class="flex items-center gap-1 text-sm/6 font-semibold hover:text-gray-700 py-1 border-b-2 border-white hover:border-brand/20 transition-colors duration-100">
247            Routes
248            <span class="hero-chevron-down-mini h-4 w-4 text-gray-500 transition-transform duration-150 group-hover:rotate-180"></span>
249          </a>
250
251          
252          <div class="absolute left-0 top-full pt-2 hidden group-hover:block group-focus-within:block z-[2005]">
253            <div class="min-w-48 rounded-md bg-white py-1 shadow-lg ring-1 ring-black ring-opacity-5">
254              <a href="/routes" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">
255                Routes map
256              </a>
257              <a href="/regions" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">
258                Regions
259              </a>
260            </div>
261          </div>
262        </div>
263
264        
265        <a href="/plan" class="text-sm/6 font-semibold hover:text-gray-700 py-1 border-b-2 border-white hover:border-brand/20 transition-colors duration-100">
266          Planner
267        </a>
268
269        
270        
271      </div>
272
273      <div>
274        <a href="/partners#pzu" class="hover:opacity-85 flex items-center gap-x-3">
275          <img src="/images/pzu/podstawowe.svg" style="height: 30px;">
276
277          <p class="text-xs font-semibold hidden xl:block">
278            Strategic Partner
279          </p>
280        </a>
281      </div>
282    </div>
283
284    
285    <div class="flex lg:hidden">
286      <button type="button" class="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700" data-toggle="#mobile-sidebar-menu" aria-label="Open menu">
287        <svg class="size-6" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon">
288          <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"></path>
289        </svg>
290      </button>
291    </div>
292
293    <div class="hidden lg:flex lg:justify-end items-center">
294      
295<div class="relative inline-block text-left " id="locale-switcher-desktop">
296  <div data-toggle="#locale-switcher-desktop-content" class="cursor-pointer">
297    
298    <button type="button" class="flex items-center gap-2 text-sm font-medium text-gray-900 hover:text-gray-700">
299      <span class="hero-globe-alt h-5 w-5"></span>
300      <span>English</span>
301      <span class="hero-chevron-down-mini h-4 w-4"></span>
302    </button>
303  
304  </div>
305
306  <div id="locale-switcher-desktop-content" class="hidden absolute right-0 origin-top-right mt-2 min-w-48 max-w-96 rounded-md bg-white py-1 shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none" style="z-index: 2005" role="menu" data-toggle-click-away="#locale-switcher-desktop-content">
307    <div class="py-1" role="none">
308      
309    
310      <a href="https://veloplanner.com/app?velo_locale=en" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900 bg-gray-50" role="menuitem">
311        English
312      </a>
313    
314      <a href="https://veloplanner.com/cs/app?velo_locale=cs" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">
315        Čeština
316      </a>
317    
318      <a href="https://veloplanner.com/de/app?velo_locale=de" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">
319        Deutsch
320      </a>
321    
322      <a href="https://veloplanner.com/es/app?velo_locale=es" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">
323        Español
324      </a>
325    
326      <a href="https://veloplanner.com/fr/app?velo_locale=fr" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">
327        Français
328      </a>
329    
330      <a href="https://veloplanner.com/nl/app?velo_locale=nl" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">
331        Nederlands
332      </a>
333    
334      <a href="https://veloplanner.com/pl/app?velo_locale=pl" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">
335        Polski
336      </a>
337    
338  
339    </div>
340  </div>
341</div>
342
343      <div class="ml-4">
344        
345          <ul class="flex items-center gap-4 justify-end">
346            <li>
347              <a href="/login" class="text-[0.8125rem] leading-6 text-zinc-900 font-semibold hover:text-zinc-700" data-test-id="navbar-login-link">
348                Log in
349              </a>
350            </li>
351
352            <li>
353              <div>
354                <a href="/signup" data-csrf="fwQFHgoDdzEufB9DLhcJJ0NIJWVOBgkL26ZIXi8zzHJvwZgh2yVRw3dY" data-to="/signup" class="inline-block rounded-lg text-sm font-semibold leading-6 border border-brand bg-brand hover:bg-brand/90 text-white active:text-white/80 py-1 px-3" data-test-id="navbar-signup-link">
355  
356                  Sign up
357                
358</a>
359              </div>
360            </li>
361          </ul>
362        
363      </div>
364    </div>
365  </nav>
366  
367<!-- Mobile menu, show/hide based on menu open state. -->
368  <div id="mobile-sidebar-menu" class="hidden lg:hidden" role="dialog" aria-modal="true">
369    <!-- Background backdrop, show/hide based on slide-over state. -->
370    <div class="fixed inset-0" style="z-index: 5000;"></div>
371    <div class="fixed inset-y-0 right-0 z-50 w-full overflow-y-auto bg-white px-6 py-6 sm:max-w-sm sm:ring-1 sm:ring-gray-900/10 shadow-2xl" style="z-index: 5000;" data-toggle-click-away="#mobile-sidebar-menu">
372      <div class="flex items-center justify-between">
373        <a href="#" class="-m-1.5 p-1.5">
374          <span class="sr-only">VeloPlanner</span>
375          <svg class="shrink-0 block overflow-visible" width="32" height="32" style="height: 32px" viewBox="0 0 174 174" fill="none" xmlns="http://www.w3.org/2000/svg">
376  <path d="M87 0C135.051 0 174 38.9514 174 87C174 135.049 135.051 174 87 174C38.9493 174 0 135.049 0 87C0 38.9514 38.9493 0 87 0Z" fill="#054327"></path>
377  <path fill-rule="evenodd" clip-rule="evenodd" d="M88.1128 60.5419C88.1128 48.9268 96.1864 39.5882 107.709 39.5882C116.27 39.5882 122.033 44.6449 125.264 50.5775C127.271 54.2637 128.458 58.4813 129.044 62.6808C132.411 60.194 135.961 56.7358 139.555 52.0191L151.324 60.9026C144.195 70.2573 136.428 76.4287 128.719 79.8279C126.918 92.1566 122.101 104.599 115.316 114.751C106.74 127.584 93.8109 138.412 78.2106 138.412C69.4148 138.412 61.9386 136.08 56.6992 130.818C51.4778 125.573 49.6138 118.557 49.6138 111.554C49.6138 107.59 50.5733 103.452 51.7137 99.6578C52.7761 96.1238 54.154 92.397 55.4581 88.87C55.5711 88.5644 55.6835 88.2602 55.7952 87.9577C58.7881 79.8517 61.0702 73.1749 61.0702 68.0237C61.0702 64.5123 60.0738 61.4191 58.304 59.3346C56.7152 57.4633 53.879 55.6492 48.3828 55.6492V40.9486C57.6222 40.9486 64.8223 44.2357 69.5859 49.8462C74.1686 55.2435 75.8408 62.0128 75.8408 68.0237C75.8408 76.2863 72.4166 85.5606 69.6854 92.9577L69.6594 93.0282C69.5576 93.3038 69.4565 93.5775 69.356 93.8494C68.0111 97.4889 66.7892 100.795 65.8646 103.871C64.857 107.223 64.3844 109.737 64.3844 111.554C64.3844 116.114 65.58 118.852 67.1913 120.47C68.7846 122.071 71.9141 123.711 78.2106 123.711C86.6206 123.711 95.6436 117.644 103.017 106.61C107.671 99.6461 111.184 91.361 113.099 83.0402C112.394 83.0185 111.694 82.9735 111.001 82.9057C98.6597 81.6996 88.1128 72.7364 88.1128 60.5419ZM114.715 68.3369C114.59 64.0586 113.701 60.196 112.278 57.5831C110.879 55.0136 109.439 54.2889 107.709 54.2889C105.511 54.2889 102.883 55.8329 102.883 60.5419C102.883 63.3
37711 105.645 67.611 112.444 68.2754C113.153 68.3447 113.912 68.3687 114.715 68.3369Z" fill="white"></path>
378</svg>
379        </a>
380        <button type="button" class="-m-2.5 rounded-md p-2.5 text-gray-700" data-toggle="#mobile-sidebar-menu" aria-label="Close menu">
381          <svg class="size-6" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon">
382            <path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12"></path>
383          </svg>
384        </button>
385      </div>
386      <div class="mt-6 flow-root">
387        <div class="-my-6 divide-y divide-gray-500/10">
388          <div class="space-y-2 py-6">
389            <a href="/explore" class="-mx-3 block rounded-lg px-3 py-2 text-base/7 font-semibold hover:bg-gray-50 text-gray-900">
390              Explore
391            </a>
392            <a href="/routes" class="-mx-3 block rounded-lg px-3 py-2 text-base/7 font-semibold hover:bg-gray-50 text-gray-900">
393              Routes
394            </a>
395            <a href="/regions" class="-mx-3 block rounded-lg px-3 py-2 text-base/7 font-semibold hover:bg-gray-50 text-gray-900">
396              Regions
397            </a>
398            
399            <a href="/plan" class="-mx-3 block rounded-lg px-3 py-2 text-base/7 font-semibold hover:bg-gray-50 text-gray-900">
400              Planner
401            </a>
402            
403          </div>
404          <div class="py-6">
405            
406<div class="relative inline-block text-left " id="locale-switcher-mobile">
407  <div data-toggle="#locale-switcher-mobile-content" class="cursor-pointer">
408    
409    <button type="button" class="flex items-center gap-2 text-sm font-medium text-gray-900 hover:text-gray-700">
410      <span class="hero-globe-alt h-5 w-5"></span>
411      <span>English</span>
412      <span class="hero-chevron-down-mini h-4 w-4"></span>
413    </button>
414  
415  </div>
416
417  <div id="locale-switcher-mobile-content" class="hidden absolute left-0 origin-top-left mt-2 min-w-48 max-w-96 rounded-md bg-white py-1 shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none" style="z-index: 2005" role="menu" data-toggle-click-away="#locale-switcher-mobile-content">
418    <div class="py-1" role="none">
419      
420    
421      <a href="https://veloplanner.com/app?velo_locale=en" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900 bg-gray-50" role="menuitem">
422        English
423      </a>
424    
425      <a href="https://veloplanner.com/cs/app?velo_locale=cs" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">
426        Čeština
427      </a>
428    
429      <a href="https://veloplanner.com/de/app?velo_locale=de" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">
430        Deutsch
431      </a>
432    
433      <a href="https://veloplanner.com/es/app?velo_locale=es" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">
434        Español
435      </a>
436    
437      <a href="https://veloplanner.com/fr/app?velo_locale=fr" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">
438        Français
439      </a>
440    
441      <a href="https://veloplanner.com/nl/app?velo_locale=nl" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">
442        Nederlands
443      </a>
444    
445      <a href="https://veloplanner.com/pl/app?velo_locale=pl" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">
446        Polski
447      </a>
448    
449  
450    </div>
451  </div>
452</div>
453          </div>
454          <div class="py-6 border-t border-gray-500/10">
455            
456              <div class="space-y-2">
457                <a href="/login" class="-mx-3 block rounded-lg px-3 py-2 text-base/7 font-semibold text-gray-900 hover:bg-gray-50">
458                  Log in
459                </a>
460                <a href="/signup" class="-mx-3 block rounded-lg px-3 py-2 text-base/7 font-semibold text-emerald-600 hover:bg-gray-50">
461                  Sign up
462                </a>
463              </div>
464            
465          </div>
466        </div>
467      </div>
468    </div>
469  </div>
470</header>
471  </div>
472
473  <div class="bg-white">
474    <div class="py-16 sm:py-24">
475      <div class="mx-auto max-w-6xl px-6 lg:px-8">
476        <div class="lg:grid lg:grid-cols-2 lg:gap-x-10 lg:items-center">
477          <div class="mx-auto max-w-2xl lg:mx-0 text-center lg:text-left">
478            <h1 class="text-balance text-4xl font-bold tracking-tight text-gray-900 sm:text-5xl">
479              Plan your tour on Europe&#39;s best cycling routes
480            </h1>
481            <p class="mt-6 text-lg text-gray-600 sm:text-xl">
482              The only route planner built around official cycling routes. Browse EuroVelo, Alpe Adria, and 100+ more with guides, surface details, and accommodation info.
483            </p>
484            <div class="mt-10 flex items-center justify-center lg:justify-start gap-x-4">
485              <a href="https://apps.apple.com/app/veloplanner-bike-planner/id6753161627" class="block hover:opacity-85 hover:scale-105 transition-all duration-300" target="_blank" rel="nofollow noopener noreferrer" data-umami-event="mobile_app_page__store_btn_clicked" data-umami-event-store="app_store (apple)">
486  <img src="/images/app_store_button.svg" alt="Download on the App Store" class="h-12">
487</a>
488<a href="https://play.google.com/store/apps/details?id=com.veloplanner.mobile" class="block hover:opacity-85 hover:scale-105 transition-all duration-300" target="_blank" rel="nofollow noopener noreferrer" data-umami-event="mobile_app_page__store_btn_clicked" data-umami-event-store="play_store (google)">
489  <img src="/images/play_store_button.svg" alt="Get it on Google Play" class="h-12">
490</a>
491            </div>
492            <div class="mt-8 mx-auto lg:mx-0 flex items-center gap-x-2 text-yellow-900 bg-yellow-50 border border-yellow-400 rounded-full py-2 px-4 w-fit">
493              <span class="hero-users size-5"></span>
494              <p class="text-base">
495                <strong>128979</strong> cyclists already joined
496              </p>
497            </div>
498
499          </div>
500
501          <div class="mt-16 lg:mt-0">
502            <div class="flex justify-center lg:justify-end">
503              <img src="/images/mobile-app/en__all-routes.webp" alt="VeloPlanner mobile app showing cycling routes" class="w-72 sm:w-80" width="967" height="2000" loading="eager" fetchpriority="high">
504            </div>
505          </div>
506        </div>
507      </div>
508    </div>
509  </div>
510
511  <div class="bg-gray-50 py-12">
512  <div class="mx-auto max-w-7xl px-6 lg:px-8">
513    <h2 class="text-center text-4xl font-semibold text-gray-900 mb-12">
514      What cyclists say
515    </h2>
516
517    <div class="grid grid-cols-1 gap-8 md:grid-cols-3">
518      <div class="bg-white rounded-xl p-6 shadow-sm border border-gray-100">
519  <div class="flex gap-1 mb-3">
520    <span class="hero-star-solid size-5 text-yellow-400"></span><span class="hero-star-solid size-5 text-yellow-400"></span><span class="hero-star-solid size-5 text-yellow-400"></span><span class="hero-star-solid size-5 text-yellow-400"></span><span class="hero-star-solid size-5 text-yellow-400"></span>
521  </div>
522
523  <h3 class="font-semibold text-gray-900 mb-2">
524    Amazing App
525  </h3>
526
527  <p class="text-gray-600 text-sm mb-4">
528    "Just perfect to prepare and adapt your bike trip all over Europe. Super easy to use and nice to have tips from other users."
529  </p>
530
531  
532
533  <p class="text-sm text-gray-500">
534    — Wibus 07
535  </p>
536</div><div class="bg-white rounded-xl p-6 shadow-sm border border-gray-100">
537  <div class="flex gap-1 mb-3">
538    <span class="hero-star-solid size-5 text-yellow-400"></span><span class="hero-star-solid size-5 text-yellow-400"></span><span class="hero-star-solid size-5 text-yellow-400"></span><span class="hero-star-solid size-5 text-yellow-400"></span><span class="hero-star-solid size-5 text-yellow-400"></span>
539  </div>
540
541  <h3 class="font-semibold text-gray-900 mb-2">
542    The Better Planning App
543  </h3>
544
545  <p class="text-gray-600 text-sm mb-4">
546    "I used competitor apps for years but VeloPlanner brings together everything you need for bike tours. A simple and clear app for planning bike tours. I don&#39;t want to be without it anymore. I can clearly recommend it."
547  </p>
548
549  <p class="text-xs text-gray-400 italic mb-4">
550    autotranslated
551  </p>
552
553  <p class="text-sm text-gray-500">
554    — TJ_Speedy
555  </p>
556</div><div class="bg-white rounded-xl p-6 shadow-sm border border-gray-100">
557  <div class="flex gap-1 mb-3">
558    <span class="hero-star-solid size-5 text-yellow-400"></span><span class="hero-star-solid size-5 text-yellow-400"></span><span class="hero-star-solid size-5 text-yellow-400"></span><span class="hero-star-solid size-5 text-yellow-400"></span><span class="hero-star-solid size-5 text-yellow-400"></span>
559  </div>
560
561  <h3 class="font-semibold text-gray-900 mb-2">
562    Best App for Planning
563  </h3>
564
565  <p class="text-gray-600 text-sm mb-4">
566    "Finally found what I was looking for. Beautiful interface, lots of functionality, and most importantly a clear display of official cycling routes! Very likeable developer."
567  </p>
568
569  <p class="text-xs text-gray-400 italic mb-4">
570    autotranslated
571  </p>
572
573  <p class="text-sm text-gray-500">
574    — thegroover
575  </p>
576</div>
577    </div>
578  </div>
579</div>
580
581  <div class="bg-white py-24 sm:py-32">
582  <div class="mx-auto max-w-7xl px-6 lg:px-8">
583    <div class="mx-auto max-w-2xl text-center mb-16">
584      <h2 class="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
585        Everything you need to plan your cycling tour
586      </h2>
587    </div>
588
589    <div class="grid grid-cols-1 gap-10 lg:grid-cols-3 lg:gap-8">
590      <div class="flex flex-col items-center text-center">
591        <div class="mb-6">
592          <img src="/images/mobile-app/en__all-routes.webp" alt="Official cycling routes browser" class="w-48 sm:w-56" loading="lazy" width="967" height="2000">
593        </div>
594        <h3 class="text-xl font-semibold text-gray-900 mb-3">
595          Find the right route
596        </h3>
597        <p class="text-gray-600">
598          Browse official routes with practical guides, surface info, and user reviews.
599        </p>
600      </div><div class="flex flex-col items-center text-center">
601        <div class="mb-6">
602          <img src="/images/mobile-app/en__planner.webp" alt="Route customization with stages" class="w-48 sm:w-56" loading="lazy" width="967" height="2000">
603        </div>
604        <h3 class="text-xl font-semibold text-gray-900 mb-3">
605          Customize to your trip
606        </h3>
607        <p class="text-gray-600">
608          Open any route in the planner, adjust stages, add detours, download GPX.
609        </p>
610      </div><div class="flex flex-col items-center text-center">
611        <div class="mb-6">
612          <img src="/images/mobile-app/en__route_with_pois.webp" alt="Map showing accommodation and points of interest" class="w-48 sm:w-56" loading="lazy" width="967" height="2000">
613        </div>
614        <h3 class="text-xl font-semibold text-gray-900 mb-3">
615          Plan accommodation and resupply
616        </h3>
617        <p class="text-gray-600">
618          Campsites, hotels, Bett+Bike, grocery stores visible on the map without zooming.
619        </p>
620      </div>
621    </div>
622  </div>
623</div>
624
625  <div class="bg-gray-50 py-24 sm:py-32">
626  <div class="mx-auto max-w-7xl px-6 lg:px-8">
627    <div class="mx-auto max-w-2xl text-center">
628      <h2 class="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
629        Plan on web. Ride with the app.
630      </h2>
631      <p class="mt-6 text-lg text-gray-600">
632        Full route planner on both platforms. Everything syncs automatically. Create your tour at home, access it on your phone when you ride.
633      </p>
634    </div>
635
636    <div class="mt-16 flow-root">
637      <div class="-m-2 rounded-xl bg-gray-900/5 p-2 ring-1 ring-inset ring-gray-900/5 lg:-m-4 lg:rounded-2xl lg:p-4">
638        <img src="/images/lp/planner_satelite.webp" alt="VeloPlanner screenshot" width="2400" height="1337" class="rounded-md shadow-2xl ring-1 ring-gray-900/10" loading="lazy">
639      </div>
640    </div>
641  </div>
642</div>
643
644  <div class="bg-white px-6 py-24 sm:py-32 lg:px-8">
645    <div class="mx-auto max-w-4xl">
646      <h2 class="text-4xl font-semibold tracking-tight text-center text-gray-900 sm:text-5xl mb-16">
647        Frequently asked questions
648      </h2>
649
650      <div itemscope itemtype="https://schema.org/FAQPage">
651        <div class="space-y-6">
652          <div class="pt-6 first:pt-0" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
653  <h3 class="text-xl font-semibold text-gray-900 mb-4" itemprop="name">
654    Is the VeloPlanner app free?
655  </h3>
656  <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
657    <div class="text-base text-gray-600" itemprop="text">
658      Yes. Downloading the app, planning routes and exporting GPX cost nothing. Premium features are optional.
659    </div>
660  </div>
661</div>
662
663          <div class="pt-6 first:pt-0" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
664  <h3 class="text-xl font-semibold text-gray-900 mb-4" itemprop="name">
665    Does the app work offline?
666  </h3>
667  <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
668    <div class="text-base text-gray-600" itemprop="text">
669      Not for planning — the planner needs an internet connection. You can export any route as a GPX file and load it onto a bike computer that navigates offline.
670    </div>
671  </div>
672</div>
673
674          <div class="pt-6 first:pt-0" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
675  <h3 class="text-xl font-semibold text-gray-900 mb-4" itemprop="name">
676    Can I send routes to my Garmin?
677  </h3>
678  <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
679    <div class="text-base text-gray-600" itemprop="text">
680      Yes. Export any route as a GPX file and load it onto a Garmin, Wahoo or any other device.
681    </div>
682  </div>
683</div>
684
685          <div class="pt-6 first:pt-0" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
686  <h3 class="text-xl font-semibold text-gray-900 mb-4" itemprop="name">
687    Does VeloPlanner navigate while I ride?
688  </h3>
689  <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
690    <div class="text-base text-gray-600" itemprop="text">
691      VeloPlanner is a planner, not a turn-by-turn navigation app. You plan the route, then ride it with your bike computer, or with the map and elevation profile on your phone.
692    </div>
693  </div>
694</div>
695        </div>
696      </div>
697    </div>
698  </div>
699
700  <div class="bg-brand/5 py-24 sm:py-32">
701    <div class="mx-auto max-w-7xl px-6 lg:px-8">
702      <div class="mx-auto max-w-2xl text-center">
703        <h2 class="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
704          Your next tour starts here
705        </h2>
706        <div class="mt-10 flex items-center justify-center gap-x-4">
707          <a href="https://apps.apple.com/app/veloplanner-bike-planner/id6753161627" class="block hover:opacity-85 hover:scale-105 transition-all duration-300" target="_blank" rel="nofollow noopener noreferrer" data-umami-event="mobile_app_page__store_btn_clicked" data-umami-event-store="app_store (apple)">
708  <img src="/images/app_store_button.svg" alt="Download on the App Store" class="h-14">
709</a>
710<a href="https://play.google.com/store/apps/details?id=com.veloplanner.mobile" class="block hover:opacity-85 hover:scale-105 transition-all duration-300" target="_blank" rel="nofollow noopener noreferrer" data-umami-event="mobile_app_page__store_btn_clicked" data-umami-event-store="play_store (google)">
711  <img src="/images/play_store_button.svg" alt="Get it on Google Play" class="h-14">
712</a>
713        </div>
714      </div>
715    </div>
716  </div>
717
718  <footer>
719  
720  <div style="background-color: #002115;">
721    <div class="mx-auto max-w-7xl px-6 pb-8 pt-16 sm:pt-24 lg:px-8 lg:pt-32">
722      <div class="grid grid-cols-1 gap-12 lg:grid-cols-3 lg:gap-8">
723        <div class="space-y-8">
724          <div>
725            <p class="text-balance text-sm/6 text-gray-300">
726              Get in touch!
727            </p>
728            <p class="mt-4 text-white underline hover:text-gray-300" style="font-size: 14px;">
729              <a href="/cdn-cgi/l/email-protection#79111c151516390f1c151609151817171c0b571a1614"><span class="__cf_email__" data-cfemail="244c4148484b645241484b5448454a4a41560a474b49">[email&#160;protected]</span></a>
730            </p>
731          </div>
732          <div class="flex items-center gap-x-6 text-white">
733            <a href="https://veloplanner.com/l/veloplanner-ig-en" target="_blank" rel="nofollow noopener noreferrer" class="hover:opacity-80 transition-opacity ">
734  <span class="sr-only">Instagram</span>
735  
736      <svg class="size-5" aria-hidden="true" fill="currentColor" viewBox="0 0 24 24">
737  <path fill-rule="evenodd" d="M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.067.06 1.407.06 4.123v.08c0 2.643-.012 2.987-.06 4.043-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.067.048-1.407.06-4.123.06h-.08c-2.643 0-2.987-.012-4.043-.06-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.
737047-1.024-.06-1.379-.06-3.808v-.63c0-2.43.013-2.784.06-3.808.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 015.45 2.525c.636-.247 1.363-.416 2.427-.465C8.901 2.013 9.256 2 11.685 2h.63zm-.081 1.802h-.468c-2.456 0-2.784.011-3.807.058-.975.045-1.504.207-1.857.344-.467.182-.8.398-1.15.748-.35.35-.566.683-.748 1.15-.137.353-.3.882-.344 1.857-.047 1.023-.058 1.351-.058 3.807v.468c0 2.456.011 2.784.058 3.807.045.975.207 1.504.344 1.857.182.466.399.8.748 1.15.35.35.683.566 1.15.748.353.137.882.3 1.857.344 1.054.048 1.37.058 4.041.058h.08c2.597 0 2.917-.01 3.96-.058.976-.045 1.505-.207 1.858-.344.466-.182.8-.398 1.15-.748.35-.35.566-.683.748-1.15.137-.353.3-.882.344-1.857.048-1.055.058-1.37.058-4.041v-.08c0-2.597-.01-2.917-.058-3.96-.045-.976-.207-1.505-.344-1.858a3.097 3.097 0 00-.748-1.15 3.098 3.098 0 00-1.15-.748c-.353-.137-.882-.3-1.857-.344-1.023-.047-1.351-.058-3.807-.058zM12 6.865a5.135 5.135 0 110 10.27 5.135 5.135 0 010-10.27zm0 1.802a3.333 3.333 0 100 6.666 3.333 3.333 0 000-6.666zm5.338-3.205a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4z" clip-rule="evenodd"></path>
738</svg>
739    
740</a>
741
742            <a href="https://veloplanner.com/l/veloplanner-reddit" target="_blank" rel="nofollow noopener noreferrer" class="hover:opacity-80 transition-opacity">
743              <span class="sr-only">Reddit</span>
744              <img src="/images/icons/reddit.svg" class="size-6">
745            </a>
746
747            <a href="https://discord.gg/t7HqDFwjSA" target="_blank" rel="nofollow noopener noreferrer" class="hover:opacity-80 transition-opacity">
748              <span class="sr-only">Discord</span>
749              <img src="/images/icons/discord.svg" class="size-6">
750            </a>
751
752            <a href="https://veloplanner.com/l/veloplanner-fb-en" target="_blank" rel="nofollow noopener noreferrer" class="hover:opacity-80 transition-opacity ">
753  <span class="sr-only">Facebook</span>
754  
755      <svg class="size-5" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
756  <path fill-rule="evenodd" d="M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987
756h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z" clip-rule="evenodd"></path>
757</svg>
758    
759</a>
760
761            <a href="https://www.linkedin.com/company/veloplanner/" target="_blank" rel="nofollow noopener noreferrer" class="hover:opacity-80 transition-opacity ">
762  <span class="sr-only">Linkedin</span>
763  
764      <svg class="size-5" fill="currentColor" viewBox="0 0 24 24">
765  <path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"></path>
766</svg>
767    
768</a>
769          </div>
770          <div class="mt-6 flex items-center gap-x-4">
771            <a href="https://veloplanner.com/l/veloplanner-footer-apple" target="_blank" rel="nofollow noopener noreferrer" class="hover:opacity-80">
772              <img src="/images/app_store_button.svg" alt="Download on the App Store" class="h-11">
773            </a>
774            <a href="https://veloplanner.com/l/veloplanner-footer-play" target="_blank" rel="nofollow noopener noreferrer" class="hover:opacity-80">
775              <img src="/images/play_store_button.svg" alt="Get it on Google Play" class="h-11">
776            </a>
777          </div>
778        </div>
779        <div class="grid grid-cols-2 gap-8 sm:grid-cols-3 lg:col-span-2">
780          <ul role="list" class="space-y-4">
781            <li>
782              <a href="/routes" class="text-sm/6 text-gray-400 hover:text-white">
783                Routes
784              </a>
785            </li>
786            <li>
787              <a href="/regions" class="text-sm/6 text-gray-400 hover:text-white">
788                Regions
789              </a>
790            </li>
791            <li>
792              <a href="/plan" class="text-sm/6 text-gray-400 hover:text-white">
793                Route planner
794              </a>
795            </li>
796            <li>
797              <a href="/app" class="text-sm/6 text-gray-400 hover:text-white">
798                Mobile app
799              </a>
800            </li>
801            <li>
802              <a href="/widgets" class="text-sm/6 text-gray-400 hover:text-white">
803                Embed widgets
804              </a>
805            </li>
806            
807            <li>
808              <a href="/community/ranking" class="text-sm/6 text-gray-400 hover:text-white">
809                Ranking
810              </a>
811            </li>
812          </ul>
813          <ul role="list" class="space-y-4">
814            <li>
815              <a href="/maps" class="text-sm/6 text-gray-400 hover:text-white">
816                Thematic maps
817              </a>
818            </li>
819            
820            <li>
821              <a href="/maps/europe-bike-infra" class="text-sm/6 text-gray-400 hover:text-white">
822                Cycling infrastructure in Europe
823              </a>
824            </li>
825            
826            <li>
827              <a href="/blog" class="text-sm/6 text-gray-400 hover:text-white">
828                Blog
829              </a>
830            </li>
831            <li>
832              <a href="/velo-friendly" class="text-sm/6 text-gray-400 hover:text-white">
833                VeloFriendly
834              </a>
835            </li>
836          </ul>
837          <ul role="list" class="space-y-4">
838            <li>
839              <a href="/about" class="text-sm/6 text-gray-400 hover:text-white">
840                About us
841              </a>
842            </li>
843            <li>
844              <a href="https://veloplanner.userjot.com" target="_blank" rel="nofollow noopener noreferrer" class="text-sm/6 text-gray-400 hover:text-white">
845                Share feedback
846              </a>
847            </li>
848            <li>
849              <a href="/terms" class="text-sm/6 text-gray-400 hover:text-white">
850                Terms
851              </a>
852            </li>
853            <li>
854              <a href="/privacy-policy" class="text-sm/6 text-gray-400 hover:text-white">
855                Privacy Policy
856              </a>
857            </li>
858            <li>
859              <a href="/imprint" class="text-sm/6 text-gray-400 hover:text-white">
860                Imprint
861              </a>
862            </li>
863          </ul>
864        </div>
865      </div>
866      <div class="mt-16 border-t border-white/10 pt-8 sm:mt-20 lg:mt-24 flex flex-wrap items-center justify-between gap-4">
867        <p class="text-sm/6 text-gray-400">
868          © 2026 VeloPlanner. All rights reserved.
869        </p>
870        <p class="text-sm/6 text-gray-400 flex items-center gap-1.5">
871          Developed in
872          <img src="/images/flags/pl.svg" alt="Poland" width="19" height="14" class="h-3.5 inline rounded-sm">
873          <img src="/images/flags/eu.svg" alt="EU" width="19" height="14" class="h-3.5 inline rounded-sm">
874        </p>
875      </div>
876    </div>
877  </div>
878</footer>
879</div>
vendor: 115 bytes, lines 879-882
879
880
881
882    <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
882<script phx-track-static type="module" src="/assets/ts/ui-e2a256c01964cfd959ab459abce23448.js?vsn=d">
883    </script>
883
884
885    
885<script defer src="https://umami.veloplanner.net/script.js" data-website-id="aac4031a-0e8b-4147-bc6e-58c181b6490b" data-exclude-hash="true">
886    </script>
886
887
888
889
890
891
892      <div id="cookie-consent-modal" class="fixed inset-0 z-[99999] hidden" role="dialog" aria-labelledby="cookie-consent-title" aria-modal="true">
893  <div class="fixed inset-0 bg-gray-500 bg-opacity-65 transition-opacity"></div>
894
895  <div class="fixed inset-0 overflow-y-auto">
896    <div class="flex min-h-full items-center justify-center p-4 sm:p-6 lg:py-8">
897      <div class="relative w-full max-w-2xl">
898        <div id="cookie-consent-modal-container" class="relative rounded-2xl bg-white p-8 shadow-lg ring-1 ring-zinc-700/10 outline-none" tabindex="-1">
899          <span id="cookie-consent-modal-start" tabindex="0" aria-hidden="true"></span>
900
901          <div class="text-center">
902            <h2 id="cookie-consent-title" class="text-lg font-semibold mb-4">
903              Cookie Settings
904            </h2>
905            <p class="mb-6">
906              We use cookies to ensure the basic functionality of our website (required) and to improve your experience (optional, for analytics purposes).
907              <a href="/privacy-policy" class="text-blue-600 hover:underline">
908                Learn more
909              </a>
910            </p>
911            <div class="flex justify-center gap-4">
912              <button class="rounded-lg py-2 px-3 text-sm font-medium leading-4 border border-gray-400 bg-white hover:bg-gray-50 text-gray-900" id="accept-required-cookies">
913  
914                Essential Only
915              
916</button>
917
918              <button class="rounded-lg py-2 px-3 text-sm font-medium leading-4 border border-brand bg-brand hover:bg-brand/90 text-white active:text-white/80" id="accept-all-cookies">
919  
920                Accept All
921              
922</button>
923            </div>
924          </div>
925
926          <span id="cookie-consent-modal-end" tabindex="0" aria-hidden="true"></span>
927        </div>
928      </div>
929    </div>
930  </div>
931</div>
932
933
934  
934<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a43bae838a51d94c',t:'MTc5MDg1OTk1NQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
934</body>
935</html>

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