CINXE.COM
Virtuous Cycle
<!DOCTYPE html><html lang="en" class="motion-safe:scroll-smooth 2xl:text-[20px]"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="author" content="Virtuous Cycle"><meta name="twitter:card" content="summary"><meta name="twitter:site" content="@virtuouscycleapp"><meta name="twitter:creator" content="@virtuouscycleapp"><meta name="x-build-time" content="Thu, 18 Jan 2024 11:56:58 GMT"><link rel="sitemap" href="/sitemap-index.xml"><link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>馃毑</text></svg>"><script async src="https://gc.zgo.at/count.js" data-goatcounter="https://virtuouscycle.goatcounter.com/count"></script><!-- <ViewTransitions/> --><title>Virtuous Cycle</title> <meta name="robots" content="index,follow" /> <meta name="description" content="Make regular bike riding fun and easy" /> <meta property="og:title" content="Virtuous Cycle" /> <meta property="og:description" content="Make regular bike riding fun and easy" /> <meta property="og:url" content="https://virtuouscycle.app/" /> <meta property="og:type" content="website" /> <link rel="canonical" href="https://virtuouscycle.app/" /><link rel="stylesheet" href="/_astro/_...page_.8394e811.css" /> <style type="text/css">.background-animate[data-astro-cid-xj7tktfn]{background-size:400%;animation:AnimationName 4s ease infinite}@keyframes AnimationName{0%,to{background-position:0% 50%}50%{background-position:100% 50%}} </style><script type="module">var e=["鉂わ笍","鈽曪笍"],n=Math.round(Math.random());document.getElementById("emp-emoji").innerHTML="with "+e[n]; </script></head><body class="antialiased text-gray-900 dark:text-slate-300 tracking-tight bg-white dark:bg-slate-950"><style> html { scroll-padding-top: 80px; /* The header has 72px height and we add some padding */ } </style><header class="sticky top-0 z-40 flex-none mx-auto w-full bg-white md:bg-white/90 dark:bg-slate-950 dark:md:bg-slate-950/90 md:backdrop-blur-sm border-b dark:border-b-0"><div class="py-3 px-3 mx-auto w-full md:flex md:justify-between max-w-6xl md:px-4"><div class="flex justify-between"><a class="flex items-center" href="/"><span class="self-center ml-2 text-2xl font-extrabold text-gray-900 whitespace-nowrap dark:text-white"> Virtuous Cycle </span></a><div class="flex items-center md:hidden"><button type="button" class="ml-1.5 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center transition" aria-label="Toggle Menu" data-toggle-menu><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:menu"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 8h16M4 16h16"/></svg></button></div></div><nav class="items-center w-full md:w-auto hidden md:flex text-gray-600 dark:text-slate-200 h-screen md:h-auto" aria-label="Main navigation" id="menu"><ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto collapsed text-xl md:text-base"><li><a href="/privacy" class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out">Privacy</a></li><li><a href="/about" class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out">About</a></li><li><a href="/contact" class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out">Contact</a></li></ul><div class="md:self-center flex items-center mb-4 md:mb-0 ml-2"><div class="hidden items-center md:flex"><a href="/" rel="noopener noreferrer" aria-label="Home" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center"><svg viewBox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:bike"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2 18a3 3 0 1 0 6 0 3 3 0 1 0-6 0m14 0a3 3 0 1 0 6 0 3 3 0 1 0-6 0m-4 1v-4l-3-3 5-4 2 3h3m-3-6a1 1 0 1 0 2 0 1 1 0 1 0-2 0"/></svg></a></div></div></nav></div></header><main><section class="max-w-3xl py-8 sm:py-16 lg:py-20 mx-auto lg:-mt-10 mb-10" data-astro-cid-xj7tktfn><article data-astro-cid-xj7tktfn><header class="flex flex-col items-center text-center px-4 sm:px-6 mb-40" data-astro-cid-xj7tktfn><img src="/apps/virtuous-cycle/icon.png" width="224" height="224" class="p-[20px] mb-3" data-astro-cid-xj7tktfn><h1 class="text-5xl md:text-6xl md:leading-tight font-bold leading-tight tracking-tight mb-4 font-heading background-animate bg-clip-text text-transparent bg-gradient-to-r from-primary-500 to-secondary-500 sm:whitespace-nowrap" data-astro-cid-xj7tktfn>Virtuous Cycle</h1><h2 class="text-2xl md:text-3xl tracking-tight mb-8" data-astro-cid-xj7tktfn>Make regular bike riding fun and easy</h2><nav class="flex flex-col sm:flex-row gap-x-4 gap-y-8 mt-2 instapaper_ignore" data-astro-cid-xj7tktfn><a href="https://apps.apple.com/app/id1639489210" data-astro-cid-xj7tktfn><img src="/assets/download-on-app-store-badge.svg" alt="Download on the App Store" style="margin: 0; padding: 0; display: block; height: 60px;" data-astro-cid-xj7tktfn></a></nav><nav class="flex flex-wrap gap-4 max-w-md justify-center mt-8 font-semibold text-xl text-primary-600 instapaper_ignore" data-astro-cid-xj7tktfn><a href="#faq" class="hover:text-primary-400 dark:text-primary-400 dark:hover:text-primary-200" data-astro-cid-xj7tktfn>FAQ</a><a href="/feedback?product=Virtuous%20Cycle" class="hover:text-primary-400 dark:text-primary-400 dark:hover:text-primary-200" data-astro-cid-xj7tktfn>Support</a></nav></header><div class="container mx-auto px-6 sm:px-6 max-w-3xl prose prose-lg lg:prose-xl dark:prose-invert dark:prose-headings:text-slate-300 prose-headings:font-heading prose-headings:leading-tighter prose-headings:tracking-tight prose-headings:font-bold prose-img:rounded-md prose-img:shadow-lg mt-8 prose-a:text-black/75 dark:prose-a:text-white/90 prose-a:underline prose-a:underline-offset-4 prose-a:decoration-primary-500 hover:prose-a:decoration-primary-600 prose-a:decoration-2 hover:prose-a:decoration-4 hover:prose-a:text-black dark:hover:prose-a:text-white break-words tracking-normal prose-h4:tracking-normal prose-h5:tracking-normal prose-h6:tracking-normal prose-code:before:hidden prose-code:after:hidden" data-astro-cid-xj7tktfn><section class="mb-20" data-astro-cid-xj7tktfn><img src="/_astro/screenshot1.7a37070c.jpg" width="2880" height="2005" data-astro-cid-xj7tktfn></section><p>Virtuous Cycle is a mobile app developed to encourage regular bike riding to promote active transport and sustainable living. It has features to make it easy and fun to start bike riding regularly.</p> <p>Virtuous Cycle is one of the winners of <a href="https://opendata.transport.nsw.gov.au/active-transport-bike-riding"><strong>Transport for NSW Active Transport Bike Riding Innovation Challenge</strong></a>.</p> <p align="center"> <img style="box-shadow: none; width: 50%;" alt="Logos of Transport for NSW and Open Data" src="/assets/tfnsw-open-data-logo.png"> </p> <p>Virtuous Cycle has the following features to encourage regularly bike riding:</p> <h4 id="easy-route-search">Easy route search</h4> <p>Not sure how to get some where on bike? Virtuous Cycle has an intuitive and easy interface to search for bike routes for any destinations in New South Wales, Australia easily. In addition, Virtuous Cycle can offer up to three variations for each route to cater for riders with varying level of abilities.</p> <h4 id="motivating-ride-metrics">Motivating Ride Metrics</h4> <p>Users can record bike rides in Virtuous Cycle to measure various positive impacts their rides have on their health and environment with motivating metrics such as estimated active calories burned and carbon savings.</p> <h4 id="fun-awards-and-challenges">Fun Awards and Challenges</h4> <p>Users can earn awards (and bragging rights 馃槑) when they record bike rides and completing learning goals in Virtuous Cycle. New badges will be added periodically to encourage users to take up bike riding regularly.</p> <h4 id="learning-centre">Learning Centre</h4> <p>Regular riders need to be aware of biking laws and other essential information. Unfortunately, many of these information are buried in documents or websites that aren鈥檛 easily accessible on mobile devices. Within the <em>Learning Centre</em> in Virtuous Cycle, users can access and learn these bite-sized information easily in mobile-friendly format. You can now learn wherever and whenever you are.</p> <br> <h3 id="faq">Frequently Asked Questions</h3> <h4 id="i-have-a-feature-request-bug-report-or-some-feedback">I have a feature request, bug report, or some feedback</h4> <p><a href="/feedback?product=Virtuous%20Cycle&referrer=Website-FAQ">Send it here.</a></p> <h4 id="how-does-virtuous-cycle-use-transport-for-nsw-open-data">How does Virtuous Cycle use Transport for NSW open data?</h4> <p>Virtuous Cycle uses <a href="https://opendata.transport.nsw.gov.au/">Transport for NSW Open Data鈥檚 Trip Planner API</a> to search for bike routes and also to search for possible destinations based on keywords (such as place name or address).</p> <h4 id="will-there-be-an-android-version">Will there be an Android version?</h4> <p>Virtuous Cycle for Android is currently in development and is planned for public release in the near future. Please stay tuned.</p></div></article></section></main><footer class="border-t border-gray-200 dark:border-slate-800"><div class="max-w-6xl mx-auto px-4 sm:px-6"><div class="md:flex md:items-center md:justify-between py-6 md:py-8 text-center"><ul class="justify-center flex mb-4 md:order-1 -ml-2 md:ml-4 md:mb-0"><li class="text-gray-500 dark:text-gray-400"> Copyright 漏 2024 <a href="https://www.eatmorepixels.com.au" rel="external" aria-label="Eat More Pixels" class="hover:underline hover:underline-offset-8 hover:decoration-4 decoration-primary-600"> Eat More Pixels Pty Ltd</a></li></ul><div class="hidden md:inline text-gray-700 mr-4 dark:text-slate-400"> Made <span id="emp-emoji">锔弚ith 鉂わ笍</span> by Eat More Pixels </div></div></div></footer><script type="module"> function attachEvent(selector, event, fn) { const matches = document.querySelectorAll(selector); if (matches?.length > 0) { for (const element of matches) { element.addEventListener(event, () => { fn(element); }, false); } } } window.onload = () => { attachEvent('[data-toggle-menu]', 'click', element => { element.classList.toggle('expanded'); document.body.classList.toggle('overflow-hidden'); document.getElementById('menu')?.classList.toggle('hidden'); }); }; window.onpageshow = () => { const element = document.querySelector('[data-toggle-menu]'); if (element) { element.classList.remove('expanded'); } document.body.classList.remove('overflow-hidden'); document.getElementById('menu')?.classList.add('hidden'); }; </script><!-- Cloudflare Pages Analytics --><script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "8b00e3edafaa46d7b7bcc609d269ab6b"}'></script><!-- Cloudflare Pages Analytics --></body></html><!-- <script src="https://app.embed.im/snow.js" defer></script> -->