Swift

Posts

From vintage cruisers to electric trail beasts, we’ve created detailed guides to help you discover the perfect bike for your lifestyle, travels, and riding goals. Whether you're commuting through city streets, tackling scenic gravel paths, or planning a cycling getaway, our posts bring each bike to life with stories, tips, and routes that match their character.

Select Category
(10)
(5)
(5)
Is the eOne-Forty the Right E-MTB for You?
1/10/2025

A Smart Buy for Riders Who Love Singletrack and Variety

Ride Easy with the Nirve Forty-Nine 3-Speed Cruiser
1/24/2025

A Vintage Cruiser for Relaxed Urban Adventures

The Mongoose Crossway 450 Disc: Ready for Anything
2/11/2025

The Ultimate Everyday Hybrid for Commuting and Fitness

Should You Buy the BIG-NINE? Here’s Who It’s Made For
2/14/2025

A Guide for Trail Riders Looking to Step Up Their XC Game

Is the SCULTURA Right for You? Here’s How to Decide
2/22/2025

A Road Bike for Racers, Climbers, and Long-Distance Riders Alike

Conquer Any Terrain with the Mongoose Tyax Comp Disc
3/12/2025

Performance and Durability for Mountain Enthusiasts

Cruising the Boardwalks of Santa Monica on the Nirve Forty-Nine
3/24/2025

A Vintage Ride for Sun, Sand, and Ocean Breeze

K2 T:Nine Twister: Made for Speed and Style
3/26/2025

A Road Bike Tailored to the Female Cyclist

A Hard-Hitting Hardtail Built for the Red Rock Playground
4/28/2025

A Hard-Hitting Hardtail Built for the Red Rock Playground

Cycling Through the Lake District on the Crossway 450 Lady
5/6/2025

A Versatile Hybrid for Scenic, Low-Impact Adventure

Buying the eOne-Sixty: What to Know Before You Drop In
5/15/2025

A High-End E-MTB for Enduro Fans and Gravity Addicts

Mongoose Crossway 450 Disc: Your Perfect Everyday Ride
5/26/2025

Hybrid Versatility for City Commutes and Leisure

Cruise with a Smile on the Nirve Paul Frank Aku
5/29/2025

A Playful Cruiser with Retro Vibes

Bike the French Riviera with the Montague 34XZA
5/31/2025

A Folding Bike Built for Coastal Freedom and Convenience

K2 Mod 3.0: Push Your Limits
6/13/2025

A High-Performance Road Machine for Ambitious Cyclists

Embrace Retro Cool with the Nirve Hello Bike
6/19/2025

A Whimsical Cruiser for Fans of All Ages

Explore New Horizons with the Montague 34XZA
6/22/2025

A Premium Folding Bike for Urban Commuters

Tifosi Stelvio Fototec: Adaptive Vision for Cyclists
6/22/2025

Photochromatic Lenses for Every Light Condition

Exploring Portland’s East Side with the Paul Frank Cruiser
6/28/2025

Color, Culture, and Coffee on a Whimsical Ride

What to Consider Before Buying Merida’s Urban E-Bike
6/30/2025

What to Consider Before Buying Merida’s Urban E-Bike

Error compiling template "Designs/Swift-v2/QueryPublisher/Post/PostPagination.cshtml"
Line 20: The type name 'HttpUtility' could not be found in the namespace 'System.Web'. This type has been forwarded to assembly 'System.Web.HttpUtility, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' Consider adding a reference to that assembly.
Line 22: Operator '>' cannot be applied to operands of type 'method group' and 'int'

