Merge version_2 into main #2

Merged
bender merged 2 commits from version_2 into main 2026-03-05 09:50:50 +00:00
2 changed files with 50 additions and 25 deletions

View File

@@ -29,11 +29,13 @@ const jetbrainsMono = JetBrains_Mono({
export const metadata: Metadata = {
title: "Runly Event Management for Run Clubs", description: "Runly simplifies run club management. Handle events, signups, and payments in one calm, minimal platform. Start free today.", keywords: "run club management, event scheduling, running groups, payment processing, community platform", metadataBase: new URL("https://runly.io"),
alternates: {
canonical: "https://runly.io"},
canonical: "https://runly.io"
},
openGraph: {
title: "Runly Event Management for Run Clubs", description: "Runly simplifies run club management. Handle events, signups, and payments in one calm, minimal platform.", url: "https://runly.io", siteName: "Runly", type: "website", images: [
{
url: "http://img.b2bpic.net/free-vector/running-workout-tracer-mobile-app_23-2148650970.jpg", alt: "Runly dashboard"},
url: "http://img.b2bpic.net/free-vector/running-workout-tracer-mobile-app_23-2148650970.jpg", alt: "Runly dashboard"
},
],
},
twitter: {

View File

@@ -46,9 +46,11 @@ export default function LandingPage() {
background={{ variant: "plain" }}
mediaItems={[
{
imageSrc: "http://img.b2bpic.net/free-vector/running-workout-tracer-mobile-app_23-2148650970.jpg", imageAlt: "Runly event management dashboard"},
imageSrc: "http://img.b2bpic.net/free-vector/running-workout-tracer-mobile-app_23-2148650970.jpg", imageAlt: "Runly event management dashboard"
},
{
imageSrc: "http://img.b2bpic.net/free-photo/happy-athletic-women-having-fun-while-jogging-with-group-people-nature_637285-6597.jpg", imageAlt: "Run club community gathering"},
imageSrc: "http://img.b2bpic.net/free-photo/happy-athletic-women-having-fun-while-jogging-with-group-people-nature_637285-6597.jpg", imageAlt: "Run club community gathering"
},
]}
rating={5}
ratingText="Loved by run club organizers"
@@ -66,7 +68,8 @@ export default function LandingPage() {
<InlineImageSplitTextAbout
heading={[
{
type: "text", content: "Managing run clubs shouldn't be complex. Runly streamlines the entire workflow—from planning events to collecting dues—so organizers can focus on what matters: the runs and the people."},
type: "text", content: "Managing run clubs shouldn't be complex. Runly streamlines the entire workflow—from planning events to collecting dues—so organizers can focus on what matters: the runs and the people."
},
]}
useInvertedBackground={false}
buttons={[{ text: "Learn More", href: "#features" }]}
@@ -81,11 +84,13 @@ export default function LandingPage() {
tag="comparison"
negativeCard={{
items: [
"Scattered spreadsheets and emails", "Manual payment processing", "No member coordination", "Hard to track attendance", "Recurring administrative overhead"],
"Scattered spreadsheets and emails", "Manual payment processing", "No member coordination", "Hard to track attendance", "Recurring administrative overhead"
],
}}
positiveCard={{
items: [
"Centralized event hub", "Automated payment handling", "Member profiles and groups", "Built-in tracking and insights", "Recurring events, minimal effort"],
"Centralized event hub", "Automated payment handling", "Member profiles and groups", "Built-in tracking and insights", "Recurring events, minimal effort"
],
}}
animationType="slide-up"
textboxLayout="default"
@@ -102,18 +107,21 @@ export default function LandingPage() {
{
id: "starter", price: "Free", name: "Starter", buttons: [{ text: "Start Free", href: "#contact" }],
features: [
"Up to 50 members", "Unlimited events", "Basic signups", "Manual payments"],
"Up to 50 members", "Unlimited events", "Basic signups", "Manual payments"
],
},
{
id: "pro", badge: "Most popular", badgeIcon: Sparkles,
price: "$49/mo", name: "Pro", buttons: [{ text: "Get Started", href: "#contact" }],
features: [
"Unlimited members", "Unlimited events", "Advanced signups", "Automated payments", "Member directory", "Analytics dashboard"],
"Unlimited members", "Unlimited events", "Advanced signups", "Automated payments", "Member directory", "Analytics dashboard", "Join 500+ active clubs"
],
},
{
id: "enterprise", price: "Custom", name: "Enterprise", buttons: [{ text: "Contact Sales", href: "#contact" }],
features: [
"Everything in Pro", "Dedicated support", "Custom branding", "Advanced integrations", "Priority onboarding"],
"Everything in Pro", "Dedicated support", "Custom branding", "Advanced integrations", "Priority onboarding"
],
},
]}
animationType="slide-up"
@@ -129,17 +137,23 @@ export default function LandingPage() {
tag="Testimonials"
testimonials={[
{
id: "1", name: "Sarah Chen", handle: "Founder, Coast Run Club", testimonial: "Runly cut our admin time by 80%. We used to spend hours managing signups and payments. Now it's automated.", imageSrc: "http://img.b2bpic.net/free-photo/handsome-darkskinned-browneyed-brunette-longsleeved-tshirt-looks-into-camera-runs-upstairs-outdoors_197531-28721.jpg?_wi=1", imageAlt: "Sarah Chen"},
id: "1", name: "Sarah Chen", handle: "Founder, Coast Run Club", testimonial: "Runly cut our admin time by 80%. We used to spend hours managing signups and payments. Now it's automated.", imageSrc: "http://img.b2bpic.net/free-photo/handsome-darkskinned-browneyed-brunette-longsleeved-tshirt-looks-into-camera-runs-upstairs-outdoors_197531-28721.jpg?_wi=1", imageAlt: "Sarah Chen"
},
{
id: "2", name: "Marcus Thompson", handle: "Organizer, Brooklyn Fleet", testimonial: "The simplicity is remarkable. No learning curve. Members love the clean interface. We switched from three different apps.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiley-woman-outdoors_23-2149037674.jpg?_wi=1", imageAlt: "Marcus Thompson"},
id: "2", name: "Marcus Thompson", handle: "Organizer, Brooklyn Fleet", testimonial: "The simplicity is remarkable. No learning curve. Members love the clean interface. We switched from three different apps.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiley-woman-outdoors_23-2149037674.jpg?_wi=1", imageAlt: "Marcus Thompson"
},
{
id: "3", name: "Elena Rodriguez", handle: "Lead, Urban Runners Collective", testimonial: "Finally, a platform designed for how we actually run clubs. Runly gets it. Every feature feels intentional.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-handsome-african-athlete-with-healthy-tanned-skin-confident-look-wearing-black-sportswear-squinting-his-eyes-while-resting-outdoors-listening-his-favourite-music-with-earphones_273609-1205.jpg", imageAlt: "Elena Rodriguez"},
id: "3", name: "Elena Rodriguez", handle: "Lead, Urban Runners Collective", testimonial: "Finally, a platform designed for how we actually run clubs. Runly gets it. Every feature feels intentional.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-handsome-african-athlete-with-healthy-tanned-skin-confident-look-wearing-black-sportswear-squinting-his-eyes-while-resting-outdoors-listening-his-favourite-music-with-earphones_273609-1205.jpg", imageAlt: "Elena Rodriguez"
},
{
id: "4", name: "James Park", handle: "Coordinator, Silicon Valley Running", testimonial: "Payments are seamless. Members feel confident. We've grown from 50 to 200 members without any growing pains.", imageSrc: "http://img.b2bpic.net/free-photo/handsome-darkskinned-browneyed-brunette-longsleeved-tshirt-looks-into-camera-runs-upstairs-outdoors_197531-28721.jpg?_wi=2", imageAlt: "James Park"},
id: "4", name: "James Park", handle: "Coordinator, Silicon Valley Running", testimonial: "Payments are seamless. Members feel confident. We've grown from 50 to 200 members without any growing pains.", imageSrc: "http://img.b2bpic.net/free-photo/handsome-darkskinned-browneyed-brunette-longsleeved-tshirt-looks-into-camera-runs-upstairs-outdoors_197531-28721.jpg?_wi=2", imageAlt: "James Park"
},
{
id: "5", name: "Sophia Müller", handle: "Co-founder, Alps Trail Club", testimonial: "The analytics dashboard helps us understand our community better. We make smarter decisions about which events to run.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiley-woman-outdoors_23-2149037674.jpg?_wi=2", imageAlt: "Sophia Müller"},
id: "5", name: "Sophia Müller", handle: "Co-founder, Alps Trail Club", testimonial: "The analytics dashboard helps us understand our community better. We make smarter decisions about which events to run.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiley-woman-outdoors_23-2149037674.jpg?_wi=2", imageAlt: "Sophia Müller"
},
{
id: "6", name: "David Lee", handle: "President, Morning Mile Crew", testimonial: "Runly is what we've been waiting for. Built by people who understand run clubs. Highly recommended.", imageSrc: "http://img.b2bpic.net/free-photo/handsome-darkskinned-browneyed-brunette-longsleeved-tshirt-looks-into-camera-runs-upstairs-outdoors_197531-28721.jpg?_wi=3", imageAlt: "David Lee"},
id: "6", name: "David Lee", handle: "President, Morning Mile Crew", testimonial: "Runly is what we've been waiting for. Built by people who understand run clubs. Highly recommended.", imageSrc: "http://img.b2bpic.net/free-photo/handsome-darkskinned-browneyed-brunette-longsleeved-tshirt-looks-into-camera-runs-upstairs-outdoors_197531-28721.jpg?_wi=3", imageAlt: "David Lee"
},
]}
animationType="slide-up"
textboxLayout="default"
@@ -154,17 +168,23 @@ export default function LandingPage() {
tag="Help"
faqs={[
{
id: "1", title: "How much does it cost?", content: "Runly is free to start with up to 50 members. Our Pro plan is $49/month and includes unlimited members, automated payments, and analytics. Enterprise plans are custom-priced for large organizations."},
id: "1", title: "How much does it cost?", content: "Runly is free to start with up to 50 members. Our Pro plan is $49/month and includes unlimited members, automated payments, and analytics. Enterprise plans are custom-priced for large organizations."
},
{
id: "2", title: "Can I import my existing members?", content: "Yes. We support bulk import via CSV. You can upload your member list, existing events, and payment history. Our onboarding team will help if you need it."},
id: "2", title: "Can I import my existing members?", content: "Yes. We support bulk import via CSV. You can upload your member list, existing events, and payment history. Our onboarding team will help if you need it."
},
{
id: "3", title: "Which payment processors do you support?", content: "Runly supports Stripe and Square for payments. Both process payments securely, and you can choose your preferred provider during setup."},
id: "3", title: "Which payment processors do you support?", content: "Runly supports Stripe and Square for payments. Both process payments securely, and you can choose your preferred provider during setup."
},
{
id: "4", title: "Is my data safe?", content: "Yes. Runly uses industry-standard encryption, SOC 2 compliance, and regular security audits. Your members' payment data never touches our servers—it goes directly to our payment partners."},
id: "4", title: "Is my data safe?", content: "Yes. Runly uses industry-standard encryption, SOC 2 compliance, and regular security audits. Your members' payment data never touches our servers—it goes directly to our payment partners."
},
{
id: "5", title: "Can multiple people manage my club?", content: "Absolutely. You can invite other organizers with different permission levels. Admins manage events and members, organizers can create events, and members have read-only access to the directory."},
id: "5", title: "Can multiple people manage my club?", content: "Absolutely. You can invite other organizers with different permission levels. Admins manage events and members, organizers can create events, and members have read-only access to the directory."
},
{
id: "6", title: "Do you offer mobile apps?", content: "Our mobile web app works on all devices. We're building native iOS and Android apps—coming soon to Pro and Enterprise customers."},
id: "6", title: "Do you offer mobile apps?", content: "Our mobile web app works on all devices. We're building native iOS and Android apps—coming soon to Pro and Enterprise customers."
},
]}
faqsAnimation="slide-up"
textboxLayout="default"
@@ -195,13 +215,16 @@ export default function LandingPage() {
socialLinks={[
{
icon: Twitter,
href: "https://twitter.com/runly", ariaLabel: "Twitter"},
href: "https://twitter.com/runly", ariaLabel: "Twitter"
},
{
icon: Linkedin,
href: "https://linkedin.com/company/runly", ariaLabel: "LinkedIn"},
href: "https://linkedin.com/company/runly", ariaLabel: "LinkedIn"
},
{
icon: Github,
href: "https://github.com/runly", ariaLabel: "GitHub"},
href: "https://github.com/runly", ariaLabel: "GitHub"
},
]}
/>
</div>