1 // <auto-generated/> 2 #pragma warning disable 1591 3 namespace CompiledRazorTemplates.Dynamic 4 { 5 #line hidden 6 using System.Threading.Tasks; 7 using System; 8 using System.Collections.Generic; 9 using System.Linq; 10 using Dynamicweb; 11 using Dynamicweb.Core; 12 using System.Net; 13 internal class RazorEngine_dccb329e599e4a3f906926ee45676c22 : Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.QueryPublisher.QueryResultViewModel> 14 { 15 #pragma warning disable 1998 16 public async override global::System.Threading.Tasks.Task ExecuteAsync() 17 { 18 WriteLiteral("\r\n"); 19 20 var querystring = System.Web.HttpUtility.ParseQueryString(Dynamicweb.Context.Current?.Request.Url?.Query ?? string.Empty); 21 querystring.Remove("PageNum"); 22 string baseUrl = (Dynamicweb.Context.Current?.Request.Url?.AbsolutePath ?? "/") + (querystring.Count > 0 ? "?" + querystring : string.Empty); 23 WriteLiteral("\r\n"); 24 if (Model.PageCount > 1) 25 { 26 WriteLiteral("\t<div class=\"hstack justify-content-between mt-3\">\r\n\t\t<div class=\"text-muted fs-7\">\r\n\t\t\t"); 27 Write(Translate("Showing page")); 28 WriteLiteral(" "); 29 Write(Model.CurrentPage); 30 WriteLiteral(" "); 31 Write(Translate("of")); 32 WriteLiteral(" "); 33 Write(Model.PageCount); 34 WriteLiteral("\r\n\t\t</div>\r\n\r\n\t\t<div class=\"hstack gap-2\">\r\n\t\t\t<button type=\"button\" class=\"btn btn-outline-secondary text-body hstack p-2\" data-dw-button"); 35 BeginWriteAttribute("hx-get", "\r\n\t\t\t\thx-get=\"", 812, "\"", 834, 1); 36 WriteAttributeValue("", 826, baseUrl, 826, 8, false); 37 EndWriteAttribute(); 38 BeginWriteAttribute("hx-vals", "\r\n\t\t\t\thx-vals=\'", 835, "\'", 887, 3); 39 WriteAttributeValue("", 850, "{\"PageNum\":", 850, 11, true); 40 WriteAttributeValue(" ", 861, Model.CurrentPage - 1, 862, 24, false); 41 WriteAttributeValue("", 886, "}", 886, 1, true); 42 EndWriteAttribute(); 43 WriteLiteral("\r\n\t\t\t\thx-swap=\"outerHTML\"\r\n\t\t\t\thx-replace-url=\"true\"\r\n\t\t\t\thx-select=\"[data-swift-posts-list]\"\r\n\t\t\t\thx-target=\"[data-swift-posts-list]\""); 44 BeginWriteAttribute("disabled", "\r\n\t\t\t\tdisabled=\"", 1022, "\"", 1063, 1); 45 WriteAttributeValue("", 1038, Model.CurrentPage == 1, 1038, 25, false); 46 EndWriteAttribute(); 47 WriteLiteral(">\r\n\t\t\t\t<span class=\"icon-2\">\r\n\t\t\t\t\t"); 48 Write(ReadFile("/Files/Images/Icons/chevron-left.svg")); 49 WriteLiteral("\r\n\t\t\t\t</span>\r\n\t\t\t</button>\r\n\t\t\t<button type=\"button\" class=\"btn btn-outline-secondary text-body hstack p-2\" data-dw-button"); 50 BeginWriteAttribute("hx-get", "\r\n\t\t\t\thx-get=\"", 1271, "\"", 1293, 1); 51 WriteAttributeValue("", 1285, baseUrl, 1285, 8, false); 52 EndWriteAttribute(); 53 BeginWriteAttribute("hx-vals", "\r\n\t\t\t\thx-vals=\'", 1294, "\'", 1346, 3); 54 WriteAttributeValue("", 1309, "{\"PageNum\":", 1309, 11, true); 55 WriteAttributeValue(" ", 1320, Model.CurrentPage + 1, 1321, 24, false); 56 WriteAttributeValue("", 1345, "}", 1345, 1, true); 57 EndWriteAttribute(); 58 WriteLiteral("\r\n\t\t\t\thx-swap=\"outerHTML\"\r\n\t\t\t\thx-replace-url=\"true\"\r\n\t\t\t\thx-select=\"[data-swift-posts-list]\"\r\n\t\t\t\thx-target=\"[data-swift-posts-list]\""); 59 BeginWriteAttribute("disabled", "\r\n\t\t\t\tdisabled=\"", 1481, "\"", 1536, 1); 60 WriteAttributeValue("", 1497, Model.CurrentPage == Model.PageCount, 1497, 39, false); 61 EndWriteAttribute(); 62 WriteLiteral(">\r\n\t\t\t\t<span class=\"icon-2\">\r\n\t\t\t\t\t"); 63 Write(ReadFile("/Files/Images/Icons/chevron-right.svg")); 64 WriteLiteral("\r\n\t\t\t\t</span>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</div>\r\n"); 65 } 66 } 67 #pragma warning restore 1998 68 } 69 } 70 #pragma warning restore 1591 71

1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.QueryPublisher.QueryResultViewModel> 2 @using Dynamicweb 3 @using Dynamicweb.Core 4 @using System.Net 5 6 @{ 7 var querystring = System.Web.HttpUtility.ParseQueryString(Dynamicweb.Context.Current?.Request.Url?.Query ?? string.Empty); 8 querystring.Remove("PageNum"); 9 string baseUrl = (Dynamicweb.Context.Current?.Request.Url?.AbsolutePath ?? "/") + (querystring.Count > 0 ? "?" + querystring : string.Empty); 10 } 11 12 @if (Model.PageCount > 1) 13 { 14 <div class="hstack justify-content-between mt-3"> 15 <div class="text-muted fs-7"> 16 @Translate("Showing page") @(Model.CurrentPage) @Translate("of") @(Model.PageCount) 17 </div> 18 19 <div class="hstack gap-2"> 20 <button type="button" class="btn btn-outline-secondary text-body hstack p-2" data-dw-button 21 hx-get="@baseUrl" 22 hx-vals='{"PageNum": @(Model.CurrentPage - 1)}' 23 hx-swap="outerHTML" 24 hx-replace-url="true" 25 hx-select="[data-swift-posts-list]" 26 hx-target="[data-swift-posts-list]" 27 disabled="@(Model.CurrentPage == 1)"> 28 <span class="icon-2"> 29 @ReadFile("/Files/Images/Icons/chevron-left.svg") 30 </span> 31 </button> 32 <button type="button" class="btn btn-outline-secondary text-body hstack p-2" data-dw-button 33 hx-get="@baseUrl" 34 hx-vals='{"PageNum": @(Model.CurrentPage + 1)}' 35 hx-swap="outerHTML" 36 hx-replace-url="true" 37 hx-select="[data-swift-posts-list]" 38 hx-target="[data-swift-posts-list]" 39 disabled="@(Model.CurrentPage == Model.PageCount)"> 40 <span class="icon-2"> 41 @ReadFile("/Files/Images/Icons/chevron-right.svg") 42 </span> 43 </button> 44 </div> 45 </div> 46 } 47