init
This commit is contained in:
commit
4662aa420b
134
.gitignore
vendored
Normal file
134
.gitignore
vendored
Normal file
@ -0,0 +1,134 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
lerna-debug.log*
|
||||
.pnpm-debug.log*
|
||||
|
||||
# Diagnostic reports (https://nodejs.org/api/report)
|
||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# Snowpack dependency directory (https://snowpack.dev/)
|
||||
web_modules/
|
||||
|
||||
# TypeScript cache
|
||||
*.tsbuildinfo
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Optional stylelint cache
|
||||
.stylelintcache
|
||||
|
||||
# Microbundle cache
|
||||
.rpt2_cache/
|
||||
.rts2_cache_cjs/
|
||||
.rts2_cache_es/
|
||||
.rts2_cache_umd/
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variable files
|
||||
.env
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
.env.local
|
||||
|
||||
# parcel-bundler cache (https://parceljs.org/)
|
||||
.cache
|
||||
.parcel-cache
|
||||
|
||||
# Next.js build output
|
||||
.next
|
||||
out
|
||||
|
||||
# Nuxt.js build / generate output
|
||||
.nuxt
|
||||
dist
|
||||
|
||||
# Gatsby files
|
||||
.cache/
|
||||
# Comment in the public line in if your project uses Gatsby and not Next.js
|
||||
# https://nextjs.org/blog/next-9-1#public-directory-support
|
||||
# public
|
||||
|
||||
# vuepress build output
|
||||
.vuepress/dist
|
||||
|
||||
# vuepress v2.x temp and cache directory
|
||||
.temp
|
||||
.cache
|
||||
|
||||
# Docusaurus cache and generated files
|
||||
.docusaurus
|
||||
|
||||
# Serverless directories
|
||||
.serverless/
|
||||
|
||||
# FuseBox cache
|
||||
.fusebox/
|
||||
|
||||
# DynamoDB Local files
|
||||
.dynamodb/
|
||||
|
||||
# TernJS port file
|
||||
.tern-port
|
||||
|
||||
# Stores VSCode versions used for testing VSCode extensions
|
||||
.vscode-test
|
||||
|
||||
# yarn v2
|
||||
.yarn/cache
|
||||
.yarn/unplugged
|
||||
.yarn/build-state.yml
|
||||
.yarn/install-state.gz
|
||||
.pnp.*
|
||||
|
||||
# ignore css
|
||||
public/assets/css/main.css
|
||||
public/assets/css/main.css.map
|
569
app/about/page.js
Normal file
569
app/about/page.js
Normal file
@ -0,0 +1,569 @@
|
||||
import CounterUp from "@/components/elements/CounterUp";
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import About4Two from "@/components/sections/About4Two";
|
||||
import Team4 from "@/components/sections/Team4";
|
||||
import Testimonials from "@/components/sections/Testimonials";
|
||||
import BrandActiveSlider from "@/components/slider/BrandActiveSlider";
|
||||
|
||||
export const metadata = {
|
||||
title: "About | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function About() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="About Us">
|
||||
<section className="counter-area-four">
|
||||
<div className="container">
|
||||
<div className="row justify-content-center">
|
||||
<div className="col-lg-6">
|
||||
<div className="section-title text-center mb-70 tg-heading-subheading animation-style3">
|
||||
<span className="sub-title">
|
||||
ABOUT <span className="title-color">RANKRUNNERS</span>
|
||||
</span>
|
||||
<h2 className="title tg-element-title">
|
||||
It's Time to <i>...Outrun</i> the Competition!
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="row justify-content-center">
|
||||
<div className="col-xl-3 col-lg-4 col-sm-6">
|
||||
<div className="counter-item">
|
||||
<div className="icon">
|
||||
<i className="flaticon-trophy" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h2 className="count">
|
||||
<CounterUp count={150} />+
|
||||
</h2>
|
||||
<p>Satisfied Clients</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-sm-6">
|
||||
<div className="counter-item">
|
||||
<div className="icon">
|
||||
<i className="flaticon-graph" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h2 className="count">
|
||||
<CounterUp count={7} />
|
||||
:1+
|
||||
</h2>
|
||||
<p>Average ROAS</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-sm-6">
|
||||
<div className="counter-item">
|
||||
<div className="icon">
|
||||
<i className="flaticon-happy" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h2 className="count">
|
||||
<CounterUp count={250} />%
|
||||
</h2>
|
||||
<p>Average Traffic Increase</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<About4Two />
|
||||
<Team4 />
|
||||
<div>
|
||||
{/* <section className="about__area-four">
|
||||
<div className="container">
|
||||
<div className="row align-items-center justify-content-center">
|
||||
<div className="col-lg-6 col-md-9 col-sm-10">
|
||||
<div className="about__img-wrap-four">
|
||||
<img src="/assets/img/images/inner_about01.jpg" alt="" />
|
||||
<img src="/assets/img/images/inner_about02.jpg" alt="" />
|
||||
<div className="about__award-box">
|
||||
<div className="icon">
|
||||
<i className="flaticon-trophy" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h2 className="title">15+</h2>
|
||||
<p>
|
||||
World Best Agency <br /> Award Got
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="shape">
|
||||
<img
|
||||
src="/assets/img/images/inner_about_shape.jpg"
|
||||
alt=""
|
||||
className="alltuchtopdown"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6">
|
||||
<div className="about__content-four">
|
||||
<div className="section-title mb-30">
|
||||
<span className="sub-title">Simply Know About</span>
|
||||
<h2 className="title">
|
||||
We Help Organizations To Make Ultimate Businesses Growth Success
|
||||
</h2>
|
||||
</div>
|
||||
<div className="about__content-inner-three">
|
||||
<div className="about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Medicare Advantage Plans
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Analysis Research
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
100% Secure Money Back
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="about__list-img-two">
|
||||
<img src="/assets/img/images/about_list_img02.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
We successfully cope with tasks of varying complexityprovide longerty term
|
||||
guarantees and regularly master new Practice Area technol ogiesOur portfolio
|
||||
includes dozen
|
||||
</p>
|
||||
<Link href="/contact" className="btn">
|
||||
Contact With Us
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section> */}
|
||||
<div className="brand__area-four">
|
||||
<div className="container">
|
||||
<h4 className="brand__content">
|
||||
Trusted by Numerous Companies, Worldwide
|
||||
</h4>
|
||||
<div className="swiper-container brand-active">
|
||||
<BrandActiveSlider />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* <section className="choose__area-four">
|
||||
<div className="container">
|
||||
<div className="row align-items-center">
|
||||
<div className="col-lg-5">
|
||||
<div className="choose__content-four">
|
||||
<div className="section-title white-title mb-20">
|
||||
<span className="sub-title">Why We Are The Best</span>
|
||||
<h2 className="title">Digital Solutions For Your Online Business</h2>
|
||||
</div>
|
||||
<p>
|
||||
We successfully cope with tasks of varying complexity provide area longerty
|
||||
guarantees and regularly master new Practice Following gies heur.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-7">
|
||||
<div className="choose__list-two">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<div className="choose__list-box-two">
|
||||
<div className="choose__list-icon-two">
|
||||
<i className="flaticon-investment" />
|
||||
</div>
|
||||
<div className="choose__list-content-two">
|
||||
<h4 className="title">Business Solutions</h4>
|
||||
<p>Semper egetuis kelly for tellus urna area condition.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className="choose__list-box-two">
|
||||
<div className="choose__list-icon-two">
|
||||
<i className="flaticon-financial-profit" />
|
||||
</div>
|
||||
<div className="choose__list-content-two">
|
||||
<h4 className="title">Finance Planning</h4>
|
||||
<p>Semper egetuis kelly for tellus urna area condition.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className="choose__list-box-two">
|
||||
<div className="choose__list-icon-two">
|
||||
<i className="flaticon-investment-1" />
|
||||
</div>
|
||||
<div className="choose__list-content-two">
|
||||
<h4 className="title">Market Analysis</h4>
|
||||
<p>Semper egetuis kelly for tellus urna area condition.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className="choose__list-box-two">
|
||||
<div className="choose__list-icon-two">
|
||||
<i className="flaticon-report" />
|
||||
</div>
|
||||
<div className="choose__list-content-two">
|
||||
<h4 className="title">Business Solutions</h4>
|
||||
<p>Semper egetuis kelly for tellus urna area condition.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="choose__shape-wrap-four">
|
||||
<img
|
||||
src="/assets/img/images/inner_choose_shape01.png"
|
||||
alt=""
|
||||
data-aos="fade-right"
|
||||
data-aos-delay={400}
|
||||
/>
|
||||
<img
|
||||
src="/assets/img/images/inner_choose_shape02.png"
|
||||
alt=""
|
||||
data-aos="fade-left"
|
||||
data-aos-delay={400}
|
||||
/>
|
||||
</div>
|
||||
</section> */}
|
||||
{/* <section className="counter-area">
|
||||
<div className="container">
|
||||
<div className="row justify-content-center">
|
||||
<div className="col-xl-3 col-lg-4 col-sm-6">
|
||||
<div className="counter-item">
|
||||
<div className="icon">
|
||||
<i className="flaticon-trophy" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h2 className="count">
|
||||
<CounterUp count={45} />+
|
||||
</h2>
|
||||
<p>
|
||||
Successfully <br /> Completed Projects
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-sm-6">
|
||||
<div className="counter-item">
|
||||
<div className="icon">
|
||||
<i className="flaticon-happy" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h2 className="count">
|
||||
<CounterUp count={92} />K
|
||||
</h2>
|
||||
<p>
|
||||
Satisfied <br /> 100% Our Clients
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-sm-6">
|
||||
<div className="counter-item">
|
||||
<div className="icon">
|
||||
<i className="flaticon-china" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h2 className="count">
|
||||
<CounterUp count={19} />+
|
||||
</h2>
|
||||
<p>
|
||||
All Over The World <br /> We Are Available
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-sm-6">
|
||||
<div className="counter-item">
|
||||
<div className="icon">
|
||||
<i className="flaticon-time" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h2 className="count">
|
||||
<CounterUp count={25} />+
|
||||
</h2>
|
||||
<p>
|
||||
Years of Experiences <br /> To Run This Company
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="counter-shape-wrap">
|
||||
<img
|
||||
src="/assets/img/images/counter_shape01.png"
|
||||
alt=""
|
||||
data-aos="fade-right"
|
||||
data-aos-delay={400}
|
||||
/>
|
||||
<img
|
||||
src="/assets/img/images/counter_shape02.png"
|
||||
alt=""
|
||||
data-parallax='{"x" : 100 , "y" : -100 }'
|
||||
/>
|
||||
<img
|
||||
src="/assets/img/images/counter_shape03.png"
|
||||
alt=""
|
||||
data-aos="fade-left"
|
||||
data-aos-delay={400}
|
||||
/>
|
||||
</div>
|
||||
</section> */}
|
||||
{/* <section className="team__area-four">
|
||||
<div className="container">
|
||||
<div className="row justify-content-center">
|
||||
<div className="col-lg-6">
|
||||
<div className="section-title text-center mb-40">
|
||||
<span className="sub-title">MEET OUR TEAM</span>
|
||||
<h2 className="title">
|
||||
Business Expertise Is Here <br /> For You Can Trust
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="row justify-content-center">
|
||||
<div className="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="team__item-four shine-animate-item">
|
||||
<div className="team__thumb-four shine-animate">
|
||||
<img src="/assets/img/team/h4_team_img01.jpg" alt="" />
|
||||
</div>
|
||||
<div className="team__content-four">
|
||||
<h2 className="title">
|
||||
<Link href="/team-details">Floyd Miles</Link>
|
||||
</h2>
|
||||
<span>Finance Advisor</span>
|
||||
<div className="team__social-four">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-facebook-f" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-twitter" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-instagram" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-pinterest-p" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-linkedin-in" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="team__item-four shine-animate-item">
|
||||
<div className="team__thumb-four shine-animate">
|
||||
<img src="/assets/img/team/h4_team_img02.jpg" alt="" />
|
||||
</div>
|
||||
<div className="team__content-four">
|
||||
<h2 className="title">
|
||||
<Link href="/team-details">Ralph Edwards</Link>
|
||||
</h2>
|
||||
<span>Finance Advisor</span>
|
||||
<div className="team__social-four">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-facebook-f" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-twitter" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-instagram" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-pinterest-p" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-linkedin-in" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="team__item-four shine-animate-item">
|
||||
<div className="team__thumb-four shine-animate">
|
||||
<img src="/assets/img/team/h4_team_img03.jpg" alt="" />
|
||||
</div>
|
||||
<div className="team__content-four">
|
||||
<h2 className="title">
|
||||
<Link href="/team-details">Eleanor Pena</Link>
|
||||
</h2>
|
||||
<span>Finance Advisor</span>
|
||||
<div className="team__social-four">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-facebook-f" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-twitter" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-instagram" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-pinterest-p" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-linkedin-in" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="team__item-four shine-animate-item">
|
||||
<div className="team__thumb-four shine-animate">
|
||||
<img src="/assets/img/team/h4_team_img04.jpg" alt="" />
|
||||
</div>
|
||||
<div className="team__content-four">
|
||||
<h2 className="title">
|
||||
<Link href="/team-details">Jone Cooper</Link>
|
||||
</h2>
|
||||
<span>Finance Advisor</span>
|
||||
<div className="team__social-four">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-facebook-f" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-twitter" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-instagram" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-pinterest-p" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">
|
||||
<i className="fab fa-linkedin-in" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section> */}
|
||||
{/* <section className="call-back-area">
|
||||
<div className="container">
|
||||
<div className="row">
|
||||
<div className="col-lg-6">
|
||||
<div className="call-back-content">
|
||||
<div className="section-title white-title mb-10">
|
||||
<h2 className="title">Request A Call Back</h2>
|
||||
</div>
|
||||
<p>
|
||||
Ever find yourself staring at your computer screen a good consulting slogan
|
||||
to come to mind? Oftentimes.
|
||||
</p>
|
||||
<div className="shape">
|
||||
<img
|
||||
src="/assets/img/images/call_back_shape.png"
|
||||
alt=""
|
||||
data-aos="fade-right"
|
||||
data-aos-delay={400}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6">
|
||||
<div className="call-back-form">
|
||||
<form action="#">
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="form-grp">
|
||||
<input type="text" placeholder="Name *" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6">
|
||||
<div className="form-grp">
|
||||
<input type="email" placeholder="E-mail *" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6">
|
||||
<div className="form-grp">
|
||||
<input type="number" placeholder="Phone *" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6">
|
||||
<button type="submit" className="btn">
|
||||
Send Now
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section> */}
|
||||
</div>
|
||||
<Callback1 />
|
||||
<Testimonials />
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
47
app/api/contact-send/route.js
Normal file
47
app/api/contact-send/route.js
Normal file
@ -0,0 +1,47 @@
|
||||
import { EmailTemplate } from "@/components/custom/ContactSender";
|
||||
import { Resend } from "resend";
|
||||
|
||||
const resend = new Resend(process.env.RESEND_API_KEY);
|
||||
|
||||
export async function POST(request) {
|
||||
try {
|
||||
const formData = await request.json();
|
||||
|
||||
// Send email using Resend
|
||||
const { data: resendData, error: resendError } = await resend.emails.send({
|
||||
from: "support@rankrunners.net",
|
||||
to: ["sales@rankrunners.net"],
|
||||
subject: "New Quotes From /contact",
|
||||
react: EmailTemplate({
|
||||
name: formData.name,
|
||||
emailAddress: formData.emailAddress,
|
||||
phoneNumber: formData.phoneNumber,
|
||||
subject: formData.subject,
|
||||
message: formData.message,
|
||||
}),
|
||||
});
|
||||
|
||||
if (resendError) {
|
||||
return Response.json({ error: resendError }, { status: 500 });
|
||||
}
|
||||
|
||||
const response = await fetch("https://cryagent.pythonanywhere.com/submitrankrunnerscontact", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({ email: formData.emailAddress }),
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error("Failed to submit to cryagent.pythonanywhere.com");
|
||||
}
|
||||
|
||||
const pythonAnywhereData = await response.json();
|
||||
|
||||
return Response.json({ resendData, pythonAnywhereData });
|
||||
} catch (error) {
|
||||
console.error("Error:", error);
|
||||
return Response.json({ error: error.message }, { status: 500 });
|
||||
}
|
||||
}
|
32
app/api/get-payment-log/route.js
Normal file
32
app/api/get-payment-log/route.js
Normal file
@ -0,0 +1,32 @@
|
||||
import { NextResponse } from "next/server";
|
||||
|
||||
export async function GET(request) {
|
||||
const { searchParams } = new URL(request.url);
|
||||
const subscriptionId = searchParams.get("subscriptionId");
|
||||
|
||||
if (!subscriptionId) {
|
||||
return NextResponse.json(
|
||||
{ error: "Subscription ID is required" },
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
|
||||
try {
|
||||
// Placeholder logic for fetching payment log data
|
||||
const paymentLog = [
|
||||
{
|
||||
id: "INV123",
|
||||
amount_paid: 100.0,
|
||||
status: "paid",
|
||||
created: new Date().toISOString(),
|
||||
period_start: new Date().toISOString(),
|
||||
period_end: new Date().toISOString(),
|
||||
},
|
||||
];
|
||||
|
||||
return NextResponse.json({ paymentLog });
|
||||
} catch (error) {
|
||||
console.error("Error fetching payment log:", error);
|
||||
return NextResponse.json({ error: error.message }, { status: 500 });
|
||||
}
|
||||
}
|
38
app/api/getreport/route.js
Normal file
38
app/api/getreport/route.js
Normal file
@ -0,0 +1,38 @@
|
||||
import { NextResponse } from "next/server";
|
||||
|
||||
export async function POST(request) {
|
||||
try {
|
||||
const body = await request.json();
|
||||
const { websitename, emailname } = body;
|
||||
|
||||
if (!websitename) {
|
||||
return NextResponse.json({ error: "Website name is required" }, { status: 400 });
|
||||
}
|
||||
|
||||
const flaskUrl = "https://report.rankrunners.net/get-report";
|
||||
|
||||
const response = await fetch(flaskUrl, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({ websitename, emailname }),
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
const errorData = await response.json();
|
||||
throw new Error(
|
||||
`Flask backend responded with status ${response.status} and message: ${
|
||||
errorData.error || "Unknown error"
|
||||
}`
|
||||
);
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
return NextResponse.json(data);
|
||||
} catch (error) {
|
||||
console.error("Detailed error in getreport API:", error);
|
||||
return NextResponse.json({ error: "Internal Server Error", details: error.message }, { status: 500 });
|
||||
}
|
||||
}
|
58
app/api/handle-successful-payment/route.js
Normal file
58
app/api/handle-successful-payment/route.js
Normal file
@ -0,0 +1,58 @@
|
||||
import { NextResponse } from "next/server";
|
||||
import Stripe from "stripe";
|
||||
// import { createClient } from "@supabase/supabase-js";
|
||||
|
||||
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
|
||||
// const supabase = createClient(process.env.SUPABASE_SERVICE_ROLE_KEY);
|
||||
|
||||
// export async function POST(request) {
|
||||
// try {
|
||||
// const { sessionId, userId } = await request.json();
|
||||
|
||||
// Retrieve the Stripe session
|
||||
// const session = await stripe.checkout.sessions.retrieve(sessionId);
|
||||
|
||||
// if (session.payment_status !== "paid") {
|
||||
// return NextResponse.json(
|
||||
// { error: "Payment not successful" },
|
||||
// { status: 400 }
|
||||
// );
|
||||
// }
|
||||
|
||||
// Retrieve the subscription details
|
||||
// const subscription = await stripe.subscriptions.retrieve(
|
||||
// session.subscription
|
||||
// );
|
||||
|
||||
// Update the user's subscription data in Supabase
|
||||
// const { error } = await supabase
|
||||
// .from("subscription_data")
|
||||
// .update({
|
||||
// active_subscription: true,
|
||||
// subscription_id: subscription.id,
|
||||
// status: subscription.status,
|
||||
// current_period_start: new Date(
|
||||
// subscription.current_period_start * 1000
|
||||
// ).toISOString(),
|
||||
// current_period_end: new Date(
|
||||
// subscription.current_period_end * 1000
|
||||
// ).toISOString(),
|
||||
// })
|
||||
// .eq("client_id", userId);
|
||||
|
||||
// if (error) {
|
||||
// return NextResponse.json(
|
||||
// {
|
||||
// error:
|
||||
// "Failed to update subscription data when handling successful payment",
|
||||
// },
|
||||
// { status: 500 }
|
||||
// );
|
||||
// }
|
||||
|
||||
// return NextResponse.json({ message: "Payment processed successfully" });
|
||||
// } catch (error) {
|
||||
// console.error("Error handling successful payment:", error);
|
||||
// return NextResponse.json({ error: error.message }, { status: 500 });
|
||||
// }
|
||||
// }
|
50
app/api/schedule-send/route.js
Normal file
50
app/api/schedule-send/route.js
Normal file
@ -0,0 +1,50 @@
|
||||
import { EmailTemplate } from "@/components/custom/ScheduleSender";
|
||||
import { Resend } from "resend";
|
||||
|
||||
const resend = new Resend(process.env.RESEND_API_KEY);
|
||||
|
||||
export async function POST(request) {
|
||||
try {
|
||||
const formData = await request.json();
|
||||
|
||||
const { data: resendData, error: resendError } = await resend.emails.send({
|
||||
from: "support@rankrunners.net",
|
||||
to: ["sales@rankrunners.net"],
|
||||
subject: "New Quotes From /schedule",
|
||||
react: EmailTemplate({
|
||||
firstName: formData.firstName,
|
||||
lastName: formData.lastName,
|
||||
emailAddress: formData.emailAddress,
|
||||
phoneNumber: formData.phoneNumber,
|
||||
companyName: formData.companyName,
|
||||
websiteUrl: formData.websiteUrl,
|
||||
annualRevenue: formData.annualRevenue,
|
||||
learnFrom: formData.learnFrom,
|
||||
additionalInfo: formData.additionalInfo,
|
||||
}),
|
||||
});
|
||||
|
||||
if (resendError) {
|
||||
return Response.json({ error: resendError }, { status: 500 });
|
||||
}
|
||||
|
||||
const response = await fetch("https://cryagent.pythonanywhere.com/submitrankrunnersschedule", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({ email: formData.emailAddress }),
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error("Failed to submit to cryagent.pythonanywhere.com");
|
||||
}
|
||||
|
||||
const pythonAnywhereData = await response.json();
|
||||
|
||||
return Response.json({ resendData, pythonAnywhereData });
|
||||
} catch (error) {
|
||||
console.error("Error:", error);
|
||||
return Response.json({ error: error.message }, { status: 500 });
|
||||
}
|
||||
}
|
52
app/api/stripe-cancel-subscription/route.js
Normal file
52
app/api/stripe-cancel-subscription/route.js
Normal file
@ -0,0 +1,52 @@
|
||||
import { NextResponse } from "next/server";
|
||||
import Stripe from "stripe";
|
||||
import { createClient } from "@supabase/supabase-js";
|
||||
|
||||
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
|
||||
// const supabase = createClient(process.env.SUPABASE_SERVICE_ROLE_KEY);
|
||||
|
||||
export async function POST(request) {
|
||||
try {
|
||||
const { subscriptionId } = await request.json();
|
||||
|
||||
// Cancel the subscription in Stripe
|
||||
const cancelledSubscription = await stripe.subscriptions.cancel(
|
||||
subscriptionId
|
||||
);
|
||||
console.log(cancelledSubscription);
|
||||
|
||||
// Update the subscription status in Supabase
|
||||
// const { error } = await supabase
|
||||
// .from("subscription_data")
|
||||
// .update({
|
||||
// status: cancelledSubscription.status,
|
||||
// active_subscription: false,
|
||||
// current_period_end: new Date(
|
||||
// cancelledSubscription.current_period_end * 1000
|
||||
// ).toISOString(),
|
||||
// current_period_start: new Date(
|
||||
// cancelledSubscription.current_period_start * 1000
|
||||
// ).toISOString(),
|
||||
// })
|
||||
// .eq("subscription_id", subscriptionId);
|
||||
|
||||
// if (error) {
|
||||
// console.error("Error updating subscription data in Supabase:", error);
|
||||
// return NextResponse.json(
|
||||
// {
|
||||
// success: false,
|
||||
// error: "Failed to update subscription data when cancelling",
|
||||
// },
|
||||
// { status: 500 }
|
||||
// );
|
||||
// }
|
||||
|
||||
return NextResponse.json({ success: true });
|
||||
} catch (error) {
|
||||
console.error("Error cancelling subscription:", error);
|
||||
return NextResponse.json(
|
||||
{ success: false, error: error.message },
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
}
|
83
app/api/stripe-create-portal-session/route.js
Normal file
83
app/api/stripe-create-portal-session/route.js
Normal file
@ -0,0 +1,83 @@
|
||||
import { NextResponse } from "next/server";
|
||||
import Stripe from "stripe";
|
||||
import { createClient } from "@supabase/supabase-js";
|
||||
|
||||
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
|
||||
const supabase = createClient(process.env.SUPABASE_SERVICE_ROLE_KEY);
|
||||
|
||||
export async function POST(request) {
|
||||
try {
|
||||
const { clientId, customerId } = await request.json();
|
||||
|
||||
const { data: userData, error: userError } = await supabase
|
||||
.from("subscription_data")
|
||||
.select("*")
|
||||
.eq("customer_id", customerId)
|
||||
.maybeSingle();
|
||||
|
||||
if (userError || !userData) {
|
||||
return NextResponse.json(
|
||||
{ error: "subscription_data not found" },
|
||||
{ status: 404 }
|
||||
);
|
||||
}
|
||||
|
||||
const { subscription_cost } = userData;
|
||||
|
||||
// Create a new product and price
|
||||
const product = await stripe.products.create({
|
||||
name: "RankRunners Client Subscription",
|
||||
});
|
||||
|
||||
const price = await stripe.prices.create({
|
||||
product: product.id,
|
||||
unit_amount: subscription_cost * 100,
|
||||
currency: "usd",
|
||||
recurring: { interval: "month" },
|
||||
});
|
||||
|
||||
// Create a Checkout session
|
||||
const session = await stripe.checkout.sessions.create({
|
||||
customer: customerId,
|
||||
payment_method_types: ["card"],
|
||||
line_items: [
|
||||
{
|
||||
price: price.id,
|
||||
quantity: 1,
|
||||
},
|
||||
],
|
||||
mode: "subscription",
|
||||
success_url: `${process.env.NEXT_PUBLIC_URL}/client-area?session_id={CHECKOUT_SESSION_ID}`,
|
||||
cancel_url: `${process.env.NEXT_PUBLIC_URL}/client-area`,
|
||||
});
|
||||
|
||||
if (!session) {
|
||||
return NextResponse.json(
|
||||
{ error: "Failed to create checkout session" },
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
|
||||
// Save the session ID to Supabase
|
||||
const { error: updateError } = await supabase
|
||||
.from("subscription_data")
|
||||
.update({ stripe_session_id: session.id })
|
||||
.eq("customer_id", customerId);
|
||||
|
||||
if (updateError) {
|
||||
console.error("Error updating stripe_session_id:", updateError);
|
||||
return NextResponse.json(
|
||||
{
|
||||
error:
|
||||
"Failed to update subscription data when creating checkout session",
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
|
||||
return NextResponse.json({ url: session.url });
|
||||
} catch (error) {
|
||||
console.error("Error creating checkout session:", error);
|
||||
return NextResponse.json({ error: error.message }, { status: 500 });
|
||||
}
|
||||
}
|
22
app/api/stripe-create/route.js
Normal file
22
app/api/stripe-create/route.js
Normal file
@ -0,0 +1,22 @@
|
||||
import { NextResponse } from "next/server";
|
||||
import Stripe from "stripe";
|
||||
|
||||
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
|
||||
|
||||
export async function POST(request) {
|
||||
try {
|
||||
const { email } = await request.json();
|
||||
|
||||
if (!email) {
|
||||
return NextResponse.json({ error: "Email is required" }, { status: 400 });
|
||||
}
|
||||
|
||||
// Create Stripe customer
|
||||
const customer = await stripe.customers.create({ email });
|
||||
|
||||
return NextResponse.json({ stripe_customer_id: customer.id });
|
||||
} catch (error) {
|
||||
console.error("Error creating Stripe customer:", error);
|
||||
return NextResponse.json({ error: "Failed to create Stripe customer" }, { status: 500 });
|
||||
}
|
||||
}
|
42
app/api/verifyreport/route.js
Normal file
42
app/api/verifyreport/route.js
Normal file
@ -0,0 +1,42 @@
|
||||
import { NextResponse } from "next/server";
|
||||
import fetch from "node-fetch";
|
||||
|
||||
const sleep = () => new Promise((resolve) => setTimeout(resolve, 350));
|
||||
|
||||
export async function POST(request) {
|
||||
const body = await request.json();
|
||||
const { domain, email, captcha } = body;
|
||||
|
||||
const debugInfo = {
|
||||
receivedData: { domain, email, captchaLength: captcha?.length },
|
||||
secretKeyPrefix: process.env.RECAPTCHA_SECRET_KEY?.substring(0, 5) + "...",
|
||||
};
|
||||
|
||||
if (!domain || !email || !captcha) {
|
||||
return NextResponse.json({ message: "All fields are required", debug: debugInfo }, { status: 422 });
|
||||
}
|
||||
|
||||
try {
|
||||
const verifyUrl = `https://www.google.com/recaptcha/api/siteverify?secret=${process.env.RECAPTCHA_SECRET_KEY}&response=${captcha}`;
|
||||
debugInfo.verifyUrl = verifyUrl;
|
||||
|
||||
const response = await fetch(verifyUrl, {
|
||||
method: "POST",
|
||||
});
|
||||
|
||||
const captchaValidation = await response.json();
|
||||
debugInfo.captchaValidation = captchaValidation;
|
||||
|
||||
if (captchaValidation.success) {
|
||||
await sleep();
|
||||
return NextResponse.json({ message: "OK", debug: debugInfo }, { status: 200 });
|
||||
}
|
||||
return NextResponse.json({ message: "Captcha validation failed", debug: debugInfo }, { status: 422 });
|
||||
} catch (error) {
|
||||
console.error("Error submitting form:", error);
|
||||
return NextResponse.json(
|
||||
{ message: "Something went wrong", error: error.message, debug: debugInfo },
|
||||
{ status: 422 }
|
||||
);
|
||||
}
|
||||
}
|
58
app/api/webhook/route.js
Normal file
58
app/api/webhook/route.js
Normal file
@ -0,0 +1,58 @@
|
||||
import { NextResponse } from "next/server";
|
||||
import Stripe from "stripe";
|
||||
// import { createClient } from "@supabase/supabase-js";
|
||||
|
||||
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
|
||||
// const supabase = createClient(process.env.SUPABASE_SERVICE_ROLE_KEY);
|
||||
|
||||
export async function POST(request) {
|
||||
const body = await request.text();
|
||||
const sig = request.headers.get("stripe-signature");
|
||||
|
||||
let event;
|
||||
|
||||
try {
|
||||
event = stripe.webhooks.constructEvent(
|
||||
body,
|
||||
sig,
|
||||
process.env.STRIPE_WEBHOOK_SECRET
|
||||
);
|
||||
} catch (err) {
|
||||
return NextResponse.json(
|
||||
{ error: `Webhook Error: ${err.message}` },
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
|
||||
// Handle the event
|
||||
switch (event.type) {
|
||||
case "customer.subscription.updated":
|
||||
case "customer.subscription.deleted":
|
||||
const subscription = event.data.object;
|
||||
await handleSubscriptionChange(subscription);
|
||||
break;
|
||||
default:
|
||||
console.log(`Unhandled event type ${event.type}`);
|
||||
}
|
||||
|
||||
return NextResponse.json({ received: true });
|
||||
}
|
||||
|
||||
// async function handleSubscriptionChange(subscription) {
|
||||
// const { customer, id, status, current_period_end } = subscription;
|
||||
|
||||
// Update the user's subscription data
|
||||
// const { error } = await supabase
|
||||
// .from("subscription_data")
|
||||
// .update({
|
||||
// subscription_id: id,
|
||||
// status,
|
||||
// current_period_end: new Date(current_period_end * 1000).toISOString(),
|
||||
// active_subscription: status === "active",
|
||||
// })
|
||||
// .eq("customer_id", customer);
|
||||
|
||||
// if (error) {
|
||||
// console.error("Error updating subscription data:", error);
|
||||
// }
|
||||
// }
|
@ -0,0 +1,333 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Link from "next/link";
|
||||
import BlogDetails from "@/components/custom/BlogDetails";
|
||||
import BlogCta from "@/components/custom/BlogCta";
|
||||
import BlogAsideLatest from "@/components/custom/BlogAsideLatest";
|
||||
|
||||
export const metadata = {
|
||||
title: "Cracking The SEO Code: 5 Ways A High SEO Score Can Transform Your Business",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function Blogging() {
|
||||
let slug = "cracking-the-seo-code-5-ways-a-high-seo-score-can-transform-your-business";
|
||||
let title = "Cracking The SEO Code: 5 Ways A High SEO Score Can Transform Your Business";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle={title}>
|
||||
<div>
|
||||
<section className="blog__details-area">
|
||||
<div className="container">
|
||||
<div className="blog__inner-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70">
|
||||
<div className="blog__details-wrap">
|
||||
<div className="blog__details-content">
|
||||
<BlogDetails slug={slug} />
|
||||
<div className="blog-post-content">
|
||||
<p>
|
||||
Ever wondered why some websites seem to magically appear at the
|
||||
top of Google's search results? The answer lies in a little
|
||||
something called SEO – Search Engine Optimization. Think of it
|
||||
as a secret recipe that helps search engines like Google
|
||||
understand what your website is all about and how relevant it is
|
||||
to what people are searching for. In the digital age, where your
|
||||
online presence can make or break your business, understanding
|
||||
and mastering SEO is no longer optional; it's essential.
|
||||
</p>
|
||||
<img src="/assets/img/content/analytics-1925495_640.png" alt="" />
|
||||
<h2>What's the Deal with SEO Scores?</h2>
|
||||
<p>
|
||||
Your SEO score is like a report card for your website's search
|
||||
engine friendliness. It's a number that reflects how well your
|
||||
site is optimized to attract those coveted top spots in search
|
||||
results. A higher SEO score is a strong indicator of a website
|
||||
that is well-prepared to compete in the digital arena. The
|
||||
reason why this matters a great deal is because there's a
|
||||
limited amount of space on Google's results. Only a certain
|
||||
number of links can show up on the list of results any time
|
||||
someone types in a keyword. To achieve the "first page" result
|
||||
on a popular keyword is often a massive achievement which nearly
|
||||
guarantees an increased rate of sales.
|
||||
</p>
|
||||
<img src="/assets/img/content/seo-1108457_640.jpg" alt="" />
|
||||
<h2>The SEO Engine: How It All Works</h2>
|
||||
<p>
|
||||
Search engines have these little helpers called "crawlers" that
|
||||
scan the web, gathering information about websites. This
|
||||
information gets organized in an "index," kind of like a giant
|
||||
library catalog. When someone types in a search, the search
|
||||
engine sifts through its index to find the most relevant
|
||||
websites and ranks them accordingly. This complex process is
|
||||
what determines which websites get seen and which ones get lost
|
||||
in the digital shuffle.
|
||||
</p>
|
||||
<p>
|
||||
Keywords are the magic words that connect your website to what
|
||||
people are searching for. By strategically using the right
|
||||
keywords in your website's content, you're essentially waving a
|
||||
flag that says, "Hey Google, I've got what you're looking for!"
|
||||
However, keyword research and optimization can be a daunting
|
||||
task, requiring specialized knowledge and tools.
|
||||
</p>
|
||||
<img
|
||||
src="/assets/img/content/transformation-3753463_640.png"
|
||||
alt=""
|
||||
/>
|
||||
<h2>
|
||||
5 Ways a High SEO Score-Visibility Can Transform Your Business
|
||||
</h2>
|
||||
<p>
|
||||
A higher SEO score is like giving your website a VIP pass to the
|
||||
top of the search results. Here's how it works:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<h3>Digital Real Estate</h3>
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
A better SEO score often means your website will show up higher
|
||||
on the search engine results page (SERP). A higher SEO score
|
||||
directly translates to better rankings, propelling your website
|
||||
towards those coveted top positions. A high SEO score, optimized
|
||||
for local search terms, can propel your business to the top of
|
||||
local search results. This means when potential customers in
|
||||
your area search for products or services you offer, your
|
||||
business will be front and center. For businesses targeting
|
||||
specific geographic areas within the U.S., local SEO is the
|
||||
golden ticket.
|
||||
</p>
|
||||
<p>
|
||||
Think of it like prime real estate in a bustling city center.
|
||||
The higher your website ranks, the more visible it is to
|
||||
potential customers. Research shows that the top three organic
|
||||
search results receive over 50% of all clicks. This means that a
|
||||
higher SEO score significantly increases your website’s chances
|
||||
of being seen and clicked on by users actively searching for
|
||||
products or services like yours.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<h3>Getting More Than Just Clicks</h3>
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
When your website ranks higher, more people will stumble upon it
|
||||
naturally through their searches. This is called organic
|
||||
traffic, and it's the holy grail of website visibility. A high
|
||||
SEO score doesn’t just bring more traffic to your website; it
|
||||
attracts the right kind of traffic. By targeting relevant
|
||||
keywords and optimizing your content, you ensure that the people
|
||||
who land on our site are genuinely interested in what you offer.
|
||||
</p>
|
||||
<p>
|
||||
This targeted approach leads to higher engagement, longer dwell
|
||||
times, and increased chances of conversion. As the article “A
|
||||
New Website Can Improve Your SEO” emphasizes, a well-structured
|
||||
and optimized website is key to providing a positive user
|
||||
experience, which is a crucial factor in SEO rankings.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<h3>Top Of The Line ROI</h3>
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Compared to traditional advertising methods, SEO offers a higher
|
||||
return on investment (ROI). While paid advertising can be
|
||||
effective, it often requires a continuous financial commitment.
|
||||
In contrast, a well/optimized website with a High SEO Score can
|
||||
generate organic traffic consistently over time, providing
|
||||
long-term value. By focusing on SEO, you can reduce your
|
||||
reliance on paid advertising and allocate your marketing budget
|
||||
more efficiently.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<h3>Elevate Your Brand's Authority</h3>
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Websites that consistently rank high are seen as more
|
||||
authoritative and trustworthy by both search engines and users.
|
||||
A high SEO score enhances your site's authority, making it a
|
||||
reliable source of information. In the digital world, trust is a
|
||||
valuable commodity. A high SEO score signals to both search
|
||||
engines and users that your website is a credible and
|
||||
authoritative source of information. When your website
|
||||
consistently appears at the top of search results, it reinforces
|
||||
this perception, establishing you as an industry leader.
|
||||
</p>
|
||||
<p>
|
||||
Building trust through SEO can have a ripple effect. It can lead
|
||||
to more backlinks from other reputable websites, further
|
||||
boosting your SEO score and expanding your reach. As we
|
||||
highlighted at RankRunners, a strong online reputation can also
|
||||
translate to increased brand awareness and customer loyalty.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<h3>Innovation Breeds Success</h3>
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
A high SEO score isn't just a flash in the pan. It's a long-term
|
||||
investment that can lead to sustained traffic and visibility. By
|
||||
continually improving your SEO, you ensure your site remains
|
||||
relevant and competitive in the ever-evolving digital landscape.
|
||||
The digital landscape is constantly evolving, with Search Engine
|
||||
algorithms and user behavior changing over time. A high SEO
|
||||
score is not a one-time achievement; it requires ongoing
|
||||
maintenance and adaptation.
|
||||
</p>
|
||||
<p>
|
||||
Staying ahead of the curve is crucial in the digital age, Search
|
||||
engine algorithms are constantly being refined, and user
|
||||
expectations are evolving. A high SEO score today doesn’t
|
||||
guarantee a high score tomorrow. To maintain your competitive
|
||||
edge, you need to stay informed about the latest SEO trends and
|
||||
best practices.
|
||||
</p>
|
||||
<p>
|
||||
This includes regularly updating your website content to ensure
|
||||
it remains relevant and engaging. It also means addressing
|
||||
technical issues like broken links, slow page speed, and mobile
|
||||
responsiveness, all of which can negatively impact your SEO
|
||||
score.
|
||||
</p>
|
||||
<p>
|
||||
Moreover, the rise of new technologies like Google Search
|
||||
Generative Experience (SGE) is set to reshape the search
|
||||
landscape. SGE leverages AI to provide more conversational and
|
||||
informative search results. Adapting your SEO strategy to align
|
||||
with these changes will be crucial for maintaining visibility
|
||||
and relevance in the future.
|
||||
</p>
|
||||
<img src="/assets/img/content/checklist-1622517_640.png" alt="" />
|
||||
<h2>Boost Your SEO Score: Your Action Plan</h2>
|
||||
<p>
|
||||
Ready to climb the search engine ladder? Here's your SEO
|
||||
toolkit:
|
||||
</p>
|
||||
<ol>
|
||||
<li>
|
||||
Keyword Research: Find out what your target audience is
|
||||
searching for and sprinkle those keywords throughout your
|
||||
website's content.
|
||||
</li>
|
||||
<li>
|
||||
On-Page Optimization: Fine-tune your website's structure,
|
||||
meta tags, headings, and content to make it as
|
||||
search-engine-friendly as possible.
|
||||
</li>
|
||||
<li>
|
||||
Technical Tune-Up: Ensure your website loads quickly, is
|
||||
mobile-friendly, and doesn't have any broken links. A slow
|
||||
or outdated website can be a major roadblock to SEO success,
|
||||
as highlighted in "A New Website Can Improve Your SEO" (Fuel
|
||||
Oil News, September 2022).
|
||||
</li>
|
||||
<li>
|
||||
Backlink Building: Get other reputable websites to link to
|
||||
yours. This is like getting a vote of confidence from your
|
||||
peers.
|
||||
</li>
|
||||
<li>
|
||||
Content is King: Create high-quality, informative content
|
||||
that people want to read and share. Engaging content
|
||||
attracts visitors and encourages them to stay on your site
|
||||
longer, signaling to search engines that your website is
|
||||
valuable.
|
||||
</li>
|
||||
<li>
|
||||
Analytics: Keep an eye on your website's traffic and search
|
||||
rankings to see what's working and what needs tweaking.
|
||||
Regular monitoring and analysis are crucial for staying
|
||||
ahead of the curve and adapting to the ever-changing SEO
|
||||
landscape.
|
||||
</li>
|
||||
</ol>
|
||||
<img
|
||||
src="/assets/img/content/ai-generated-8600694_640.png"
|
||||
alt=""
|
||||
/>
|
||||
<h2>The SEO Journey: It's a Marathon, Not a Sprint</h2>
|
||||
<p>
|
||||
Remember, SEO is an ongoing process. It's not about quick fixes
|
||||
or tricks. It's about consistently providing value to your
|
||||
audience and making your website the best. Investing time and
|
||||
effort into improving your SEO score sets your website up for
|
||||
long-term success in the vast digital landscape.
|
||||
</p>
|
||||
<img
|
||||
src="/assets/img/content/ai-generated-8614982_640.jpg"
|
||||
alt=""
|
||||
/>
|
||||
<h2>Overwhelmed? RankRunners Can Help!</h2>
|
||||
<p>
|
||||
Navigating the complexities of SEO can be a challenge, but you
|
||||
don't have to go it alone. At RankRunners, we specialize in
|
||||
helping businesses like yours unlock their website's full
|
||||
potential. Our team of SEO experts can tailor a strategy to your
|
||||
specific needs, ensuring your website and brand gets the
|
||||
visibility it deserves.
|
||||
</p>
|
||||
<p>
|
||||
Don't let your website get lost in the digital noise.
|
||||
<Link href="/schedule"> Book a Free Consultation</Link> with
|
||||
RankRunners today.
|
||||
</p>
|
||||
</div>
|
||||
<BlogCta slug={slug} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="blog__sidebar">
|
||||
<BlogAsideLatest />
|
||||
<div className="sidebar__widget">
|
||||
<h4 className="sidebar__widget-title">Tags</h4>
|
||||
<div className="sidebar__tag-list">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="#">SEO</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Business</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Development</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Marketing</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">CRM</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Management</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Consultancy</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Ad Campaigns</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{/* blog-details-area-end */}
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
@ -0,0 +1,333 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Link from "next/link";
|
||||
import BlogDetails from "@/components/custom/BlogDetails";
|
||||
import BlogCta from "@/components/custom/BlogCta";
|
||||
import BlogAsideLatest from "@/components/custom/BlogAsideLatest";
|
||||
|
||||
export const metadata = {
|
||||
title: "Cracking The SEO Code: 5 Ways A High SEO Score Can Transform Your Business",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function Blogging() {
|
||||
let slug = "making-every-dollar-count-effective-google-ads-strategies-for-budgets-under-$1000";
|
||||
let title = "Making Every Dollar Count: Effective Google Ads Strategies for Budgets Under $1000";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle={title}>
|
||||
<div>
|
||||
<section className="blog__details-area">
|
||||
<div className="container">
|
||||
<div className="blog__inner-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70">
|
||||
<div className="blog__details-wrap">
|
||||
<div className="blog__details-content">
|
||||
<BlogDetails slug={slug} />
|
||||
<div className="blog-post-content">
|
||||
<p>
|
||||
Running an efficient and effective Google Ads campaign on a
|
||||
smaller budget might seem like a challenge, but with the right
|
||||
approach, you can achieve great results without breaking the
|
||||
bank. At Rankrunners, we know how to make every dollar count
|
||||
when it comes to digital advertising. If you’re working with
|
||||
less than $1000, don’t worry—we’ve got some practical tips to
|
||||
help you make the most of your ad spend. Let’s dive into some
|
||||
effective strategies, including using Exact Match keywords,
|
||||
choosing very specific terms, and focusing on high-income areas.
|
||||
</p>
|
||||
<img src="/assets/img/content/image6.png" alt="" />
|
||||
<h2>Getting the Most from a Limited Budget</h2>
|
||||
<p>
|
||||
When your budget is under $1000, it’s all about making
|
||||
highly-targeted choices to get the best return on your
|
||||
investment. You need to be strategic with where you spend your
|
||||
money, which means focusing on the most efficient methods to
|
||||
reach your audience. Here’s how you can stretch those dollars
|
||||
and maximize your Google Ads campaign.
|
||||
</p>
|
||||
<img src="/assets/img/content/image2.png" alt="" />
|
||||
<h2>1. Go for Exact Match Keywords</h2>
|
||||
<p>
|
||||
One of the best ways to ensure your ad spend is working hard for
|
||||
you is by using Exact Match keywords. Unlike Broad Match or
|
||||
Phrase Match, Exact Match keywords show your ad only when
|
||||
someone searches for the exact phrase or term you’ve chosen.
|
||||
This precision can make a big difference.
|
||||
</p>
|
||||
<h4>Why Exact Match Keywords Are Great:</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<p>
|
||||
<strong>Relevance:</strong> Your ad will only display
|
||||
for searches that exactly match your keywords. This
|
||||
means people seeing your ad are already looking for
|
||||
exactly what you offer, making them more likely to
|
||||
click.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<strong>Cost Efficiency:</strong> By narrowing your
|
||||
focus, you can avoid wasting money on irrelevant clicks.
|
||||
This will make your cost-per-click (CPC) to be lower and
|
||||
will make your budget stretch further.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<strong>Better Quality Score:</strong> Google likes it
|
||||
when your ad matches the search intent closely. This can
|
||||
improve your Quality Score, which often leads to better
|
||||
ad placements and lower CPCs.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h4>How to Use Exact Match Keywords:</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<p>
|
||||
Research or personally select the most relevant Exact
|
||||
Match keywords for your business.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
Use tools like Google Keyword Planner to find the best
|
||||
keywords with manageable competition and decent search
|
||||
volume.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
Monitor your keyword performance regularly and tweak
|
||||
your bids or keyword list as needed.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<img src="/assets/img/content/image4.png" alt="" />
|
||||
<h2>2. Choose Highly Specific Keywords</h2>
|
||||
<p>
|
||||
To get the most out of your limited budget, consider using
|
||||
highly specific or long-tail keywords. These are longer, more
|
||||
detailed phrases that often have lower competition and cost less
|
||||
per click.
|
||||
</p>
|
||||
<h4>Benefits of Specific Keywords:</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<p>
|
||||
<strong>Lower Competition:</strong> Long-tail keywords
|
||||
generally face less competition, which can reduce your
|
||||
CPC and allow you to get more clicks for your budget.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<strong>Higher Conversion Rates:</strong> People using
|
||||
specific keywords are often further along in the buying
|
||||
process, so they’re more likely to convert. This means
|
||||
better results for your ad spend.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<strong>More Relevant Ads:</strong> Ads tailored to very
|
||||
specific terms are more likely to match the user’s
|
||||
intent, leading to higher engagement.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h4>Tips for Using Specific Keywords:</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<p>
|
||||
Make a list of long-tail keywords that fit your business
|
||||
and target audience.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
Use Google Keyword Planner or similar tools to find
|
||||
variations of these keywords.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
Regularly review your keywords by using Google’s free
|
||||
A/B testing tools, and adjust your keywords based on how
|
||||
they’re performing according to the data.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<img src="/assets/img/content/image1.png" alt="" />
|
||||
<h2>3. Target High-Income Zip Codes</h2>
|
||||
<p>
|
||||
Another effective strategy is to target high-income zip codes.
|
||||
By focusing your ads on affluent areas, you’re more likely to
|
||||
reach people who have the financial means to buy your products
|
||||
or services.
|
||||
</p>
|
||||
<h4>Why Targeting High-Income Zip Codes Works:</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<p>
|
||||
<strong>Better Chances of Conversion: </strong>
|
||||
High-income areas often mean higher purchasing power,
|
||||
which can translate into higher conversion rates.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<strong>More Efficient Spending:</strong> By targeting
|
||||
specific areas, you avoid spending money on less likely
|
||||
prospects, making your budget go further.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<strong>Tailored Ads:</strong> Ads targeted at
|
||||
high-income demographics can be customized to appeal
|
||||
more directly to their interests and needs.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h4>How to Target High-Income Zip Codes:</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<p>
|
||||
Look at your customer data to identify which zip codes
|
||||
have higher income levels.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
Use Google Ads’ location targeting features to focus on
|
||||
these areas.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
Track how well your ads perform in these regions and
|
||||
adjust your strategy based on the results.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<img src="/assets/img/content/image5.png" alt="" />
|
||||
<h2>4. Additional Budget-Friendly Strategies</h2>
|
||||
<p>
|
||||
Besides the main strategies above, there are a few more tips
|
||||
that can help you get the most out of your budget:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>
|
||||
<strong>Ad Scheduling: </strong>
|
||||
Run your ads during the times of the day that your
|
||||
target audience is most likely to be active. This way,
|
||||
your budget is spent when it’s most likely to lead to
|
||||
clicks and conversions.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<strong>Ad Extensions:</strong> Use ad extensions to
|
||||
provide extra information and make your ads stand out
|
||||
more without additional cost. Features like site links
|
||||
and callouts can enhance your ad’s visibility and
|
||||
performance.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<strong>A/B Testing:</strong> Experiment with different
|
||||
ad copies, images, and calls to action. Even small
|
||||
changes can make a big difference in how well your ads
|
||||
perform.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<strong>Negative Keywords:</strong> Set up a list of
|
||||
negative keywords to prevent your ads from showing up
|
||||
for irrelevant searches. This helps you avoid spending
|
||||
on clicks that won’t convert.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<img src="/assets/img/content/image3.png" alt="" />
|
||||
<h2>Wrapping Up</h2>
|
||||
<p>
|
||||
Running a successful Google Ads campaign with a budget of under
|
||||
$1000 is definitely achievable with the right approach. By
|
||||
focusing on Exact Match keywords, choosing highly specific
|
||||
terms, targeting high-income zip codes, and using additional
|
||||
budget-friendly strategies, you can make every dollar count and
|
||||
see impressive results.
|
||||
</p>
|
||||
<p>
|
||||
At Rankrunners, we’re here to help you navigate the world of
|
||||
Google Ads and optimize your campaigns for the best possible
|
||||
outcomes. Whether you’re new to Google Ads or looking to
|
||||
fine-tune your existing strategy, we’ve got the expertise to
|
||||
help you make the most of your budget. Reach out to us today to
|
||||
find out how we can assist you in achieving your advertising
|
||||
goals.
|
||||
</p>
|
||||
<p>
|
||||
With a little planning and a strategic approach, even a modest
|
||||
budget can lead to significant success. Happy advertising!
|
||||
</p>
|
||||
</div>
|
||||
<BlogCta slug={slug} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="blog__sidebar">
|
||||
<BlogAsideLatest />
|
||||
<div className="sidebar__widget">
|
||||
<h4 className="sidebar__widget-title">Tags</h4>
|
||||
<div className="sidebar__tag-list">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="#">SEO</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Business</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Development</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Marketing</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">CRM</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Management</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Consultancy</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Ad Campaigns</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{/* blog-details-area-end */}
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
@ -0,0 +1,521 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Link from "next/link";
|
||||
import BlogDetails from "@/components/custom/BlogDetails";
|
||||
import BlogCta from "@/components/custom/BlogCta";
|
||||
import BlogAsideLatest from "@/components/custom/BlogAsideLatest";
|
||||
|
||||
export const metadata = {
|
||||
title: "Organic vs Paid Marketing: What Are The Differences?",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function Blogging() {
|
||||
let slug = "organic-vs-paid-marketing-what-are-the-differences";
|
||||
let title = "Organic vs Paid Marketing: What Are The Differences?";
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle={title}>
|
||||
<div>
|
||||
<section className="blog__details-area">
|
||||
<div className="container">
|
||||
<div className="blog__inner-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70">
|
||||
<div className="blog__details-wrap">
|
||||
<div className="blog__details-content">
|
||||
<BlogDetails slug={slug} />
|
||||
<div className="blog-post-content">
|
||||
<p>
|
||||
If you want to improve your organization's online presence, you
|
||||
can utilize two ways of online marketing. The options are called
|
||||
“Organic” and “Paid” marketing, and both of them can cause your
|
||||
online presence and or visibility to increase significantly.
|
||||
</p>
|
||||
<p>
|
||||
As the names imply, “Organic” marketing uses non-paid methods of
|
||||
reaching your (potential) clientele and the other option “Paid”
|
||||
marketing uses paid advertising to grow your online presence.
|
||||
</p>
|
||||
<p>
|
||||
Now I hear you say, “Paid advertising must be better right?
|
||||
After all, nothing is free.”
|
||||
</p>
|
||||
<p>
|
||||
Yes and no. Paid advertising is better to quickly get the word
|
||||
out about your business, but that comes at a significant cost.
|
||||
</p>
|
||||
<p>
|
||||
Alternatively, organic advertising is centered around longevity
|
||||
and consistency but can grow to be just as effective as paid
|
||||
advertising.
|
||||
</p>
|
||||
<p>
|
||||
But why choose one? When you can combine both methods to create
|
||||
an effective and tailor-made marketing campaign for your
|
||||
organization.
|
||||
</p>
|
||||
<h2>Organic Marketing</h2>
|
||||
<p>Let’s talk about Organic Marketing first.</p>
|
||||
<p>
|
||||
Organic marketing is made up of creating and releasing content
|
||||
on popular channels like blog posts or video content concerning
|
||||
your niche to name just a few.
|
||||
</p>
|
||||
<p>
|
||||
It's important to make your content valuable to have the best
|
||||
result.
|
||||
</p>
|
||||
<p>
|
||||
The optimal type of content to make heavily depends on the user
|
||||
base and the type of channel you post it on.
|
||||
</p>
|
||||
<p>The most commonly used forms of organic marketing are</p>
|
||||
<ul>
|
||||
<li>
|
||||
Social media marketing: Posting short and concise posts on
|
||||
the likes of Tiktok, Instagram, X (Twitter) and various
|
||||
other outlets
|
||||
</li>
|
||||
<li>
|
||||
Video marketing: Longer form content posted on the likes of
|
||||
YouTube has a large reach as they are usually found on both
|
||||
search engines and the websites themselves.
|
||||
</li>
|
||||
<li>
|
||||
SEO (Search Engine Optimization): Creating blog posts,
|
||||
making backlinks, and other ways of making content that’s
|
||||
discoverable by the likes of Google, Yahoo, and other search
|
||||
engines
|
||||
</li>
|
||||
</ul>
|
||||
<h3>
|
||||
How to use Keywords and “tags” to help supercharge your organic
|
||||
online presence!
|
||||
</h3>
|
||||
<p>
|
||||
One of the most important facets of a marketing campaign is
|
||||
finding what keywords your target audience is the most likely to
|
||||
search for or preferably what they are already searching for.
|
||||
</p>
|
||||
<h4>
|
||||
To help you understand what we’re talking about I will give you
|
||||
an example.
|
||||
</h4>
|
||||
<p>
|
||||
A doctor that wants to garner more clients in their local area,
|
||||
would usually use keywords about their city and their medical
|
||||
field of expertise.
|
||||
</p>
|
||||
<p>
|
||||
Say a dentist in Atlanta GA would most likely use keywords like
|
||||
</p>
|
||||
<p>
|
||||
“Where to book a dental appointment in Atlanta GA” or “What
|
||||
dental products to use for whiter teeth”
|
||||
</p>
|
||||
<img
|
||||
src="/assets/img/content/screenshot-2024-07-10-at-18.05.55.png"
|
||||
alt=""
|
||||
/>
|
||||
<p>
|
||||
Finding targeted keywords is a vital step in the process of
|
||||
creating a marketing campaign.
|
||||
</p>
|
||||
<p>
|
||||
If you aren’t aware of the correct keywords yet you can
|
||||
potentially waste valuable time that could be better spent
|
||||
working to research the right way of advertising your company.
|
||||
</p>
|
||||
<h2>Paid Marketing</h2>
|
||||
<p>
|
||||
Second on the list is Paid marketing. Paid marketing as the name
|
||||
implies is using so-called paid marketing channels to spread the
|
||||
word to customers on the internet. Usually, this comes in the
|
||||
form of having sponsored advertisements on various channels to
|
||||
grow sales instead of growing your online presence.
|
||||
</p>
|
||||
<p>
|
||||
Organic marketing is based on growing awareness and getting more
|
||||
people to see your company.
|
||||
</p>
|
||||
<p>
|
||||
Paid marketing mostly revolves around selling specific products
|
||||
or services. Paid marketing costs money but it has its place and
|
||||
its merit.
|
||||
</p>
|
||||
<p>
|
||||
Usually paid marketing has instant effects as it gets ordered
|
||||
and then instantly set in motion.
|
||||
</p>
|
||||
<p>
|
||||
Common paid marketing methods are sponsored advertising and paid
|
||||
advertising.
|
||||
</p>
|
||||
<p>We will go into more detail about both of those methods.</p>
|
||||
<h4>Sponsored advertising.</h4>
|
||||
<ul>
|
||||
<li>
|
||||
Sponsored advertising mostly involves paying pre-existing
|
||||
brands or online personalities to utilize their audience and
|
||||
put your organization in the eyes of potential customers
|
||||
usually with a personalized part of their content that the
|
||||
audience knows and loves covering your product or service.
|
||||
</li>
|
||||
<li>
|
||||
A huge advantage that sponsored advertising has compared to
|
||||
paid advertising is that it usually remains on the platform
|
||||
far longer than your initial marketing campaign resulting in
|
||||
a trickle of people coming to your brand as long as it keeps
|
||||
getting traffic.
|
||||
</li>
|
||||
<li>
|
||||
A negative compared to paid advertising with a PPC (Pay per
|
||||
click) model is that sponsored advertising does not
|
||||
necessarily bring people to your website while a PPC model
|
||||
always generates clicks.
|
||||
</li>
|
||||
</ul>
|
||||
<strong>Example of a sponsored ad:</strong>
|
||||
<img
|
||||
src="/assets/img/content/screenshot-2024-07-10-at-18.10.17.png"
|
||||
alt=""
|
||||
/>
|
||||
<h4>Paid advertising.</h4>
|
||||
<ul>
|
||||
<li>
|
||||
Paid advertising mostly involves having paid ads appear for
|
||||
a specific audience on popular marketing channels with a lot
|
||||
of traffic like LinkedIn, YouTube, Facebook, and Google.
|
||||
After you’ve set up and paid for a paid advertising campaign
|
||||
the advertisements almost immediately appear in front of the
|
||||
audience you specified,
|
||||
</li>
|
||||
<li>
|
||||
Usually, paid ads are identified with a text saying
|
||||
“Sponsored” or “Ad” Organically created advertisements do
|
||||
not have this identifier.
|
||||
</li>
|
||||
<li>
|
||||
Various paid ad models exist but one of the most common ones
|
||||
is the previously mentioned PPC (Pay-per-click) model. PPC
|
||||
does what it says on the box, every time someone clicks you
|
||||
pay.
|
||||
</li>
|
||||
<li>
|
||||
These ads are usually shown on search engines like Google,
|
||||
social media outlets like Facebook or X (Twitter), or online
|
||||
marketplaces like Walmart or Craigslist.
|
||||
</li>
|
||||
</ul>
|
||||
<strong>
|
||||
Example of paid Google ads appearing at the top of the search
|
||||
results
|
||||
</strong>
|
||||
<img
|
||||
src="/assets/img/content/screenshot-2024-07-10-at-18.22.55.png"
|
||||
alt=""
|
||||
/>
|
||||
<p>
|
||||
One of the key ways to have success with ads using the PPC model
|
||||
on SERPs (Search engine results pages) is again finding and
|
||||
using the correct keywords.
|
||||
</p>
|
||||
<p>
|
||||
One thing to realize and include in your budget is the CPC (Cost
|
||||
per click) for the keywords you choose to use.
|
||||
</p>
|
||||
<p>
|
||||
Paid and organic marketing can use the same channels as one
|
||||
another
|
||||
</p>
|
||||
<p>
|
||||
Buying ads and creating posts can be done on most prevalent
|
||||
outlets but they are not the same.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
Organic marketing mostly consists of making content
|
||||
regarding your brand and carefully curating it so that your
|
||||
potential customers find it naturally by just browsing
|
||||
through the internet so that you don’t have to spend
|
||||
anything on having people encounter and possibly engage with
|
||||
your brand.
|
||||
</li>
|
||||
<li>
|
||||
Paid marketing consists of paying for campaigns to actively
|
||||
let customers see your ads. It usually brings faster results
|
||||
compared to organic content as it can take a long time to
|
||||
accumulate the necessary ranking on the search engines to
|
||||
generate worthwhile customers.
|
||||
</li>
|
||||
<li>
|
||||
Paid marketing will deliver near-immediate results depending
|
||||
on the money spent. Paid ads are however not a “buy your way
|
||||
to fame” method as finding the keywords that generate the
|
||||
best results could involve several tries to get the right
|
||||
one.
|
||||
</li>
|
||||
<li>
|
||||
Search engines will prioritize organic content that is
|
||||
relevant to the person and it will prioritize if the content
|
||||
comes from high domain authority websites with a lot of
|
||||
users.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
To put it in layman's terms Google is less likely to push a blog
|
||||
post from a freshly created website compared to a blog post on a
|
||||
popular website.
|
||||
</p>
|
||||
<p>
|
||||
While organic marketing is classified as a “non-paid marketing’
|
||||
method, do keep in mind that you most likely will have to either
|
||||
hire a team or a person to create the organic content used in
|
||||
this marketing method.
|
||||
</p>
|
||||
<p>
|
||||
They are however mostly costs that aren’t repeated and akin to
|
||||
sponsored content this strategy results in a long-term trickle
|
||||
of customers viewing your content with a low investment compared
|
||||
to paid marketing. Organically created content has the potential
|
||||
to give results that keep giving value long after a paid
|
||||
campaign is typically funded.
|
||||
</p>
|
||||
<h5>
|
||||
As long as the content exists it has the chance to give value.
|
||||
</h5>
|
||||
<p>
|
||||
Organic content does need to be updated frequently to give the
|
||||
maximum yield as Search engine ranking can differ regularly.
|
||||
Algorithms also always evolve with the updates they are given.
|
||||
This could only slightly affect results but it can also
|
||||
completely alter the original results.
|
||||
</p>
|
||||
<p>
|
||||
Keeping on top of your organic results is always necessary to
|
||||
keep up with changes.
|
||||
</p>
|
||||
<strong>Example of a paid advertisement:</strong>
|
||||
<img
|
||||
src="/assets/img/content/screenshot-2024-07-10-at-19.01.05.png"
|
||||
alt=""
|
||||
/>
|
||||
<p>Let’s talk about the different marketing channels.</p>
|
||||
<p>We will divide them into two categories: Organic and Paid.</p>
|
||||
<ul>
|
||||
<li>Organic</li>
|
||||
<ul>
|
||||
<li>Search Engines</li>
|
||||
<li>Social Media Outlets</li>
|
||||
<li>Email newsletters</li>
|
||||
</ul>
|
||||
<li>Paid</li>
|
||||
<ul>
|
||||
<li>Search Engines</li>
|
||||
<li>Social Media Outlets</li>
|
||||
<li>Spotify ads</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<h3>Organic Marketing</h3>
|
||||
<h4>Organic marketing on Search Engines</h4>
|
||||
<p>
|
||||
Search engines like Google, Yahoo, Yandex, Bing, and DuckDuckGo
|
||||
have insanely huge user bases which makes them a prime way to
|
||||
spread organic content. One of the most common ways to do this
|
||||
is by creating tailor-made content on your website that is
|
||||
well-optimized for search engines with specific keywords.
|
||||
</p>
|
||||
<p>
|
||||
In the case of Google, it’s important to consider having
|
||||
accompanying videos on YouTube as it closely links to Google
|
||||
results.
|
||||
</p>
|
||||
<p>
|
||||
It comes down to making sure your content is useful and relevant
|
||||
for your target audience when they use a search engine.
|
||||
</p>
|
||||
<h4>Organic Marketing on Social Media Outlets</h4>
|
||||
<p>
|
||||
Advertising on the biggest social media outlets is most
|
||||
definitely interesting but depending on your brand there are
|
||||
several considerations as to which social media outlet is best
|
||||
suited for you.
|
||||
</p>
|
||||
<p>Let’s first list some of the biggest social media platforms.</p>
|
||||
<ul>
|
||||
<li>Facebook</li>
|
||||
<li>Instagram</li>
|
||||
<li>Linkedin</li>
|
||||
<li>X (Twitter)</li>
|
||||
<li>Tiktok</li>
|
||||
<li>Snapchat</li>
|
||||
</ul>
|
||||
<h4>X (Twitter) and Linkedin</h4>
|
||||
<ul>
|
||||
<li>
|
||||
X (Twitter) and Linkedin usually have a greater presence of
|
||||
professional and business users as compared to TikTok,
|
||||
Instagram, or Snapchat.
|
||||
</li>
|
||||
</ul>
|
||||
<h4>TikTok, Instagram, and Snapchat</h4>
|
||||
<ul>
|
||||
<li>
|
||||
TikTok, Instagram, and Snapchat however have a far greater
|
||||
appeal amongst younger people.
|
||||
</li>
|
||||
<li>
|
||||
Depending on your sector you should try to optimize which
|
||||
social media outlet you put the most time and effort in.
|
||||
</li>
|
||||
<li>
|
||||
On all platforms, it is important to consistently post and
|
||||
to make sure it’s high-quality tailor-made content.
|
||||
Connecting with your audience in the comments or with events
|
||||
is a big power play in building an organic audience. And
|
||||
again it is important to always keep on top of the analytics
|
||||
on your platform of choice.
|
||||
</li>
|
||||
</ul>
|
||||
<h4>Organic marketing with Email newsletters</h4>
|
||||
<ul>
|
||||
<li>
|
||||
Once your website or brand starts to grow in awareness,
|
||||
another great way to keep people interested in your brand is
|
||||
with an opt-in email newsletter containing all the latest
|
||||
information about your company.
|
||||
</li>
|
||||
<li>
|
||||
Where the other organic methods have a certain amount of
|
||||
volatility with the reliance on algorithms and Search Engine
|
||||
Optimization, email newsletters give you full control over
|
||||
what your customers see. With a new product launch you can
|
||||
have a specific section with key insights that are not as
|
||||
easily spread via keywords and search results, the people
|
||||
subscribing to newsletters usually are more interested in
|
||||
those details compared to people just browsing the web. So
|
||||
this is a great way to interact and retain your loyal
|
||||
customers.
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Paid Marketing</h3>
|
||||
<h4>Paid marketing on Search Engines.</h4>
|
||||
<p>
|
||||
Most prevalent search engines allow paid advertising and often
|
||||
include more ways to spread your content. While organic
|
||||
advertisement mostly applies to search results, the integration
|
||||
of search engines with the likes of YouTube, Google Maps, and
|
||||
Google Shopping allows you to run various types of ad campaigns
|
||||
where you are also appearing on different Google or Yahoo
|
||||
services.
|
||||
</p>
|
||||
<strong>Example of an ad on Google Maps:</strong>
|
||||
<img
|
||||
src="/assets/img/content/screenshot-2024-07-10-at-19.10.11.png"
|
||||
alt=""
|
||||
/>
|
||||
<h4>Paid marketing on Social Media Outlets.</h4>
|
||||
<p>
|
||||
Similar to search engines, paid ads are also widely available on
|
||||
most social media outlets. For example, just like with Google,
|
||||
there are different ad campaigns on Facebook where your ad can
|
||||
appear on people’s Feeds or the Facebook Marketplace, or even
|
||||
while people are chatting on Messenger.
|
||||
</p>
|
||||
<img
|
||||
src="/assets/img/content/create-facebook-ad-new-york-usa-april-digital-screen-macro-close-up-view-144397938.webp"
|
||||
alt=""
|
||||
/>
|
||||
<h4>Paid marketing on Spotify</h4>
|
||||
<p>
|
||||
Another great way to advertise is on Spotify. There are two
|
||||
options here,
|
||||
</p>
|
||||
<p>
|
||||
You can run ads in between songs for people on the basic Spotify
|
||||
plan. You can also place a clickable banner while the ad plays.
|
||||
</p>
|
||||
<p>
|
||||
A sponsored partnership on a podcast that operates in your
|
||||
niche. This is just like sponsored partnerships on Youtube where
|
||||
it has the advantage that people actively listen on
|
||||
</p>
|
||||
<h5>
|
||||
To end things off there is no “golden bullet” for marketing but
|
||||
it is rather a combination and joint effort between the
|
||||
available methods.
|
||||
</h5>
|
||||
<p>
|
||||
If you want quick and instant results, paid advertisements are a
|
||||
great way.
|
||||
</p>
|
||||
<p>
|
||||
But to create a healthy audience organically interacting with
|
||||
your target audience will be better in the long term.
|
||||
</p>
|
||||
<blockquote>
|
||||
<h2>
|
||||
THERE IS NO "GOLDEN BULLET" FOR MARKETING BUT RATHER A JOINT
|
||||
EFFORT
|
||||
</h2>
|
||||
<p>
|
||||
<i>Rankrunners</i>
|
||||
</p>
|
||||
</blockquote>
|
||||
<p>
|
||||
Want to outrun your competition?
|
||||
<Link href="/schedule"> Book a Free Consultation</Link> with
|
||||
RankRunners today.
|
||||
</p>
|
||||
</div>
|
||||
<BlogCta slug={slug} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="blog__sidebar">
|
||||
<BlogAsideLatest />
|
||||
<div className="sidebar__widget">
|
||||
<h4 className="sidebar__widget-title">Tags</h4>
|
||||
<div className="sidebar__tag-list">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="#">SEO</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Business</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Development</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Marketing</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">CRM</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Management</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Consultancy</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Ad Campaigns</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{/* blog-details-area-end */}
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
79
app/blog/page.js
Normal file
79
app/blog/page.js
Normal file
@ -0,0 +1,79 @@
|
||||
import BlogPost from "@/components/blog/BlogPost";
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import Link from "next/link";
|
||||
import BlogAsideLatest from "@/components/custom/BlogAsideLatest";
|
||||
|
||||
export const metadata = {
|
||||
title: "Blog | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function Blog() {
|
||||
return (
|
||||
<>
|
||||
<Layout
|
||||
headerStyle={4}
|
||||
footerStyle={3}
|
||||
breadcrumbTitle="Company Blog
|
||||
"
|
||||
>
|
||||
<div>
|
||||
<section className="blog__area">
|
||||
<div className="container">
|
||||
<div className="blog__inner-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70">
|
||||
<div className="blog-post-wrap">
|
||||
<div className="row gutter-24 blog-gap-2">
|
||||
<BlogPost showItem={6} style={1} showPagination />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="blog__sidebar">
|
||||
<BlogAsideLatest />
|
||||
<div className="sidebar__widget">
|
||||
<h4 className="sidebar__widget-title">Tags</h4>
|
||||
<div className="sidebar__tag-list">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="#">SEO</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Business</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Development</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Marketing</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">CRM</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Management</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Consultancy</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Ad Campaigns</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<Callback1 />
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
399
app/blog/the-importance-of-seo-in-growing-your-business/page.js
Normal file
399
app/blog/the-importance-of-seo-in-growing-your-business/page.js
Normal file
@ -0,0 +1,399 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Link from "next/link";
|
||||
import BlogDetails from "@/components/custom/BlogDetails";
|
||||
import BlogCta from "@/components/custom/BlogCta";
|
||||
import BlogAsideLatest from "@/components/custom/BlogAsideLatest";
|
||||
|
||||
export const metadata = {
|
||||
title: "The Importance of SEO in Growing Your Business",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function Blogging() {
|
||||
let slug = "the-importance-of-seo-in-growing-your-business";
|
||||
let title = "The Importance of SEO in Growing Your Business";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle={title}>
|
||||
<div>
|
||||
<section className="blog__details-area">
|
||||
<div className="container">
|
||||
<div className="blog__inner-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70">
|
||||
<div className="blog__details-wrap">
|
||||
<div className="blog__details-content">
|
||||
<BlogDetails slug={slug} />
|
||||
|
||||
<div className="blog-post-content">
|
||||
<p>
|
||||
Digital technology is at the forefront of our modern culture,
|
||||
which has compared the internet over the recent decades to be a
|
||||
modern “Wild West”, “Silk Road”, or “New World”. For those
|
||||
looking to enterprise and profit in this emerging world, having
|
||||
a digital presence is often mandatory across the vast majority
|
||||
of industries. As with all ventures though, things can get
|
||||
complicated when it comes to standing out amongst the crowd. For
|
||||
many, reliably achieving high search engine rankings and an
|
||||
increased volume of customers can seem insurmountable when faced
|
||||
with such steep competition. Thankfully, there’s a tool that can
|
||||
help set you on the correct path to increasing your online
|
||||
presence, called Search Engine Optimization (SEO). This blog
|
||||
will further explore the various reasons why using SEO to grow
|
||||
your business is not only important but often mandatory if you
|
||||
want to reliably increase leads.
|
||||
</p>
|
||||
<img src="/assets/img/content/social-371648_640.png" alt="" />
|
||||
<h2>Seeking Web Presence to Obtain Clicks</h2>
|
||||
<p>
|
||||
The main purpose of SEO rests directly within its name. “Search
|
||||
Engine Optimization.” Search engines such as:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Google</li>
|
||||
<li>Bing</li>
|
||||
<li>Yahoo</li>
|
||||
</ul>
|
||||
<p>
|
||||
use different algorithms that help your websites rank higher on
|
||||
their results pages for certain keywords. When your website
|
||||
ranks higher on a popular search engine, this means that more
|
||||
potential paying customers or interested readers will click on
|
||||
your page. The more clicks you get, the more sales you will get.
|
||||
The amount of people that read your page and consider buying
|
||||
your product, is directly related to the amount of people that
|
||||
make the final decision to make the purchase. Here’s where SEO
|
||||
comes in; you can optimize your site and its interactions with
|
||||
popular search engines to attract a more targeted form of
|
||||
traffic that intends to only reach people who’ve already been
|
||||
looking for a service or product like yours.
|
||||
</p>
|
||||
<img
|
||||
src="/assets/img/content/ai-generated-8138052_640.png"
|
||||
alt=""
|
||||
/>
|
||||
<h2>Cost-Effective Marketing</h2>
|
||||
<p>
|
||||
SEO is incredibly efficient when it comes to conversions. There
|
||||
are other various forms of online marketing, such as:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
Pay-Per-Click Google Ads you often see on the sides of
|
||||
websites
|
||||
</li>
|
||||
<li>Social Media Marketing</li>
|
||||
<li>Outbound Cold Emails</li>
|
||||
</ul>
|
||||
<p>
|
||||
There are others, however they all have one negative trait in
|
||||
common that SEO does not; they require constant payment and
|
||||
effort to have an effect. When you stop paying for ads, the
|
||||
traffic stops coming. Because of the way SEO works though, there
|
||||
are long-term benefits that remain even after the services have
|
||||
been finished. This is due to something called “Domain
|
||||
Authority.” Once you accumulate enough domain authority over
|
||||
time, you can retain the same search results while reducing your
|
||||
SEO spending.
|
||||
</p>
|
||||
<p>
|
||||
Another huge reason why SEO (inbound, blog content, etc.) is
|
||||
superior to outbound marketing methods is because of the proven
|
||||
close rate across all major studies on websites such as Hubspot.
|
||||
</p>
|
||||
<img src="/assets/img/content/feedback-2800867_640.png" alt="" />
|
||||
<h2>Reputation and Credibility</h2>
|
||||
<p>
|
||||
Most online experiences begin with a search engine. Even the
|
||||
most basic and least tech-savvy individual likely knows how to
|
||||
click on Explorer’s Blue “E”, or Google’s Rainbow wheel. Most
|
||||
people have been using these applications for years, which
|
||||
builds trust in the things that those applications show to the
|
||||
person. Most people feel that, usually, the results showing at
|
||||
the top of their search engine are the most useful and relevant
|
||||
ones concerning what they typed in. This means that if your
|
||||
website shows up near or at the top of someone’s Google search
|
||||
results, they’re more likely to feel trusting enough of your
|
||||
reputation and credibility to click on your link.
|
||||
</p>
|
||||
<p>
|
||||
Something that SEO also involves is improving the user
|
||||
experience overall. When a user clicks on your page, they would
|
||||
prefer content that is:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Quick and responsive</li>
|
||||
<li>Organized</li>
|
||||
<li>Helpful</li>
|
||||
<li>Relevant to the search query</li>
|
||||
<li>Well-Maintained</li>
|
||||
</ul>
|
||||
<p>
|
||||
Having a present combination of all of these factors on your
|
||||
website really helps out with boosting your reputation and
|
||||
credibility. If someone feels trusting enough of your website
|
||||
after seeing the above factors, they’re more likely to make a
|
||||
purchase or be more interested in what you have to offer.
|
||||
</p>
|
||||
<img src="/assets/img/content/winner-1013979_1280.jpg" alt="" />
|
||||
<h2>Advantage Over Competition</h2>
|
||||
<p>
|
||||
The online marketplace is a bit of a double-edged sword. You
|
||||
have easy access to a figurative ocean of commerce, however,
|
||||
that comes with another less welcomed pool of people, your
|
||||
competition. No matter the industry you choose, when you make
|
||||
your website online, you’ll likely observe another site similar
|
||||
to yours showing up alongside you in the search results. These
|
||||
competing sites are often looking for the exact same traffic and
|
||||
are often providing the exact same service as you. Most of the
|
||||
time when you’re starting out, there will be many of them ranked
|
||||
above you on the search results. This is another situation where
|
||||
investing in SEO can step in and improve the situation. To get
|
||||
that cutting-edge improvement over your competition, and attract
|
||||
more customers, and display higher on the popular search
|
||||
engines, it is mandatory to maintain up-to-date SEO practices.
|
||||
</p>
|
||||
<img src="/assets/img/content/call-3616158_640.png" alt="" />
|
||||
<h2>The User Experience</h2>
|
||||
<p>
|
||||
The overall quality of the “User Experience” is an extremely
|
||||
important aspect of SEO. Not only does the experience directly
|
||||
impact the opinion a user forms about your page, but also,
|
||||
search engines will boost your ranking if they detect that your
|
||||
pages are enjoyable and helpful. Factors such as:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Content Relevance</li>
|
||||
<li>Loading Time</li>
|
||||
<li>Ease of Navigation</li>
|
||||
<li>Mobile Optimization</li>
|
||||
</ul>
|
||||
<p>
|
||||
are just a few that can all contribute to the overall quality of
|
||||
the user experience. A positive user experience will increase
|
||||
your conversions because the user is more likely to make a
|
||||
purchase or attempt to contact you if they have a helpful,
|
||||
smooth, and enjoyable experience on your page.
|
||||
</p>
|
||||
<p>
|
||||
The methods that search engines use to detect whether your
|
||||
content is enjoyable and helpful are clear. There are some
|
||||
measurable metrics such as:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Site Engagement (clicks)</li>
|
||||
<li>Average Time Spent on the Website</li>
|
||||
<li>
|
||||
Bounce Rate (amount of people who leave the website quickly)
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
These metrics (and more) can signal to the different search
|
||||
engines that your website has value and relevance, and in turn,
|
||||
they’ll rank you higher on their search results page. There are
|
||||
steps you can take, most notably investing in all available SEO
|
||||
practices, to maximize these qualities in the eyes of Google.
|
||||
</p>
|
||||
<img
|
||||
src="/assets/img/content/ai-generated-8861653_640.png"
|
||||
alt=""
|
||||
/>
|
||||
<h2>Local Optimization</h2>
|
||||
<p>
|
||||
If you want to target customers in your local area, then using
|
||||
something called “Local SEO” is essential. This just means
|
||||
optimizing your online presence to appear higher and more often
|
||||
in locally-themed search results. For example, you could improve
|
||||
your Google “My Business” listing to appear on Google Maps and
|
||||
other apps. You could cite local citations, with one provided
|
||||
example being: “Voted Best Pizza in Town!” You could also try to
|
||||
encourage customers to leave reviews on various apps like Google
|
||||
Reviews and Yelp, offering small benefits for doing so.
|
||||
</p>
|
||||
<img src="/assets/img/content/finance-7056936_640.png" alt="" />
|
||||
<h2>Long-Term Benefits</h2>
|
||||
<p>
|
||||
SEO isn’t something companies rush to “finish.” The various
|
||||
measures involved are long-term strategies that require
|
||||
consistent maintenance and investment. However, the long-term
|
||||
return on investment of SEO practices far outweighs the initial
|
||||
costs. The results (customer engagement, leads, sales) are often
|
||||
exponential and accumulative as your domain builds authority,
|
||||
meaning that on the internet, search engine success often breeds
|
||||
more search engine success. This can be compared to the
|
||||
relatively inferior practice of buying paid advertisements on
|
||||
other big websites and social media platforms, with which, the
|
||||
benefits disappear permanently the moment you stop making the
|
||||
investment.
|
||||
</p>
|
||||
<img src="/assets/img/content/graph-36796_640.png" alt="" />
|
||||
<h2>Customer Insights</h2>
|
||||
<p>
|
||||
SEO involves using analytics-based applications such as Google
|
||||
Analytics to monitor the different ways users find and interact
|
||||
with pages. You can find and use a vast wealth of information
|
||||
using these applications, such as:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
finding the most popular keywords that can be used to find
|
||||
your site,
|
||||
</li>
|
||||
<li>the pages that are the most visited,</li>
|
||||
<li>
|
||||
the actions that are taken on your site (such as how long it
|
||||
takes people to do certain things, what buttons they click,
|
||||
or what might make them want to leave)
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
These sets of data will let you learn about your customers, and
|
||||
then you can tailor your pages and content accordingly. Here’s
|
||||
an example of tailoring your content using market insights: You
|
||||
wrote one blog that attracted a high amount of traffic for some
|
||||
reason, much higher than your other blogs. You can look at the
|
||||
different characteristics of the successful blog that you wrote,
|
||||
such as the
|
||||
</p>
|
||||
<ul>
|
||||
<li>Topic</li>
|
||||
<li>Length</li>
|
||||
<li>Style</li>
|
||||
<li>Images</li>
|
||||
<li>Links</li>
|
||||
<li>Tone</li>
|
||||
</ul>
|
||||
<p>
|
||||
and then you can create more of that proven successful content.
|
||||
Learning about your customer's activity on your page lets you do
|
||||
other things too, like finding and eliminating any bottlenecks
|
||||
in your sales funnel, which will further improve your sales.
|
||||
</p>
|
||||
<img
|
||||
src="/assets/img/content/social-media-3846597_640.png"
|
||||
alt=""
|
||||
/>
|
||||
<h2>Building Your Brand</h2>
|
||||
<p>
|
||||
When it comes to establishing a brand in the modern world, SEO
|
||||
is a critical part of that. If you want your brand to be
|
||||
memorable, or a “household name”, you’re going to need to ensure
|
||||
that the company name appears in front of everyone’s face as
|
||||
much as possible. Another good strategy to employ is choosing a
|
||||
catchy and memorable name that people don’t have to write down,
|
||||
so they can maybe “Google” you again later. These strategies can
|
||||
develop an awareness of your company through simple memory or
|
||||
word-of-mouth. Trust and awareness can be built through these
|
||||
methods as well, through people who aren’t even customers in the
|
||||
first place. If your brand is constantly seen and present in
|
||||
passing, and consistently appears in results and suggestions, it
|
||||
gives off the impression that your brand is renowned and
|
||||
respected, and can be trusted. Maybe that passer-by will decide
|
||||
to give your site a visit one day since they’ve seen it come up
|
||||
on their screen a couple of times before.
|
||||
</p>
|
||||
<img src="/assets/img/content/long-shadow-1312718_640.png" alt="" />
|
||||
<h2>Staying Ahead of the Technological Curve</h2>
|
||||
<p>
|
||||
One rather complicated aspect of SEO is that the digital world
|
||||
is constantly improving itself, progressing, and evolving. New
|
||||
trends, technologies, and strategies introduce themselves every
|
||||
year to the space. Practicing SEO requires a business or agency
|
||||
to stay on top of the most recent search engine algorithm
|
||||
developments, understand all commonly practiced techniques, and
|
||||
be open to embracing new and disruptive technologies in the
|
||||
future, such as AI.
|
||||
</p>
|
||||
<p>
|
||||
By consistently educating yourself and your peers, you can
|
||||
reliably adapt to whatever changes may occur in the digital
|
||||
marketing world. SEO is something that can be harnessed and
|
||||
powerfully used, but it must be done the right way. Taking a
|
||||
proactive rather than reactive approach to maximize your SEO
|
||||
enables your company’s marketing efforts to stay effective and
|
||||
relevant, even in the most competitive environments.
|
||||
</p>
|
||||
<h2>Takeaway</h2>
|
||||
<p>
|
||||
If you’ve read this far, you’re truly invested in building your
|
||||
company, and you’re on the right track. You’ve learned from this
|
||||
blog that SEO practices are a vital component of the majority of
|
||||
successful online marketing strategies. There are innumerable
|
||||
benefits to maximizing the SEO of your page. Here’s a simple and
|
||||
quick recap of what you can expect to gain:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Increased Web Presence and Clicks</li>
|
||||
<li>Cost-Effective Marketing</li>
|
||||
<li>Building Reputation and Credibility</li>
|
||||
<li>Advantage Over Competition</li>
|
||||
<li>Improved User Experience</li>
|
||||
<li>Localized SEO</li>
|
||||
<li>Long Term ROI</li>
|
||||
<li>Customer Behavior Insights</li>
|
||||
<li>Building Your Brand</li>
|
||||
<li>Staying Ahead of the Technological Curve</li>
|
||||
</ul>
|
||||
<p>
|
||||
Boosting your business with expert digital marketing can
|
||||
generate countless benefits. Often, the results speak for
|
||||
themselves.
|
||||
</p>
|
||||
<p>
|
||||
Want to outrun your competition?
|
||||
<Link href="/schedule"> Book a Free Consultation</Link> with
|
||||
RankRunners today.
|
||||
</p>
|
||||
</div>
|
||||
<BlogCta slug={slug} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="blog__sidebar">
|
||||
<BlogAsideLatest />
|
||||
<div className="sidebar__widget">
|
||||
<h4 className="sidebar__widget-title">Tags</h4>
|
||||
<div className="sidebar__tag-list">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="#">SEO</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Business</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Development</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Marketing</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">CRM</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Management</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Consultancy</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="#">Ad Campaigns</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{/* blog-details-area-end */}
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
71
app/client-area/page.js
Normal file
71
app/client-area/page.js
Normal file
@ -0,0 +1,71 @@
|
||||
"use client";
|
||||
|
||||
import { useEffect, useState } from "react";
|
||||
import { useRouter, useSearchParams } from "next/navigation";
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import PortalSelector from "@/components/dashboard/PortalSelector";
|
||||
import LogoutButton from "@/components/dashboard/LogoutButton";
|
||||
|
||||
export default function Portal() {
|
||||
const searchParams = useSearchParams();
|
||||
const router = useRouter();
|
||||
|
||||
// Use dummy user data
|
||||
const [sessionAccess, setSessionAccess] = useState(true);
|
||||
const [session, setSession] = useState({
|
||||
user: {
|
||||
username: "admin",
|
||||
password: "admin",
|
||||
user_metadata: {
|
||||
client_id: "dummy_client_id",
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
// Simulate Stripe session handling if session_id exists in URL
|
||||
const stripeSessionId = searchParams.get("session_id");
|
||||
if (stripeSessionId) {
|
||||
handleSuccessfulPayment(
|
||||
stripeSessionId,
|
||||
session.user.user_metadata.client_id
|
||||
);
|
||||
}
|
||||
}, [searchParams, session]);
|
||||
|
||||
const handleSuccessfulPayment = async (stripeSessionId, userId) => {
|
||||
try {
|
||||
const response = await fetch("/api/handle-successful-payment", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({ sessionId: stripeSessionId, userId }),
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error("Failed to handle successful payment");
|
||||
}
|
||||
// Optionally, you can update the UI or show a success message here
|
||||
} catch (error) {
|
||||
console.error("Error handling successful payment:", error);
|
||||
// Optionally, show an error message to the user
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
{!sessionAccess && <p>Loading...</p>}
|
||||
{sessionAccess && (
|
||||
<Layout headerStyle={6} footerStyle={3} transparent={false}>
|
||||
<section className="portal__area">
|
||||
<div className="container">
|
||||
<PortalSelector session={session} />
|
||||
</div>
|
||||
<LogoutButton />
|
||||
</section>
|
||||
</Layout>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
}
|
114
app/contact/page.js
Normal file
114
app/contact/page.js
Normal file
@ -0,0 +1,114 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Link from "next/link";
|
||||
import Contacting from "@/components/custom/Contact";
|
||||
|
||||
export const metadata = {
|
||||
title: "Contact | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function Contact() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Contact Us">
|
||||
<div>
|
||||
<section className="contact__area">
|
||||
<div className="container">
|
||||
<div className="row mb-70">
|
||||
<div className="col-lg-5">
|
||||
<div className="contact__content">
|
||||
<div className="section-title mb-30">
|
||||
<span className="sub-title">
|
||||
GET <span className="title-color">IN TOUCH</span>
|
||||
</span>
|
||||
<h2 className="title">Let's Talk</h2>
|
||||
<p>
|
||||
Have a question about a service, pricing, or case study? Send us a
|
||||
message and we'll provide all the answers you need!
|
||||
</p>
|
||||
</div>
|
||||
<div className="contact__info">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-pin" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Address</h4>
|
||||
<p>
|
||||
<Link
|
||||
href="https://maps.app.goo.gl/3vpv8Y9pSTtpcNGB6"
|
||||
target="_blank"
|
||||
>
|
||||
Suite B, 1934 N. Druid Hills Rd, Brookhaven, GA 30319,
|
||||
USA
|
||||
</Link>
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-phone-call" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Phone</h4>
|
||||
<Link href="tel:+14702604117">(470) 260-4117</Link>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-mail" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Email</h4>
|
||||
<Link href="mailto:support@rankrunners.net">
|
||||
support@rankrunners.net
|
||||
</Link>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{/* <div className="contact__left mb-30">
|
||||
<ul>
|
||||
<li>
|
||||
We'll increase your company website's organic search ranking and
|
||||
visibility in Google search
|
||||
</li>
|
||||
<li>
|
||||
This increased brand exposure will help attract and reel in
|
||||
thousands of brand new customers
|
||||
</li>
|
||||
<li>
|
||||
You will experience a higher bottom line, increased ROI and better
|
||||
position yourself for sustainable, organic growth
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="section-title">
|
||||
<p>Are you ready to outrun your competitors?</p>
|
||||
</div> */}
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-7">
|
||||
<Contacting />
|
||||
</div>
|
||||
</div>
|
||||
<div className="row">
|
||||
<div className="col-lg-12">
|
||||
<div className="contact-map">
|
||||
<iframe
|
||||
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3105.090533713237!2d-84.34295258493827!3d33.83509628065662!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x88f507b69aa2e0e3:0x51ce91157771e43d!2sRankRunners!5e0!3m2!1sen!2sus!4v1685560274134!5m2!1sen!2sus"
|
||||
allowFullScreen
|
||||
loading="lazy"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
BIN
app/favicon.ico
Normal file
BIN
app/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 66 KiB |
115
app/forgot-password/page.js
Normal file
115
app/forgot-password/page.js
Normal file
@ -0,0 +1,115 @@
|
||||
"use client";
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Link from "next/link";
|
||||
import { useState } from "react";
|
||||
|
||||
export default function ForgotPassword() {
|
||||
const [identify, setIdentifier] = useState("");
|
||||
const [error, setError] = useState("");
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
const [wrongCred, setWrongCred] = useState(false);
|
||||
const [success, setSuccess] = useState(false);
|
||||
|
||||
const handleForgotPassword = async (e) => {
|
||||
e.preventDefault();
|
||||
setError("");
|
||||
setIsLoading(true);
|
||||
|
||||
// Simulate handling of forgot password logic (without supabase or nocodb)
|
||||
const emailIdentifier = identify;
|
||||
|
||||
// Dummy logic for demonstration purposes
|
||||
if (!emailIdentifier.includes("@")) {
|
||||
setError("Please enter a valid email address.");
|
||||
setIsLoading(false);
|
||||
return;
|
||||
}
|
||||
|
||||
// Simulate API call success
|
||||
setTimeout(() => {
|
||||
setSuccess(true);
|
||||
setIsLoading(false);
|
||||
}, 1000);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={6} footerStyle={3} transparent={false}>
|
||||
<section className="forgot__area-one">
|
||||
<div className="container">
|
||||
<div className="text-center mb-55">
|
||||
<h1 className="text-48-bold">Forgot Password?</h1>
|
||||
</div>
|
||||
<div className="box-form-login">
|
||||
<div className="head-login">
|
||||
<p className="text-16-semibold">
|
||||
No worries, we’ll send you reset instructions
|
||||
</p>
|
||||
<div className="form-login form-forgot">
|
||||
<form onSubmit={handleForgotPassword}>
|
||||
<div className="form-group">
|
||||
<input
|
||||
type="text"
|
||||
className="form-control account"
|
||||
placeholder="Email Address"
|
||||
value={identify}
|
||||
onChange={(e) => setIdentifier(e.target.value)}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div className="alert alert-warning" hidden={!wrongCred}>
|
||||
<p className="text-infos">
|
||||
We can’t seem to find the right account. Please try with
|
||||
a different account.
|
||||
</p>
|
||||
</div>
|
||||
<div className="alert alert-accept" hidden={!success}>
|
||||
<p className="text-infos">
|
||||
Kindly check your email and click on the link to reset
|
||||
your password.
|
||||
</p>
|
||||
</div>
|
||||
<div className="form-group">
|
||||
<input
|
||||
type="submit"
|
||||
className="btn btn-login"
|
||||
defaultValue="Reset password"
|
||||
/>
|
||||
</div>
|
||||
</form>
|
||||
<div className="form-group">
|
||||
<button className="btn border-btn btn-login">
|
||||
<svg
|
||||
width={16}
|
||||
height={14}
|
||||
viewBox="0 0 16 14"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M15 6.07209H3.14L6.77 2.02388C6.93974 1.83427 7.0214 1.58982 6.99702 1.3443C6.97264 1.09878 6.84422 0.872315 6.64 0.714715C6.43578 0.557115 6.1725 0.481293 5.90808 0.503929C5.64365 0.526565 5.39974 0.645806 5.23 0.835419L0.23 6.40635C0.196361 6.45066 0.166279 6.49721 0.14 6.54562C0.14 6.59205 0.14 6.6199 0.0700002 6.66633C0.0246737 6.77278 0.000941121 6.88611 0 7.00058C0.000941121 7.11505 0.0246737 7.22838 0.0700002 7.33484C0.0700002 7.38126 0.0699999 7.40911 0.14 7.45554C0.166279 7.50395 0.196361 7.5505 0.23 7.59481L5.23 13.1657C5.32402 13.2706 5.44176 13.3548 5.57485 13.4126C5.70793 13.4704 5.85309 13.5002 6 13.5C6.23365 13.5004 6.46009 13.4249 6.64 13.2864C6.74126 13.2085 6.82496 13.1128 6.88631 13.0047C6.94766 12.8967 6.98546 12.7785 6.99754 12.6569C7.00961 12.5353 6.99573 12.4127 6.95669 12.296C6.91764 12.1794 6.8542 12.0711 6.77 11.9773L3.14 7.92907H15C15.2652 7.92907 15.5196 7.83125 15.7071 7.65712C15.8946 7.483 16 7.24683 16 7.00058C16 6.75433 15.8946 6.51817 15.7071 6.34404C15.5196 6.16991 15.2652 6.07209 15 6.07209Z"
|
||||
fill
|
||||
/>
|
||||
</svg>
|
||||
<Link href="/login">Back to Login</Link>
|
||||
</button>
|
||||
</div>
|
||||
<p className="text-center">
|
||||
Don’t have an account?{" "}
|
||||
<Link href="/register" className="link-bold">
|
||||
Register
|
||||
</Link>{" "}
|
||||
now, or{" "}
|
||||
<Link href="/contact" className="link-bold">
|
||||
Contact Us
|
||||
</Link>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
39
app/layout.js
Normal file
39
app/layout.js
Normal file
@ -0,0 +1,39 @@
|
||||
import { Inter, Outfit } from "next/font/google";
|
||||
import "/public/assets/css/animate.min.css";
|
||||
import "/public/assets/css/bootstrap.min.css";
|
||||
import "/public/assets/css/flaticon.css";
|
||||
import "/public/assets/css/fontawesome-all.min.css";
|
||||
import "/public/assets/css/magnific-popup.css";
|
||||
import "/public/assets/css/odometer.css";
|
||||
import "/public/assets/css/swiper-bundle.css";
|
||||
import "/public/assets/css/aos.css";
|
||||
import "/public/assets/css/default.css";
|
||||
import "/public/assets/css/main.css";
|
||||
import "/public/assets/css/custom.css";
|
||||
import ScrollHandler from "@/components/custom/ScrollHandler";
|
||||
import PopUp from "@/components/custom/PopUp";
|
||||
|
||||
const inter = Inter({
|
||||
weight: ["300", "400", "500", "600", "700"],
|
||||
subsets: ["latin"],
|
||||
variable: "--tg-body-font-family",
|
||||
display: "swap",
|
||||
});
|
||||
const outfit = Outfit({
|
||||
weight: ["400", "500", "600", "700", "800", "900"],
|
||||
subsets: ["latin"],
|
||||
variable: "--tg-heading-font-family",
|
||||
display: "swap",
|
||||
});
|
||||
|
||||
export default function RootLayout({ children }) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body className={`${inter.variable} ${outfit.variable}`}>
|
||||
{children}
|
||||
<PopUp />
|
||||
<ScrollHandler />
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
}
|
9
app/loading.js
Normal file
9
app/loading.js
Normal file
@ -0,0 +1,9 @@
|
||||
import Preloader from '@/components/elements/Preloader'
|
||||
|
||||
export default function loading() {
|
||||
return (
|
||||
<>
|
||||
<Preloader />
|
||||
</>
|
||||
)
|
||||
}
|
118
app/login/page.js
Normal file
118
app/login/page.js
Normal file
@ -0,0 +1,118 @@
|
||||
"use client";
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Link from "next/link";
|
||||
import { useState } from "react";
|
||||
import { useRouter } from "next/navigation";
|
||||
|
||||
export default function Login() {
|
||||
const [email, setEmail] = useState("");
|
||||
const [password, setPassword] = useState("");
|
||||
const [error, setError] = useState("");
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
const [wrongCred, setWrongCred] = useState(false);
|
||||
const router = useRouter();
|
||||
|
||||
const handleLogin = async (e) => {
|
||||
e.preventDefault();
|
||||
setError("");
|
||||
setIsLoading(true);
|
||||
|
||||
// Simulate a login validation (replace this with actual logic or API calls)
|
||||
if (email === "test@example.com" && password === "password123") {
|
||||
// Successful login simulation
|
||||
router.push("/client-area");
|
||||
} else {
|
||||
setError("Invalid login credentials, please try again.");
|
||||
setWrongCred(true);
|
||||
}
|
||||
|
||||
setIsLoading(false);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={6} footerStyle={3} transparent={false}>
|
||||
<section className="login__area-one">
|
||||
<div className="container">
|
||||
<div className="box-form-login">
|
||||
<div className="head-login">
|
||||
<h3>Client Area</h3>
|
||||
<p className={wrongCred ? "display-none" : ""}>
|
||||
Login with your email
|
||||
</p>
|
||||
<p className={wrongCred ? "error-red" : "display-none"}>
|
||||
Invalid login credentials, please try again.
|
||||
</p>
|
||||
<div className="form-login">
|
||||
<form onSubmit={handleLogin}>
|
||||
<div className="form-group">
|
||||
<input
|
||||
type="text"
|
||||
className="form-control account"
|
||||
placeholder="Email Address"
|
||||
value={email}
|
||||
onChange={(e) => setEmail(e.target.value)}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div className="form-group">
|
||||
<input
|
||||
type="password"
|
||||
className="form-control"
|
||||
placeholder="Password"
|
||||
value={password}
|
||||
onChange={(e) => setPassword(e.target.value)}
|
||||
minLength={8}
|
||||
required
|
||||
/>
|
||||
<span className="view-password" />
|
||||
</div>
|
||||
<div className="box-forgot-pass">
|
||||
<label>
|
||||
<input
|
||||
type="checkbox"
|
||||
className="cb-remember"
|
||||
defaultValue={1}
|
||||
/>{" "}
|
||||
Remember me
|
||||
</label>
|
||||
<Link href="/forgot-password">Forgot Password ?</Link>
|
||||
</div>
|
||||
<div className="form-group">
|
||||
{!isLoading ? (
|
||||
<input
|
||||
type="submit"
|
||||
className="btn btn-login"
|
||||
defaultValue="Login"
|
||||
/>
|
||||
) : (
|
||||
<div
|
||||
className="btn btn-login btn-loader"
|
||||
defaultValue="Register now"
|
||||
>
|
||||
<div
|
||||
className="spinner-border text-light"
|
||||
role="status"
|
||||
>
|
||||
<span className="sr-only">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</form>
|
||||
<p>
|
||||
Don’t have an account?{" "}
|
||||
<Link href="/register" className="link-bold">
|
||||
Register
|
||||
</Link>{" "}
|
||||
now
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
3
app/mdx-components.js
Normal file
3
app/mdx-components.js
Normal file
@ -0,0 +1,3 @@
|
||||
export function useMDXComponents(components) {
|
||||
return { ...components };
|
||||
}
|
29
app/middleware.js
Normal file
29
app/middleware.js
Normal file
@ -0,0 +1,29 @@
|
||||
// middleware.js
|
||||
// import { createMiddlewareClient } from "@supabase/auth-helpers-nextjs";
|
||||
import { NextResponse } from "next/server";
|
||||
|
||||
export async function middleware(req) {
|
||||
const res = NextResponse.next();
|
||||
// const supabase = createMiddlewareClient({ req, res });
|
||||
// const {
|
||||
// data: { session },
|
||||
// } = await supabase.auth.getSession();
|
||||
|
||||
// if (!session && req.nextUrl.pathname.startsWith("/client-area")) {
|
||||
// return NextResponse.redirect(new URL("/login", req.url));
|
||||
// }
|
||||
|
||||
// Protect reset-password route
|
||||
if (req.nextUrl.pathname === "/reset-password") {
|
||||
const accessToken = req.nextUrl.searchParams.get("access_token");
|
||||
if (!accessToken) {
|
||||
return NextResponse.redirect(new URL("/login", req.url));
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
export const config = {
|
||||
matcher: ["/client-area/:path*", "/reset-password"],
|
||||
};
|
71
app/not-found.js
Normal file
71
app/not-found.js
Normal file
@ -0,0 +1,71 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Link from "next/link";
|
||||
|
||||
export default function NotFound() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Error page">
|
||||
<section className="error-area">
|
||||
<div className="container">
|
||||
<div className="row">
|
||||
<div className="col-lg-12">
|
||||
<div className="error-content">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 649 323" fill="none">
|
||||
<path
|
||||
d="M39.3651 6.43777C47.246 -5.80467 96.8509 7.09739 94.8741 25.6194C92.8973 44.1413 58.6061 132.108 67.146 142.028C75.6858 151.949 119.966 150.629 120.625 148.651C121.284 146.672 131.195 88.4674 133.172 79.2064C135.148 69.9454 182.724 71.9243 185.36 89.127C187.995 106.33 171.495 210.813 169.492 239.915C167.489 269.017 172.128 294.795 166.198 300.758C160.241 306.721 110.689 307.38 106.735 297.46C102.781 287.539 117.594 203.557 112.481 198.913C107.394 194.296 22.1537 203.531 4.96856 187.014C-12.1638 170.471 18.8853 38.1784 39.3651 6.43777Z"
|
||||
fill="currentcolor"
|
||||
/>
|
||||
<path
|
||||
d="M488.498 6.41139C493.4 -4.06329 550.78 -2.95514 546.932 19.1551C543.084 41.2654 513.985 143.268 520.258 148.149C526.531 153.031 567.017 154.376 570.891 152.793C574.766 151.21 585.098 76.3041 586.969 64.2464C588.841 52.1886 647.065 51.7137 648.013 66.2252C648.962 80.7368 626.585 308.198 620.707 318.541C614.829 328.857 560.559 319.148 557.317 310.098C554.075 301.048 573.052 206.327 568.282 204.006C563.511 201.684 472.868 212.897 459.083 194.56C445.298 176.223 479.193 26.2262 488.498 6.41139Z"
|
||||
fill="currentcolor"
|
||||
/>
|
||||
<path
|
||||
d="M329.403 17.6776C381.539 20.8438 437.1 85.143 427.19 175.748C417.279 266.352 363.774 315.955 291.739 311.998C219.703 308.04 197.932 216.749 205.18 145.326C212.429 73.9031 253.415 13.0603 329.403 17.6776Z"
|
||||
fill="currentcolor"
|
||||
/>
|
||||
<path
|
||||
d="M301.86 90.1824C324.554 98.1242 331.591 154.297 307.817 179.125C284.042 203.926 244.4 182.766 242.397 151.025C240.394 119.285 275.423 80.9214 301.86 90.1824Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
d="M373.869 121.897C376.109 122.715 378.191 124.087 380.01 125.67C389.13 133.611 391.976 147.411 388.365 158.967C386.837 163.848 384.174 168.545 380.089 171.632C375.081 175.405 368.439 176.46 362.219 175.774C357.659 175.273 352.993 173.822 349.857 170.471C347.617 168.096 346.351 164.956 345.534 161.817C341.581 146.513 350.331 118.519 370.785 121.158C371.865 121.29 372.893 121.554 373.869 121.897Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
d="M358.133 156.751C362.704 156.751 366.409 153.042 366.409 148.466C366.409 143.89 362.704 140.181 358.133 140.181C353.562 140.181 349.857 143.89 349.857 148.466C349.857 153.042 353.562 156.751 358.133 156.751Z"
|
||||
fill="#684500"
|
||||
/>
|
||||
<path
|
||||
d="M296.167 136.698C300.737 136.698 304.443 132.989 304.443 128.414C304.443 123.838 300.737 120.129 296.167 120.129C291.596 120.129 287.89 123.838 287.89 128.414C287.89 132.989 291.596 136.698 296.167 136.698Z"
|
||||
fill="#684500"
|
||||
/>
|
||||
<path
|
||||
d="M327.532 232.527C326.82 232.527 326.082 232.29 325.476 231.841C323.974 230.707 323.658 228.543 324.791 227.039C325.423 226.195 340.526 206.406 356.42 207.778C358.318 207.937 359.688 209.599 359.53 211.499C359.372 213.398 357.711 214.77 355.814 214.612C345.771 213.741 333.937 226.274 330.247 231.182C329.588 232.052 328.56 232.527 327.532 232.527Z"
|
||||
fill="#684500"
|
||||
/>
|
||||
<path
|
||||
d="M363.932 113.902C355.919 113.902 349.303 111.791 348.803 111.633C347.01 111.053 346.035 109.1 346.615 107.306C347.195 105.512 349.145 104.536 350.938 105.116C351.148 105.169 371.048 111.501 380.827 100.895C382.119 99.4962 384.28 99.417 385.677 100.71C387.074 102.003 387.153 104.166 385.861 105.565C379.746 112.134 371.259 113.902 363.932 113.902Z"
|
||||
fill="#684500"
|
||||
/>
|
||||
<path
|
||||
d="M319.414 84.4042C318.096 84.4042 316.831 83.6391 316.277 82.3462C316.198 82.1615 308.265 64.3519 295.244 61.4496C288.945 60.0512 282.197 62.4258 275.212 68.5735C273.789 69.8135 271.628 69.6816 270.389 68.2568C269.15 66.8321 269.282 64.6685 270.705 63.4285C279.43 55.7769 288.207 52.8746 296.773 54.8007C313.194 58.4945 322.208 78.7843 322.577 79.6286C323.341 81.37 322.551 83.3752 320.811 84.1404C320.337 84.2987 319.862 84.4042 319.414 84.4042Z"
|
||||
fill="#684500"
|
||||
/>
|
||||
</svg>
|
||||
<h2 className="title">OOPS! Nothing Was Found</h2>
|
||||
<p>
|
||||
Oops! it could be you or us, there is no page here. It might have <br /> been
|
||||
moved or deleted.Back To Home
|
||||
</p>
|
||||
<Link href="/" className="btn btn-two">
|
||||
Go Back To Home Page
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
BIN
app/opengraph-image.png
Normal file
BIN
app/opengraph-image.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.0 MiB |
42
app/page.js
Normal file
42
app/page.js
Normal file
@ -0,0 +1,42 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import About4 from "@/components/sections/About4";
|
||||
import Banner1 from "@/components/sections/Banner1";
|
||||
import BlogPost2 from "@/components/sections/BlogPost2";
|
||||
import Brand1 from "@/components/sections/Brand1";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import Choose2 from "@/components/sections/Choose2";
|
||||
import Counter2 from "@/components/sections/Counter2";
|
||||
import Project3 from "@/components/sections/Project3";
|
||||
import Services6 from "@/components/sections/Services6";
|
||||
import Team4 from "@/components/sections/Team4";
|
||||
import Testimonials from "@/components/sections/Testimonials";
|
||||
|
||||
export const metadata = {
|
||||
title: "RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3}>
|
||||
<Banner1 />
|
||||
<Brand1 />
|
||||
<div id="about">
|
||||
<About4 />
|
||||
</div>
|
||||
<div id="seocheck">
|
||||
<Callback1 />
|
||||
</div>
|
||||
<Services6 />
|
||||
<Choose2 />
|
||||
<Counter2 />
|
||||
<Project3 />
|
||||
{/* <Team4 /> */}
|
||||
<Testimonials />
|
||||
<BlogPost2 />
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
229
app/page.module.css
Normal file
229
app/page.module.css
Normal file
@ -0,0 +1,229 @@
|
||||
.main {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 6rem;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.description {
|
||||
display: inherit;
|
||||
justify-content: inherit;
|
||||
align-items: inherit;
|
||||
font-size: 0.85rem;
|
||||
max-width: var(--max-width);
|
||||
width: 100%;
|
||||
z-index: 2;
|
||||
font-family: var(--font-mono);
|
||||
}
|
||||
|
||||
.description a {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.description p {
|
||||
position: relative;
|
||||
margin: 0;
|
||||
padding: 1rem;
|
||||
background-color: rgba(var(--callout-rgb), 0.5);
|
||||
border: 1px solid rgba(var(--callout-border-rgb), 0.3);
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
.code {
|
||||
font-weight: 700;
|
||||
font-family: var(--font-mono);
|
||||
}
|
||||
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, minmax(25%, auto));
|
||||
max-width: 100%;
|
||||
width: var(--max-width);
|
||||
}
|
||||
|
||||
.card {
|
||||
padding: 1rem 1.2rem;
|
||||
border-radius: var(--border-radius);
|
||||
background: rgba(var(--card-rgb), 0);
|
||||
border: 1px solid rgba(var(--card-border-rgb), 0);
|
||||
transition: background 200ms, border 200ms;
|
||||
}
|
||||
|
||||
.card span {
|
||||
display: inline-block;
|
||||
transition: transform 200ms;
|
||||
}
|
||||
|
||||
.card h2 {
|
||||
font-weight: 600;
|
||||
margin-bottom: 0.7rem;
|
||||
}
|
||||
|
||||
.card p {
|
||||
margin: 0;
|
||||
opacity: 0.6;
|
||||
font-size: 0.9rem;
|
||||
line-height: 1.5;
|
||||
max-width: 30ch;
|
||||
}
|
||||
|
||||
.center {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
padding: 4rem 0;
|
||||
}
|
||||
|
||||
.center::before {
|
||||
background: var(--secondary-glow);
|
||||
border-radius: 50%;
|
||||
width: 480px;
|
||||
height: 360px;
|
||||
margin-left: -400px;
|
||||
}
|
||||
|
||||
.center::after {
|
||||
background: var(--primary-glow);
|
||||
width: 240px;
|
||||
height: 180px;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.center::before,
|
||||
.center::after {
|
||||
content: '';
|
||||
left: 50%;
|
||||
position: absolute;
|
||||
filter: blur(45px);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
.logo {
|
||||
position: relative;
|
||||
}
|
||||
/* Enable hover only on non-touch devices */
|
||||
@media (hover: hover) and (pointer: fine) {
|
||||
.card:hover {
|
||||
background: rgba(var(--card-rgb), 0.1);
|
||||
border: 1px solid rgba(var(--card-border-rgb), 0.15);
|
||||
}
|
||||
|
||||
.card:hover span {
|
||||
transform: translateX(4px);
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion) {
|
||||
.card:hover span {
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Mobile */
|
||||
@media (max-width: 700px) {
|
||||
.content {
|
||||
padding: 4rem;
|
||||
}
|
||||
|
||||
.grid {
|
||||
grid-template-columns: 1fr;
|
||||
margin-bottom: 120px;
|
||||
max-width: 320px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.card {
|
||||
padding: 1rem 2.5rem;
|
||||
}
|
||||
|
||||
.card h2 {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.center {
|
||||
padding: 8rem 0 6rem;
|
||||
}
|
||||
|
||||
.center::before {
|
||||
transform: none;
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
.description {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.description a {
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
.description p,
|
||||
.description div {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.description p {
|
||||
align-items: center;
|
||||
inset: 0 0 auto;
|
||||
padding: 2rem 1rem 1.4rem;
|
||||
border-radius: 0;
|
||||
border: none;
|
||||
border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25);
|
||||
background: linear-gradient(
|
||||
to bottom,
|
||||
rgba(var(--background-start-rgb), 1),
|
||||
rgba(var(--callout-rgb), 0.5)
|
||||
);
|
||||
background-clip: padding-box;
|
||||
backdrop-filter: blur(24px);
|
||||
}
|
||||
|
||||
.description div {
|
||||
align-items: flex-end;
|
||||
pointer-events: none;
|
||||
inset: auto 0 0;
|
||||
padding: 2rem;
|
||||
height: 200px;
|
||||
background: linear-gradient(
|
||||
to bottom,
|
||||
transparent 0%,
|
||||
rgb(var(--background-end-rgb)) 40%
|
||||
);
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tablet and Smaller Desktop */
|
||||
@media (min-width: 701px) and (max-width: 1120px) {
|
||||
.grid {
|
||||
grid-template-columns: repeat(2, 50%);
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.vercelLogo {
|
||||
filter: invert(1);
|
||||
}
|
||||
|
||||
.logo {
|
||||
filter: invert(1) drop-shadow(0 0 0.3rem #ffffff70);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes rotate {
|
||||
from {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
}
|
249
app/portfolio/atlas-aviation/page.js
Normal file
249
app/portfolio/atlas-aviation/page.js
Normal file
@ -0,0 +1,249 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import CaseStudyDetail from "@/components/custom/CaseStudyDetail";
|
||||
|
||||
export const metadata = {
|
||||
title: "Case Study - Atlas Aviation | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ProjectDetails() {
|
||||
let slug = "atlas-aviation";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Case Study: Atlas Aviation">
|
||||
<div>
|
||||
<section className="project__details-area">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<CaseStudyDetail slug={slug} />
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<h2>The Challenge We Faced</h2>
|
||||
<p>
|
||||
Atlas Aviation, a premier provider of private jet charter and flight
|
||||
school services, faced the challenge of improving their online
|
||||
visibility and client engagement amidst a crowded and competitive
|
||||
market. Despite their industry expertise and high-quality services,
|
||||
their website was underperforming in search engine rankings, hampering
|
||||
their ability to attract new clients. The site was outdated, slow, and
|
||||
not optimized for search engines, which led to low organic traffic and
|
||||
poor user engagement.
|
||||
</p>
|
||||
<p>
|
||||
RankRunners was tasked with overhauling Atlas Aviation’s website and
|
||||
implementing a robust SEO strategy aimed at enhancing their online
|
||||
presence and driving more qualified leads to their business.
|
||||
</p>
|
||||
<h2>The Strategy We Applied</h2>
|
||||
<h5>Comprehensive Website Overhaul:</h5>
|
||||
<p>
|
||||
RankRunners began by completely redesigning Atlas Aviation’s website. We
|
||||
transitioned the site from its old and sluggish platform to a modern,
|
||||
high-performance framework. The new design focused on providing a sleek,
|
||||
professional look that aligns with Atlas Aviation’s brand while
|
||||
improving user experience. Key enhancements included faster load times,
|
||||
a responsive design for mobile devices, and a more intuitive navigation
|
||||
system to facilitate better client interactions.
|
||||
</p>
|
||||
<h5>Targeted SEO Campaign:</h5>
|
||||
<p>
|
||||
To address the low search engine visibility, we implemented a targeted
|
||||
SEO campaign. This involved a detailed keyword analysis to identify
|
||||
high-value search terms such as “private jet charter,” “aviation
|
||||
instruction services,” and “tampa aircraft rental”. We optimized the
|
||||
website’s content with these keywords, updated meta tags, and improved
|
||||
on-page SEO elements to enhance search engine rankings.
|
||||
</p>
|
||||
<h5>Local and Industry-Specific SEO:</h5>
|
||||
<p>
|
||||
Given the nature of Atlas Aviation’s services, local and
|
||||
industry-specific SEO was critical. We optimized the Google My Business
|
||||
profile, ensuring it featured accurate information and high-quality
|
||||
images. Additionally, we created location-based content and secured
|
||||
backlinks from relevant industry sources to improve local search
|
||||
visibility and establish authority in the aviation sector.
|
||||
</p>
|
||||
<h5>Regular Progress Reviews:</h5>
|
||||
<p>
|
||||
RankRunners scheduled bi-weekly progress reviews with Atlas Aviation to
|
||||
keep them informed about the performance of the digital marketing
|
||||
strategy. During these meetings, we presented detailed analytical
|
||||
reports showing improvements in website traffic, search rankings, and
|
||||
user engagement. This approach allowed for transparent communication and
|
||||
continuous optimization of the strategy based on real-time data.
|
||||
</p>
|
||||
<h5>Enhanced Social Media Integration:</h5>
|
||||
<p>
|
||||
To complement the website and SEO efforts, we integrated social media
|
||||
strategies into Atlas Aviation’s overall marketing plan. We developed
|
||||
engaging content for platforms like LinkedIn and Instagram to showcase
|
||||
their services and client success stories, driving additional traffic to
|
||||
the revamped website and increasing brand awareness.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<Callback1 />
|
||||
<div>
|
||||
<section className="project__details-area-one">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<div className="project__details-inner">
|
||||
<div className="row align-items-center">
|
||||
<div className="col-lg-12">
|
||||
<h2>The Results We Provided</h2>
|
||||
<p>
|
||||
The concerted efforts of RankRunners and Atlas Aviation
|
||||
resulted in a transformative impact on their online presence
|
||||
and business performance. The revamped website, combined
|
||||
with a targeted SEO and social media strategy, led to
|
||||
significant improvements in key metrics.
|
||||
</p>
|
||||
<h3>Key Achievements</h3>
|
||||
<h5>Revamped Website:</h5>
|
||||
<p>
|
||||
The new site provided a more modern, user-friendly
|
||||
experience with enhanced functionality and faster
|
||||
performance.
|
||||
</p>
|
||||
<h5>Improved Search Rankings:</h5>
|
||||
<p>
|
||||
Atlas Aviation’s website moved from an average search
|
||||
position of #40 to the top 10 positions for critical search
|
||||
terms, significantly boosting visibility.
|
||||
</p>
|
||||
<h5>Enhanced Local and Industry Visibility:</h5>
|
||||
<p>
|
||||
The optimized Google My Business profile and
|
||||
industry-specific content increased local search visibility
|
||||
by 70% and established Atlas Aviation as a leading authority
|
||||
in the aviation sector.
|
||||
</p>
|
||||
<h5>Increased Engagement:</h5>
|
||||
<p>
|
||||
The integrated social media campaigns contributed to a 50%
|
||||
increase in website traffic and higher engagement rates
|
||||
across social media platforms.
|
||||
</p>
|
||||
</div>
|
||||
<div className="col-lg-6 order-lg-1">
|
||||
<div className="project__details-inner-img">
|
||||
<img
|
||||
src="/assets/img/case-study/atlas-aviation-1.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6">
|
||||
<div className="project__details-inner-content">
|
||||
<div className="content-inner">
|
||||
<h4>Before</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<h3>Image Coming Soon</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Outdated Website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#40 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Low Local Visibility
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Limited Social Media Engagement
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="content-inner">
|
||||
<h4>After</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<video
|
||||
src="/assets/img/case-study/atlas-aviation.webm"
|
||||
autoPlay
|
||||
muted
|
||||
loop
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Modernized Website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Top 10 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+70% Local Visibility
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+50% Website Traffic
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-12 order-last">
|
||||
<p>
|
||||
The successful partnership between Atlas Aviation and
|
||||
RankRunners highlights our ability to deliver impactful
|
||||
results through a comprehensive approach to website design,
|
||||
SEO, and digital marketing. By addressing key challenges and
|
||||
implementing a tailored strategy, RankRunners significantly
|
||||
enhanced Atlas Aviation’s online presence, driving more
|
||||
qualified leads and reinforcing their position as a top
|
||||
player in the private aviation industry.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This case study underscores RankRunners' commitment to
|
||||
achieving measurable improvements for clients and
|
||||
demonstrates the effectiveness of a well-rounded strategy in
|
||||
surpassing business goals.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
206
app/portfolio/discord-center/page.js
Normal file
206
app/portfolio/discord-center/page.js
Normal file
@ -0,0 +1,206 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import CaseStudyDetail from "@/components/custom/CaseStudyDetail";
|
||||
|
||||
export const metadata = {
|
||||
title: "Case Study - Discord Center | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ProjectDetails() {
|
||||
let slug = "discord-center";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Case Study: Discord Center">
|
||||
<div>
|
||||
<section className="project__details-area">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<CaseStudyDetail slug={slug} />
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<h2>The Challenge We Faced</h2>
|
||||
<p>
|
||||
Discord Center struggled with a fragmented user experience and low
|
||||
visibility in search results, limiting its growth potential. Our agency
|
||||
tackled this by revamping the website’s structure for better navigation
|
||||
and implementing a targeted SEO strategy. This approach significantly
|
||||
enhanced their search engine ranking and user engagement, driving
|
||||
increased traffic and improving overall site performance.
|
||||
</p>
|
||||
<h2>The Strategy We Applied</h2>
|
||||
<h5>Website Revamp and Optimization:</h5>
|
||||
<p>
|
||||
We began by overhauling Discord Center’s existing website to address its
|
||||
fragmented user experience and performance issues. The website was
|
||||
migrated from its outdated framework to a modern, scalable architecture
|
||||
using Next.js. This transition enhanced server-side rendering,
|
||||
streamlined routing, and significantly improved site speed and
|
||||
responsiveness. Our team also redesigned the site’s layout to create a
|
||||
more intuitive and engaging user experience, ensuring that users could
|
||||
easily find and interact with Discord servers.
|
||||
</p>
|
||||
<h5>Targeted SEO Strategy:</h5>
|
||||
<p>
|
||||
To boost Discord Center’s visibility, we implemented a targeted SEO
|
||||
strategy focusing on high-value keywords and optimizing on-page content.
|
||||
This included refining meta tags, improving content relevance, and
|
||||
ensuring that each page was optimized for search engine algorithms. We
|
||||
also built high-quality backlinks and improved the site’s overall
|
||||
authority to enhance its ranking in search results, driving more organic
|
||||
traffic to the site.
|
||||
</p>
|
||||
<h5>Continuous Performance Monitoring and Reporting:</h5>
|
||||
<p>
|
||||
We established a routine of bi-weekly performance reviews to track
|
||||
progress and adjust strategies as needed. During these meetings, we
|
||||
provided detailed reports on key metrics such as traffic growth, keyword
|
||||
rankings, and user engagement. This approach ensured transparency and
|
||||
allowed us to make data-driven decisions to continuously optimize and
|
||||
refine our strategy for maximum impact.
|
||||
</p>
|
||||
<h5>Community Engagement and Feedback Integration:</h5>
|
||||
<p>
|
||||
To further align the site with user needs, we integrated feedback
|
||||
mechanisms and engaged with the Discord community to gather insights.
|
||||
This input was used to make iterative improvements, enhancing user
|
||||
satisfaction and retention. By aligning the website’s features with
|
||||
community expectations, we fostered a more engaged and loyal user base.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<Callback1 />
|
||||
<div>
|
||||
<section className="project__details-area-one">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<div className="project__details-inner">
|
||||
<div className="row align-items-center">
|
||||
<div className="col-lg-6 order-lg-1">
|
||||
<div className="project__details-inner-img">
|
||||
<img
|
||||
src="/assets/img/case-study/discord-center-1.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6">
|
||||
<div className="project__details-inner-content">
|
||||
<h2>The Results We Provided</h2>
|
||||
<p>
|
||||
The revitalization of Discord Center through our
|
||||
targeted strategies led to remarkable improvements in
|
||||
both performance and user engagement. The website
|
||||
overhaul and SEO enhancements resulted in a substantial
|
||||
increase in visibility and user interaction,
|
||||
transforming Discord Center into a leading platform for
|
||||
Discord server listings.
|
||||
</p>
|
||||
|
||||
<div className="content-inner">
|
||||
<h4>Before</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<h3>Image Coming Soon</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Outdated and fragmented website
|
||||
experience
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#45 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Low Domain Authority
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Limited user engagement and traffic
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="content-inner">
|
||||
<h4>After</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<video
|
||||
src="/assets/img/case-study/discord-center.webm"
|
||||
autoPlay
|
||||
muted
|
||||
loop
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Streamlined and modernized website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#8 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+320% Domain Authority
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+400% Growth in Monthly Traffic and User
|
||||
Engagement
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-12 order-last">
|
||||
<p>
|
||||
The comprehensive website revamp and strategic SEO
|
||||
improvements not only elevated Discord Center’s search
|
||||
engine rankings but also significantly enhanced user
|
||||
experience and site performance. These changes have
|
||||
positioned Discord Center as a top player in its niche,
|
||||
resulting in a notable surge in traffic and engagement. This
|
||||
case study illustrates our commitment to delivering
|
||||
measurable outcomes and underscores the effectiveness of our
|
||||
integrated approach to web development and SEO.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
215
app/portfolio/hytale-server-hosting/page.js
Normal file
215
app/portfolio/hytale-server-hosting/page.js
Normal file
@ -0,0 +1,215 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import CaseStudyDetail from "@/components/custom/CaseStudyDetail";
|
||||
|
||||
export const metadata = {
|
||||
title: "Case Study - Hytale Server Hosting | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ProjectDetails() {
|
||||
let slug = "hytale-server-hosting";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Case Study: Hytale Server Hosting">
|
||||
<div>
|
||||
<section className="project__details-area">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<CaseStudyDetail slug={slug} />
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<h2>The Challenge We Faced</h2>
|
||||
<p>
|
||||
Hytale Hosting faced the challenge of penetrating a highly competitive
|
||||
and saturated market with a relatively smaller budget, and less brand
|
||||
familiarity. RankRunners’ tasks involved carrying out a complete website
|
||||
overhaul and implementing a comprehensive SEO strategy with the ultimate
|
||||
goal of bringing Hytale Hosting to the top of the organic search results
|
||||
for relevant search terms.
|
||||
</p>
|
||||
<h2>The Strategy We Applied</h2>
|
||||
<h5>Website Overhaul:</h5>
|
||||
<p>
|
||||
RankRunners started at ground zero by completely revamping the original
|
||||
Hytale Hosting website. This was done by migrating the originally slow
|
||||
and buggy PHP-based website to a Next.js React-based framework which
|
||||
allowed for better server-side rendering, simplified routing, and better
|
||||
overall site performance. These infrastructural changes combined with
|
||||
many other SEO-focused content adjustments allowed Hytale Hosting to
|
||||
both appear and function as a worthy competitor against the seemingly
|
||||
insurmountable competition that the company was initially up against.
|
||||
</p>
|
||||
<h5>Visibility-Boosting SEO Campaign:</h5>
|
||||
<p>
|
||||
RankRunners initiated a comprehensive SEO campaign to boost Hytale
|
||||
Hosting’s organic search visibility. The focus was on strategically
|
||||
positioning Hytale Hosting in search engine results for key terms such
|
||||
as “hytale server hosting” and “hytale hosting,” allowing a company with
|
||||
a fraction of the budget of more-established, multi-purpose game server
|
||||
hosts to dominate relevant organic search terms and have a viable path
|
||||
to dominate their industry for years to come.
|
||||
</p>
|
||||
<h5>Bi-Weekly Progress Meetings:</h5>
|
||||
<p>
|
||||
RankRunners hosted routine bi-weekly progress meetings to keep Hytale
|
||||
Hosting informed about the effectiveness of their digital marketing
|
||||
efforts. Throughout these meetings, detailed analytical reports were
|
||||
presented which showcased the progress being made, areas of improvement,
|
||||
and recommended strategies for future growth. This allowed for full
|
||||
transparency and ongoing collaboration in refining and optimizing the
|
||||
ongoing strategy.
|
||||
</p>
|
||||
<h5>Referral Program:</h5>
|
||||
<p>
|
||||
We provided Hytale Hosting with an additional way to recoup their
|
||||
investment in our SEO and Web Dev/Design services by offering a monetary
|
||||
award for referring other businesses to RankRunners. As a result, many
|
||||
new clients have since also decided to work with RankRunners, resulting
|
||||
in further growth of our agency through word-of-mouth referrals.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<Callback1 />
|
||||
<div>
|
||||
<section className="project__details-area-one">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<div className="project__details-inner">
|
||||
<div className="row align-items-center">
|
||||
<div className="col-lg-6 order-lg-1">
|
||||
<div className="project__details-inner-img">
|
||||
<img
|
||||
src="/assets/img/case-study/hytale-hosting-1.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6">
|
||||
<div className="project__details-inner-content">
|
||||
<h2>The Results We Provided</h2>
|
||||
<p>
|
||||
The collaborative efforts between Hytale Hosting and
|
||||
RankRunners produced outstanding results, including the
|
||||
creation of a more user-friendly and SEO-adherent
|
||||
website, infinitely higher search visibility, increased
|
||||
domain authority and brand recognition, and an
|
||||
exponential increase in average monthly revenue.
|
||||
</p>
|
||||
|
||||
<div className="content-inner">
|
||||
<h4>Before</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<img
|
||||
src="/assets/img/case-study/hytale-hosting-before.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Outdated Website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#32 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Low Domain Authority
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Suboptimal Revenue
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="content-inner">
|
||||
<h4>After</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<video
|
||||
src="/assets/img/case-study/hytale-server-hosting.webm"
|
||||
autoPlay
|
||||
muted
|
||||
loop
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Refined Website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#1 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+270% Domain Authority
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+350% Annual Revenue
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-12 order-last">
|
||||
<p>
|
||||
The success story of Hytale Hosting in the Gameserver
|
||||
hosting industry demonstrates RankRunners’ commitment to
|
||||
consistently delivering tangible results. By executing a
|
||||
flawless SEO strategy, providing transparent communication
|
||||
throughout each bi-weekly meeting, and implementing a
|
||||
complete design overhaul, RankRunners had a significant
|
||||
impact upon Hytale Hosting’s future revenue growth and
|
||||
business expansion.
|
||||
</p>
|
||||
<p>
|
||||
This case study highlights our ability to deliver measurable
|
||||
results, foster client satisfaction, and utilize referral
|
||||
programs for mutual benefit between agency and client. The
|
||||
collaborative efforts made by RankRunners and HytaleHosting
|
||||
demonstrates the effectiveness of a comprehensive approach
|
||||
to SEO and website design in not only achieving, but
|
||||
surpassing business goals.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
182
app/portfolio/jenni-bg-plumbing/page.js
Normal file
182
app/portfolio/jenni-bg-plumbing/page.js
Normal file
@ -0,0 +1,182 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import CaseStudyDetail from "@/components/custom/CaseStudyDetail";
|
||||
|
||||
export const metadata = {
|
||||
title: "Case Study | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ProjectDetails() {
|
||||
let slug = "jenni-bg-plumbing";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Case Study: Jenni BG Plumbing">
|
||||
<div>
|
||||
<section className="project__details-area">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<CaseStudyDetail slug={slug} />
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<h2>The Challenge We Faced</h2>
|
||||
<p>
|
||||
Jenni BG Plumbing faced a critical challenge: they had no online
|
||||
presence and lacked a website, severely limiting their ability to
|
||||
attract and convert customers. In a competitive market where many
|
||||
competitors already had established online profiles, Jenni BG Plumbing
|
||||
needed a strategic overhaul. Our goal was to establish a strong online
|
||||
presence, optimize their local search visibility, and generate
|
||||
high-quality leads for their premium services.
|
||||
</p>
|
||||
<h2>The Strategy We Applied</h2>
|
||||
<h5>Website Creation and Optimization:</h5>
|
||||
<p>
|
||||
RankRunners initiated the creation of a new, fully functional website
|
||||
for Jenni BG Plumbing from scratch. We designed a visually appealing,
|
||||
mobile-responsive site that showcased their services and expertise
|
||||
effectively. The website was optimized for speed and usability, ensuring
|
||||
an excellent user experience and improved search engine rankings.
|
||||
</p>
|
||||
<h5>Google Business Profile Mastery:</h5>
|
||||
<p>
|
||||
We set up and optimized Jenni BG Plumbing's Google Business Profile to
|
||||
enhance their local search visibility. This included providing accurate
|
||||
business information, crafting compelling business descriptions, and
|
||||
managing customer reviews. We ensured the profile was regularly updated
|
||||
with new posts and promotions to engage local customers and boost local
|
||||
search rankings.
|
||||
</p>
|
||||
<h5>Precision Targeted Advertising:</h5>
|
||||
<p>
|
||||
RankRunners launched a targeted paid advertising campaign focusing on
|
||||
high-value services such as main water line and sewer line replacements.
|
||||
Instead of a broad approach, we emphasized the premium nature of these
|
||||
services to attract high-value clients. This strategy aimed to filter
|
||||
out lower-quality leads and concentrate efforts on acquiring customers
|
||||
willing to invest in premium services.
|
||||
</p>
|
||||
<h5>Relentless Performance Monitoring:</h5>
|
||||
<p>
|
||||
We continuously monitored the performance of the website and advertising
|
||||
campaigns to ensure effectiveness. Detailed reports were provided to
|
||||
Jenni BG Plumbing, highlighting key metrics such as website traffic,
|
||||
lead quality, and ad campaign performance. This approach allowed us to
|
||||
make data-driven adjustments and optimize strategies over time.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<Callback1 />
|
||||
<div>
|
||||
<section className="project__details-area-one">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<div className="project__details-inner">
|
||||
<div className="row align-items-center">
|
||||
<div className="col-lg-12">
|
||||
<h2>The Results We Provided</h2>
|
||||
<p>
|
||||
The partnership between RankRunners and Jenni BG Plumbing
|
||||
delivered impressive results:
|
||||
</p>
|
||||
<h5>Website Launch Success:</h5>
|
||||
<p>
|
||||
Jenni BG Plumbing now has a professional, fully functional
|
||||
website that effectively represents their brand and
|
||||
services.
|
||||
</p>
|
||||
<h5>Enhanced Local Visibility:</h5>
|
||||
<p>
|
||||
The optimized Google Business Profile resulted in improved
|
||||
local search rankings and increased visibility among
|
||||
potential customers in their service area.
|
||||
</p>
|
||||
<h5>High-Quality Leads:</h5>
|
||||
<p>
|
||||
The targeted advertising campaign successfully attracted
|
||||
higher-value leads interested in premium services, leading
|
||||
to a more efficient use of marketing resources and higher
|
||||
conversion rates.
|
||||
</p>
|
||||
<h5>Revenue Boost</h5>
|
||||
<p>
|
||||
The focus on high-value services contributed to a
|
||||
significant increase in revenue, demonstrating the
|
||||
effectiveness of our targeted approach.
|
||||
</p>
|
||||
</div>
|
||||
<div className="col-lg-6 order-lg-1">
|
||||
<div className="project__details-inner-img">
|
||||
<img
|
||||
src="/assets/img/case-study/jenni-bg-plumbing-1.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6">
|
||||
<div className="project__details-inner-content">
|
||||
<div className="content-inner">
|
||||
<h4>Before</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-12">
|
||||
<div className="case-study-cta-ba">
|
||||
<h3>Image Coming Soon</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="content-inner">
|
||||
<h4>After</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-12">
|
||||
<div className="case-study-cta-ba">
|
||||
<video
|
||||
src="/assets/img/case-study/jenni-bg-plumbing.webm"
|
||||
autoPlay
|
||||
muted
|
||||
loop
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-12 order-last">
|
||||
<p>
|
||||
This case study highlights RankRunners' ability to deliver
|
||||
tailored solutions that address specific business
|
||||
challenges. By establishing a strong online presence,
|
||||
optimizing local search visibility, and focusing on
|
||||
high-quality lead generation, we significantly enhanced
|
||||
Jenni BG Plumbing's market position and revenue growth. The
|
||||
results reflect our commitment to providing impactful SEO
|
||||
and digital marketing solutions that drive tangible business
|
||||
outcomes.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
205
app/portfolio/multi-group-automotive/page.js
Normal file
205
app/portfolio/multi-group-automotive/page.js
Normal file
@ -0,0 +1,205 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import CaseStudyDetail from "@/components/custom/CaseStudyDetail";
|
||||
|
||||
export const metadata = {
|
||||
title: "Case Study - Multi Group Automotive | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ProjectDetails() {
|
||||
let slug = "multi-group-automotive";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Case Study: Multi Group Automotive">
|
||||
<div>
|
||||
<section className="project__details-area">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<CaseStudyDetail slug={slug} />
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<h2>The Challenge We Faced</h2>
|
||||
<p>
|
||||
Multi Group Automotive faced the challenge of differentiating itself in
|
||||
a highly competitive automotive market with diverse service offerings.
|
||||
The company struggled with low organic search visibility and a website
|
||||
that was not user-friendly. RankRunners’ tasks included a full website
|
||||
overhaul and the implementation of a robust SEO strategy to enhance
|
||||
Multi Group Automotive's online presence and drive more organic traffic
|
||||
to the site.
|
||||
</p>
|
||||
<h2>The Strategy We Appliedc</h2>
|
||||
<h5>Website Overhaul:</h5>
|
||||
<p>
|
||||
RankRunners began by completely redesigning Multi Group Automotive's
|
||||
website. The original website was outdated and lacked a modern user
|
||||
interface. We transitioned the site to a more responsive and visually
|
||||
appealing platform, enhancing user experience with streamlined
|
||||
navigation and faster load times. These changes ensured that the website
|
||||
was optimized for both desktop and mobile users, improving overall site
|
||||
performance.
|
||||
</p>
|
||||
<h5>Comprehensive SEO Campaign:</h5>
|
||||
<p>
|
||||
RankRunners launched an extensive SEO campaign focused on optimizing
|
||||
Multi Group Automotive’s presence for key search terms such as “auto
|
||||
repair,” “car sales,” and “vehicle maintenance.” We implemented on-page
|
||||
SEO techniques, including keyword optimization, meta tag adjustments,
|
||||
and high-quality content creation. Off-page SEO efforts, such as
|
||||
link-building and social media integration, were also employed to boost
|
||||
the site’s domain authority and search engine rankings.
|
||||
</p>
|
||||
<h5>Regular Progress Reviews:</h5>
|
||||
<p>
|
||||
RankRunners conducted regular monthly progress meetings to keep Multi
|
||||
Group Automotive informed about the ongoing effectiveness of our SEO
|
||||
strategies. These meetings included detailed analytical reports
|
||||
highlighting key performance metrics, areas for improvement, and future
|
||||
strategies. This transparency fostered a collaborative environment,
|
||||
enabling continuous optimization and adjustment of our strategies.
|
||||
</p>
|
||||
<h5>Referral Program:</h5>
|
||||
<p>
|
||||
To further benefit Multi Group Automotive, we introduced a referral
|
||||
program that rewarded them for referring new clients to RankRunners.
|
||||
This initiative not only helped Multi Group Automotive to offset their
|
||||
investment in our services but also contributed to the growth of
|
||||
RankRunners through word-of-mouth referrals.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<Callback1 />
|
||||
<div>
|
||||
<section className="project__details-area-one">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<div className="project__details-inner">
|
||||
<div className="row align-items-center">
|
||||
<div className="col-lg-6 order-lg-1">
|
||||
<div className="project__details-inner-img">
|
||||
<img
|
||||
src="/assets/img/case-study/multi-group-automotive-1.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6">
|
||||
<div className="project__details-inner-content">
|
||||
<h2>The Results We Provided</h2>
|
||||
<p>
|
||||
The partnership between Multi Group Automotive and
|
||||
RankRunners resulted in significant improvements in
|
||||
website performance and online visibility. Our
|
||||
collaborative efforts led to the creation of a
|
||||
user-friendly, SEO-optimized website that achieved
|
||||
higher search engine rankings, increased domain
|
||||
authority, and boosted monthly revenue.
|
||||
</p>
|
||||
|
||||
<div className="content-inner">
|
||||
<h4>Before</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<h3>Image Coming Soon</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Outdated Website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#45 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Low Domain Authority
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Suboptimal Revenue
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="content-inner">
|
||||
<h4>After</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<video
|
||||
src="/assets/img/case-study/multi-group-automotive.webm"
|
||||
autoPlay
|
||||
muted
|
||||
loop
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Modernized Website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#3 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+300% Domain Authority
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+400% Annual Revenue
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-12 order-last">
|
||||
<p>
|
||||
The success story of Multi Group Automotive showcases
|
||||
RankRunners' dedication to delivering substantial results.
|
||||
By executing an effective SEO strategy, maintaining
|
||||
transparent communication, and overhauling the website
|
||||
design, RankRunners significantly impacted Multi Group
|
||||
Automotive’s revenue growth and market presence. This case
|
||||
study exemplifies our ability to achieve and surpass
|
||||
business goals, ensuring client satisfaction and fostering
|
||||
long-term growth through innovative digital marketing
|
||||
strategies.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
47
app/portfolio/page.js
Normal file
47
app/portfolio/page.js
Normal file
@ -0,0 +1,47 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Allservices1 from "@/components/sections/Allservices1";
|
||||
import PortfolioSelector from "@/components/custom/PortfolioSelector";
|
||||
|
||||
export const metadata = {
|
||||
title: "Portfolio | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function Services() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Client Portfolio">
|
||||
<section
|
||||
className="services__area-five services__bg-five"
|
||||
data-background="/assets/img/bg/inner_services_bg02.jpg"
|
||||
>
|
||||
<div className="container">
|
||||
{/* <div className="row justify-content-center">
|
||||
<div className="col-xl-6 col-lg-8">
|
||||
<div className="section-title text-center mb-40">
|
||||
<span className="sub-title">WHAT WE OFFER</span>
|
||||
<h2 className="title">We Offer An Effective Wide Area Business solutions</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div> */}
|
||||
<div className="services-item-wrap">
|
||||
<div className="row justify-content-center">
|
||||
<div className="col-xl-7 col-lg-8">
|
||||
<div className="section-title text-center mb-50 tg-heading-subheading animation-style3">
|
||||
<span className="sub-title">
|
||||
COMPANIES <span className="title-color">WE'VE WORKED WITH</span>
|
||||
</span>
|
||||
<h2 className="title tg-element-title">Some of Our Most Recent Client Test</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<PortfolioSelector />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<Allservices1 />
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
211
app/portfolio/social-celebrity/page.js
Normal file
211
app/portfolio/social-celebrity/page.js
Normal file
@ -0,0 +1,211 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import CaseStudyDetail from "@/components/custom/CaseStudyDetail";
|
||||
|
||||
export const metadata = {
|
||||
title: "Case Study - Social Celebrity | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ProjectDetails() {
|
||||
let slug = "social-celebrity";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Case Study: Social Celebrity">
|
||||
<div>
|
||||
<section className="project__details-area">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<CaseStudyDetail slug={slug} />
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<h2>What Social-Celebrity required to succeed</h2>
|
||||
<p>
|
||||
Social Celebrity is a very unique company in an especially competitive
|
||||
market. So to make Social-Celebrity a chart-topper it required a unique
|
||||
and tailor-made approach. Rankrunners had a big influence on the current
|
||||
design of the website. Rankrunners turned a passive website into a
|
||||
well-oiled machine. Rankrunners involvement also revitalized the morale
|
||||
of the company and was instrumental in reviving Social Celebrity back
|
||||
into life! SEO improvement was needed and Rankrunners played a
|
||||
consistent and very important role in achieving that. Social Celebrity
|
||||
went from zero to hero thanks to the services given.
|
||||
</p>
|
||||
<h2>The changes that Rankrunners deemed necessary</h2>
|
||||
<h5>Website Overhaul and boosting of Team Morale:</h5>
|
||||
<p>
|
||||
Rankrunners with the major changes they applied to Social Celebrity’s
|
||||
website were imperative to starting anew with Social Celebrity.
|
||||
Completely revamping the website was among the many things that
|
||||
Rankrunners Assisted with. They optimized the way Google sees Social
|
||||
Celebrity dramatically which is a key factor of SEO improvement, these
|
||||
behind-the-scenes coding changes were so dramatic that our team
|
||||
completely regained morale and started working around the clock. These
|
||||
changes made us skyrocket in Google search results to the point where
|
||||
every day we saw a tangible difference in traffic!
|
||||
</p>
|
||||
<h5>Industry Proven SEO Campaign:</h5>
|
||||
<p>
|
||||
As soon as RankRunners they initiated a comprehensive SEO campaign to
|
||||
boost Social Celebrity’s organic search statistics. The focus was on
|
||||
positioning Social Celebrity in such a way as to dramatically improve
|
||||
key term search results, for example: “Gain Social media followers fast”
|
||||
or “How do I get social media Followers” allowing a once successful
|
||||
company to flourish in the newer internet era. This resulted in Social
|
||||
Celebrity coming out of the blind corner of other big companies in the
|
||||
same sector and completely prove that Social Celebrity has what it
|
||||
takes!
|
||||
</p>
|
||||
<h5>Weekly Progress Meetings:</h5>
|
||||
<p>
|
||||
RankRunners decided that weekly progress updates were required to keep
|
||||
morale up and get Social Celebrity back onto the map. In these meetings
|
||||
there were comprehensive but easy-to-understand showings of information
|
||||
about how Rankrunners was improving Social Celebrity’s online presence.
|
||||
This showed everything from detailed reports to summarized progress
|
||||
reports. But also what was needed to propel the company even further, we
|
||||
found that this was a great inspiration for our staff.
|
||||
</p>
|
||||
<h5>Referral Program:</h5>
|
||||
<p>
|
||||
Rankrunners gave Social Celebrity the unique opportunity to recover the
|
||||
initial investment by proposing that if Social Celebrity referred other
|
||||
companies to Rankrunners there would be a monetary reward. This shows
|
||||
Rankrunners’ commitment to their customers. As a result of this
|
||||
groundbreaking tactic, Rankrunners has many more success stories in the
|
||||
works!
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<Callback1 />
|
||||
<div>
|
||||
<section className="project__details-area-one">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<div className="project__details-inner">
|
||||
<div className="row align-items-center">
|
||||
<div className="col-lg-6 order-lg-1">
|
||||
<div className="project__details-inner-img">
|
||||
<img
|
||||
src="/assets/img/case-study/social-celebrity-1.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6">
|
||||
<div className="project__details-inner-content">
|
||||
<h2>The Results We Were Able to Provide</h2>
|
||||
<p>
|
||||
The efforts made in collaboration between Social
|
||||
Celebrity and Rankrunners produced a stellar outcome,
|
||||
the SEO improvements resulted in a renewed vigor of the
|
||||
Social Celebrity team to the point where it was
|
||||
propelled to stardom once again.
|
||||
</p>
|
||||
|
||||
<div className="content-inner">
|
||||
<h4>Before</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<h3>Image Coming Soon</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Severely Unoptimized Website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#15 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Lower than average Domain Authority
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Below required team morale
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="content-inner">
|
||||
<h4>After</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<img
|
||||
src="/assets/img/case-study/social-celebrity.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Completely Redone Website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#3 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+240% Domain Authority
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+290% Annual Revenue
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-12 order-last">
|
||||
<p>
|
||||
The completely revamped Social Celebrity is what you can
|
||||
certainly call a “success story” The complete overhaul of
|
||||
the website and continuous updates from RankRunners resulted
|
||||
in a completely renewed sense of achievement and renewed
|
||||
vigor of the team. By taking down each negative feature of
|
||||
Social Celebrity Rankrunners managed to deliver tangible
|
||||
results and saved a company from the brink of existence This
|
||||
case study highlights that Rankrunners does not only improve
|
||||
the mechanical side of things but also has a profound
|
||||
psychological impact on the inner goings of a company. The
|
||||
results of the combined efforts of Rankrunners and Social
|
||||
Celebrity show that revamping a website consists of more
|
||||
than just the mechanical and logical side of things.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
161
app/portfolio/taqueria-del-mar/page.js
Normal file
161
app/portfolio/taqueria-del-mar/page.js
Normal file
@ -0,0 +1,161 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import CaseStudyDetail from "@/components/custom/CaseStudyDetail";
|
||||
|
||||
export const metadata = {
|
||||
title: "Case Study | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ProjectDetails() {
|
||||
let slug = "taqueria-del-mar";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Case Study: Taqueria del Mar">
|
||||
<div>
|
||||
<section className="project__details-area">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<CaseStudyDetail slug={slug} />
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<h2>The Challenge We Faced</h2>
|
||||
<p>
|
||||
Taqueria Del Mar, a beloved local eatery, faced a complex crisis: they
|
||||
were struggling to differentiate themselves in a saturated market. Their
|
||||
location wasn’t attracting enough customers, and retaining them was
|
||||
proving even harder. With a limited budget, they needed a powerful
|
||||
strategy to capture attention and drive significant business growth.
|
||||
</p>
|
||||
<h2>The Strategy We Applied</h2>
|
||||
<h5>Website Overhaul:</h5>
|
||||
<p>
|
||||
We transformed Taqueria Del Mar’s website into a captivating,
|
||||
user-friendly platform. We revamped the design for visual appeal,
|
||||
optimized the layout for speed, and enhanced its search engine
|
||||
visibility. These changes ensured that their site not only attracted
|
||||
more visitors but also ranked higher in local search results.
|
||||
</p>
|
||||
<h5>Catering Strategy:</h5>
|
||||
<p>
|
||||
To cut through the local competition, we shifted Taqueria Del Mar’s
|
||||
focus to catering services. This allowed them to tap into higher-value
|
||||
opportunities and attract new clientele. We crafted compelling marketing
|
||||
materials that highlighted their catering offerings, setting them apart
|
||||
from local competitors and driving interest in their premium services.
|
||||
</p>
|
||||
<h5>Social Media Enhancement:</h5>
|
||||
<p>
|
||||
We revitalized their Instagram presence with dynamic content and
|
||||
targeted advertising. By creating engaging posts and actively
|
||||
interacting with the local community, we significantly boosted their
|
||||
online visibility and drew more traffic to their website. This increased
|
||||
engagement helped build a loyal customer base and enhanced their
|
||||
catering appeal.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<Callback1 />
|
||||
<div>
|
||||
<section className="project__details-area-one">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<div className="project__details-inner">
|
||||
<div className="row align-items-center">
|
||||
<div className="col-lg-12">
|
||||
<h2>The Results We Provided</h2>
|
||||
<h5>Elevated Online Presence:</h5>
|
||||
<p>
|
||||
The revamped website and SEO improvements dramatically
|
||||
increased Taqueria Del Mar’s visibility in local search
|
||||
results, making them easier to find online.
|
||||
</p>
|
||||
<h5>Successful Catering Initiative:</h5>
|
||||
<p>
|
||||
The shift to catering paid impressive dividends. They
|
||||
experienced a substantial rise in catering orders, which not
|
||||
only set them apart but also significantly boosted their
|
||||
revenue.
|
||||
</p>
|
||||
<h5>Enhanced Social Media Impact:</h5>
|
||||
<p>
|
||||
Their Instagram following surged, and engagement levels
|
||||
soared. This spike in social media activity drove more
|
||||
visitors to their website and heightened interest in their
|
||||
catering services.
|
||||
</p>
|
||||
</div>
|
||||
<div className="col-lg-6 order-lg-1">
|
||||
<div className="project__details-inner-img">
|
||||
<img
|
||||
src="/assets/img/case-study/taqueria-del-mar-1.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6">
|
||||
<div className="project__details-inner-content">
|
||||
<div className="content-inner">
|
||||
<h4>Before</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-12">
|
||||
<div className="case-study-cta-ba">
|
||||
<img
|
||||
src="/assets/img/case-study/taqueria-del-mar-before.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="content-inner">
|
||||
<h4>After</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-12">
|
||||
<div className="case-study-cta-ba">
|
||||
<video
|
||||
src="/assets/img/case-study/taqueria-del-mar.webm"
|
||||
autoPlay
|
||||
muted
|
||||
loop
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-12 order-last">
|
||||
<p>
|
||||
Overall, RankRunners empowered Taqueria Del Mar to conquer
|
||||
their market challenges by focusing on a targeted catering
|
||||
strategy and enhancing their online presence. Our approach
|
||||
delivered transformative results, driving their success and
|
||||
elevating their business to new heights.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
174
app/portfolio/the-gurvey-law-group/page.js
Normal file
174
app/portfolio/the-gurvey-law-group/page.js
Normal file
@ -0,0 +1,174 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import CaseStudyDetail from "@/components/custom/CaseStudyDetail";
|
||||
|
||||
export const metadata = {
|
||||
title: "Case Study | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ProjectDetails() {
|
||||
let slug = "the-gurvey-law-group";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Case Study: The Gurvey Law Group">
|
||||
<div>
|
||||
<section className="project__details-area">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<CaseStudyDetail slug={slug} />
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<h2>The Challenge We Faced</h2>
|
||||
<p>
|
||||
The Gurvey Law Group, a leading name in legal services, grappled with a
|
||||
dated website that undermined their competitive edge. The existing site
|
||||
not only failed to captivate potential clients but also suffered from
|
||||
poor search engine visibility, resulting in minimal lead generation.
|
||||
RankRunners was entrusted with the monumental task of overhauling their
|
||||
website and transforming it into a powerful client acquisition tool.
|
||||
</p>
|
||||
<h2>The Strategy We Applied</h2>
|
||||
<h5>Dynamic Website Redesign:</h5>
|
||||
<p>
|
||||
RankRunners spearheaded a dramatic redesign of the Gurvey Law Group’s
|
||||
website. We transitioned them from an outdated, underperforming site to
|
||||
a cutting-edge, user-centric platform. The new design emphasized clarity
|
||||
and professionalism, featuring intuitive navigation and compelling
|
||||
visuals to highlight their legal expertise.
|
||||
</p>
|
||||
<h5>Powerful Content Optimization:</h5>
|
||||
<p>
|
||||
We overhauled the website’s content, enriching it with high-impact,
|
||||
keyword-optimized text that spoke directly to their target audience.
|
||||
This included detailed service descriptions, attorney profiles, and
|
||||
client testimonials, all crafted to engage visitors and boost search
|
||||
engine rankings.
|
||||
</p>
|
||||
<h5>Strategic SEO Implementation:</h5>
|
||||
<p>
|
||||
Our SEO strategy was aggressive and targeted. We performed extensive
|
||||
keyword optimization, revamped meta tags, and improved site speed and
|
||||
mobile functionality. Local SEO was a key focus, ensuring the Gurvey Law
|
||||
Group ranked prominently in local search results and attracted
|
||||
high-value clients in their geographic area.
|
||||
</p>
|
||||
<h5>Effective Marketing Integration:</h5>
|
||||
<p>
|
||||
RankRunners integrated advanced marketing tactics, including
|
||||
strategically placed lead capture forms and compelling calls-to-action.
|
||||
This approach not only drew more visitors but also converted them into
|
||||
qualified leads, resulting in a surge of client inquiries and contracts.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<Callback1 />
|
||||
<div>
|
||||
<section className="project__details-area-one">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<div className="project__details-inner">
|
||||
<div className="row align-items-center">
|
||||
<div className="col-lg-12">
|
||||
<h2>The Results We Provided</h2>
|
||||
<p>
|
||||
The partnership between the Gurvey Law Group and RankRunners
|
||||
delivered outstanding results. The revamped website not only
|
||||
enhanced user experience but also drove impressive gains in
|
||||
key metrics:
|
||||
</p>
|
||||
<h5>Surge in Web Traffic:</h5>
|
||||
<p>
|
||||
The new site experienced a dramatic increase in organic
|
||||
traffic, thanks to improved search rankings and compelling
|
||||
content.
|
||||
</p>
|
||||
<h5>Boosted Conversion Rates:</h5>
|
||||
<p>
|
||||
Enhanced design and strategic content placement led to a
|
||||
significant rise in client inquiries and contract signings.
|
||||
</p>
|
||||
<h5>Elevated Online Visibility:</h5>
|
||||
<p>
|
||||
The aggressive SEO tactics positioned the Gurvey Law Group
|
||||
at the forefront of search results, elevating their online
|
||||
presence and reputation.
|
||||
</p>
|
||||
</div>
|
||||
<div className="col-lg-6 order-lg-1">
|
||||
<div className="project__details-inner-img">
|
||||
<img
|
||||
src="/assets/img/case-study/the-gurvey-law-group-1.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6">
|
||||
<div className="project__details-inner-content">
|
||||
<div className="content-inner">
|
||||
<h4>Before</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-12">
|
||||
<div className="case-study-cta-ba">
|
||||
<img
|
||||
src="/assets/img/case-study/the-gurvey-law-group-before.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="content-inner">
|
||||
<h4>After</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-12">
|
||||
<div className="case-study-cta-ba">
|
||||
<video
|
||||
src="/assets/img/case-study/the-gurvey-law-group.webm"
|
||||
autoPlay
|
||||
muted
|
||||
loop
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-12 order-last">
|
||||
<p>
|
||||
This success story illustrates RankRunners’ ability to
|
||||
deliver transformative results through innovative design and
|
||||
strategic SEO. By executing a bold, comprehensive approach,
|
||||
RankRunners not only revitalized the Gurvey Law Group’s
|
||||
online presence but also drove substantial business growth.
|
||||
This case study underscores our commitment to achieving
|
||||
extraordinary outcomes and setting new standards in digital
|
||||
marketing and web design.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
245
app/portfolio/the-spark-coffee/page.js
Normal file
245
app/portfolio/the-spark-coffee/page.js
Normal file
@ -0,0 +1,245 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import CaseStudyDetail from "@/components/custom/CaseStudyDetail";
|
||||
|
||||
export const metadata = {
|
||||
title: "Case Study | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ProjectDetails() {
|
||||
let slug = "the-spark-coffee";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Case Study: The Spark Coffee">
|
||||
<div>
|
||||
<section className="project__details-area">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<CaseStudyDetail slug={slug} />
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<h2>The Challenge We Faced</h2>
|
||||
<p>
|
||||
The Spark, a local café with a strong community presence, was grappling
|
||||
with several digital challenges. Despite their excellent reputation and
|
||||
loyal customer base, their website was underperforming in search engine
|
||||
rankings, leading to limited online visibility and reduced foot traffic.
|
||||
The site suffered from outdated design, slow load times, and ineffective
|
||||
SEO practices. RankRunners was tasked with revitalizing The Spark's
|
||||
online presence to better reflect their brand, attract more customers,
|
||||
and enhance their search engine rankings.
|
||||
</p>
|
||||
<h2>The Strategy We Applied</h2>
|
||||
<h5>Website Revamp:</h5>
|
||||
<p>
|
||||
RankRunners initiated a comprehensive overhaul of The Spark's website.
|
||||
We migrated the site from its outdated platform to a modern, responsive
|
||||
framework, significantly improving load times and overall user
|
||||
experience. The new design featured a clean, visually appealing layout
|
||||
that better showcased the café's unique ambiance and offerings. We also
|
||||
ensured that the site was mobile-friendly to cater to on-the-go users
|
||||
searching for local coffee spots.
|
||||
</p>
|
||||
<h5>Targeted SEO Campaign:</h5>
|
||||
<p>
|
||||
Our SEO strategy focused on enhancing The Spark’s online visibility
|
||||
through targeted keyword optimization and content strategies. We
|
||||
identified high-value local search terms such as “best coffee near me”
|
||||
and “top coffee shops in [City]” and optimized the site’s content
|
||||
accordingly. This included updating meta tags, improving on-page SEO
|
||||
elements, and creating engaging, keyword-rich content that resonated
|
||||
with local customers.
|
||||
</p>
|
||||
<h5>Local SEO Optimization:</h5>
|
||||
<p>
|
||||
Given the nature of the business, local SEO was crucial. We optimized
|
||||
The Spark’s Google My Business profile, ensuring accurate and up-to-date
|
||||
information. This included adding compelling photos, updating business
|
||||
hours, and encouraging satisfied customers to leave positive reviews.
|
||||
This local focus aimed to increase the café's visibility in local search
|
||||
results and Google Maps.
|
||||
</p>
|
||||
<h5>Regular Progress Updates:</h5>
|
||||
<p>
|
||||
RankRunners provided The Spark with bi-weekly progress reports. These
|
||||
meetings included detailed analytics on website performance, keyword
|
||||
rankings, and traffic sources. We used these insights to refine our
|
||||
strategy continuously and ensure that The Spark remained on track to
|
||||
meet its digital marketing goals.
|
||||
</p>
|
||||
<h5>Social Media Integration:</h5>
|
||||
<p>
|
||||
To complement the website revamp and SEO efforts, we integrated social
|
||||
media into the strategy. We designed engaging social media campaigns
|
||||
that promoted The Spark’s offerings, events, and customer stories. This
|
||||
helped drive traffic to the website and further enhanced the café’s
|
||||
brand presence online.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<Callback1 />
|
||||
<div>
|
||||
<section className="project__details-area-one">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<div className="project__details-inner">
|
||||
<div className="row align-items-center">
|
||||
<div className="col-lg-12">
|
||||
<h2>Key Achievements</h2>
|
||||
<h5>Revamped Website:</h5>
|
||||
<p>
|
||||
The new site featured an updated design, improved load
|
||||
times, and enhanced functionality, providing a better user
|
||||
experience and aligning more closely with The Spark’s brand.
|
||||
</p>
|
||||
<h5>Improved Search Rankings:</h5>
|
||||
<p>
|
||||
The Spark’s website climbed from a #30 average search
|
||||
position to the top 5 positions for key local search terms.
|
||||
</p>
|
||||
<h5>Enhanced Local Visibility:</h5>
|
||||
<p>
|
||||
The optimized Google My Business profile led to a 50%
|
||||
increase in local search visibility and a 40% increase in
|
||||
foot traffic from local customers.
|
||||
</p>
|
||||
<h5>Increased Engagement:</h5>
|
||||
<p>
|
||||
Social media integration and engaging content contributed to
|
||||
a 60% increase in website traffic and a noticeable rise in
|
||||
customer interactions and reviews.
|
||||
</p>
|
||||
</div>
|
||||
<div className="col-lg-6 order-lg-1">
|
||||
<div className="project__details-inner-img">
|
||||
<img
|
||||
src="/assets/img/case-study/the-spark-coffee-1.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6">
|
||||
<div className="project__details-inner-content">
|
||||
<h2>The Results We Provided</h2>
|
||||
<p>
|
||||
The collaboration between The Spark and RankRunners
|
||||
yielded impressive results. The revamped website,
|
||||
combined with an effective SEO and local optimization
|
||||
strategy, led to a substantial increase in online
|
||||
visibility and customer engagement.
|
||||
</p>
|
||||
|
||||
<div className="content-inner">
|
||||
<h4>Before</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<h3>Image Coming Soon</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Outdated Website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#30 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Low Local Visibility
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Minimal Social Media Engagement
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="content-inner">
|
||||
<h4>After</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<video
|
||||
src="/assets/img/case-study/the-spark-coffee.webm"
|
||||
autoPlay
|
||||
muted
|
||||
loop
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Modernized Website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Top 5 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+50% Local Visibility
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+60% Website Traffic
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-12 order-last">
|
||||
<p>
|
||||
The Spark’s revitalized online presence not only reflected
|
||||
their brand’s unique charm but also significantly boosted
|
||||
their search engine performance and local engagement. The
|
||||
combined efforts of RankRunners in website design, SEO, and
|
||||
local optimization resulted in a more vibrant and successful
|
||||
digital footprint for The Spark, ultimately driving more
|
||||
customers through their doors.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This case study demonstrates RankRunners’ commitment to
|
||||
delivering tailored solutions that address specific client
|
||||
challenges and achieve measurable improvements. The Spark’s
|
||||
success story highlights our ability to transform digital
|
||||
strategies into tangible business growth, fostering a
|
||||
thriving online presence that complements their exceptional
|
||||
in-person service.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
206
app/portfolio/video-games/discord-center/page.js
Normal file
206
app/portfolio/video-games/discord-center/page.js
Normal file
@ -0,0 +1,206 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import CaseStudyDetail from "@/components/custom/CaseStudyDetail";
|
||||
|
||||
export const metadata = {
|
||||
title: "Case Study - Discord Center | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ProjectDetails() {
|
||||
let slug = "discord-center";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Case Study: Discord Center">
|
||||
<div>
|
||||
<section className="project__details-area">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<CaseStudyDetail slug={slug} />
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<h2>The Challenge We Faced</h2>
|
||||
<p>
|
||||
Discord Center struggled with a fragmented user experience and low
|
||||
visibility in search results, limiting its growth potential. Our agency
|
||||
tackled this by revamping the website’s structure for better navigation
|
||||
and implementing a targeted SEO strategy. This approach significantly
|
||||
enhanced their search engine ranking and user engagement, driving
|
||||
increased traffic and improving overall site performance.
|
||||
</p>
|
||||
<h2>The Strategy We Applied</h2>
|
||||
<h5>Website Revamp and Optimization:</h5>
|
||||
<p>
|
||||
We began by overhauling Discord Center’s existing website to address its
|
||||
fragmented user experience and performance issues. The website was
|
||||
migrated from its outdated framework to a modern, scalable architecture
|
||||
using Next.js. This transition enhanced server-side rendering,
|
||||
streamlined routing, and significantly improved site speed and
|
||||
responsiveness. Our team also redesigned the site’s layout to create a
|
||||
more intuitive and engaging user experience, ensuring that users could
|
||||
easily find and interact with Discord servers.
|
||||
</p>
|
||||
<h5>Targeted SEO Strategy:</h5>
|
||||
<p>
|
||||
To boost Discord Center’s visibility, we implemented a targeted SEO
|
||||
strategy focusing on high-value keywords and optimizing on-page content.
|
||||
This included refining meta tags, improving content relevance, and
|
||||
ensuring that each page was optimized for search engine algorithms. We
|
||||
also built high-quality backlinks and improved the site’s overall
|
||||
authority to enhance its ranking in search results, driving more organic
|
||||
traffic to the site.
|
||||
</p>
|
||||
<h5>Continuous Performance Monitoring and Reporting:</h5>
|
||||
<p>
|
||||
We established a routine of bi-weekly performance reviews to track
|
||||
progress and adjust strategies as needed. During these meetings, we
|
||||
provided detailed reports on key metrics such as traffic growth, keyword
|
||||
rankings, and user engagement. This approach ensured transparency and
|
||||
allowed us to make data-driven decisions to continuously optimize and
|
||||
refine our strategy for maximum impact.
|
||||
</p>
|
||||
<h5>Community Engagement and Feedback Integration:</h5>
|
||||
<p>
|
||||
To further align the site with user needs, we integrated feedback
|
||||
mechanisms and engaged with the Discord community to gather insights.
|
||||
This input was used to make iterative improvements, enhancing user
|
||||
satisfaction and retention. By aligning the website’s features with
|
||||
community expectations, we fostered a more engaged and loyal user base.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<Callback1 />
|
||||
<div>
|
||||
<section className="project__details-area-one">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<div className="project__details-inner">
|
||||
<div className="row align-items-center">
|
||||
<div className="col-lg-6 order-lg-1">
|
||||
<div className="project__details-inner-img">
|
||||
<img
|
||||
src="/assets/img/case-study/discord-center-1.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6">
|
||||
<div className="project__details-inner-content">
|
||||
<h2>The Results We Provided</h2>
|
||||
<p>
|
||||
The revitalization of Discord Center through our
|
||||
targeted strategies led to remarkable improvements in
|
||||
both performance and user engagement. The website
|
||||
overhaul and SEO enhancements resulted in a substantial
|
||||
increase in visibility and user interaction,
|
||||
transforming Discord Center into a leading platform for
|
||||
Discord server listings.
|
||||
</p>
|
||||
|
||||
<div className="content-inner">
|
||||
<h4>Before</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<h3>Image Coming Soon</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Outdated and fragmented website
|
||||
experience
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#45 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Low Domain Authority
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Limited user engagement and traffic
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="content-inner">
|
||||
<h4>After</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<video
|
||||
src="/assets/img/case-study/discord-center.webm"
|
||||
autoPlay
|
||||
muted
|
||||
loop
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Streamlined and modernized website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#8 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+320% Domain Authority
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+400% Growth in Monthly Traffic and User
|
||||
Engagement
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-12 order-last">
|
||||
<p>
|
||||
The comprehensive website revamp and strategic SEO
|
||||
improvements not only elevated Discord Center’s search
|
||||
engine rankings but also significantly enhanced user
|
||||
experience and site performance. These changes have
|
||||
positioned Discord Center as a top player in its niche,
|
||||
resulting in a notable surge in traffic and engagement. This
|
||||
case study illustrates our commitment to delivering
|
||||
measurable outcomes and underscores the effectiveness of our
|
||||
integrated approach to web development and SEO.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
215
app/portfolio/video-games/hytale-server-hosting/page.js
Normal file
215
app/portfolio/video-games/hytale-server-hosting/page.js
Normal file
@ -0,0 +1,215 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import CaseStudyDetail from "@/components/custom/CaseStudyDetail";
|
||||
|
||||
export const metadata = {
|
||||
title: "Case Study - Hytale Server Hosting | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ProjectDetails() {
|
||||
let slug = "hytale-server-hosting";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Case Study: Hytale Server Hosting">
|
||||
<div>
|
||||
<section className="project__details-area">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<CaseStudyDetail slug={slug} />
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<h2>The Challenge We Faced</h2>
|
||||
<p>
|
||||
Hytale Hosting faced the challenge of penetrating a highly competitive
|
||||
and saturated market with a relatively smaller budget, and less brand
|
||||
familiarity. RankRunners’ tasks involved carrying out a complete website
|
||||
overhaul and implementing a comprehensive SEO strategy with the ultimate
|
||||
goal of bringing Hytale Hosting to the top of the organic search results
|
||||
for relevant search terms.
|
||||
</p>
|
||||
<h2>The Strategy We Applied</h2>
|
||||
<h5>Website Overhaul:</h5>
|
||||
<p>
|
||||
RankRunners started at ground zero by completely revamping the original
|
||||
Hytale Hosting website. This was done by migrating the originally slow
|
||||
and buggy PHP-based website to a Next.js React-based framework which
|
||||
allowed for better server-side rendering, simplified routing, and better
|
||||
overall site performance. These infrastructural changes combined with
|
||||
many other SEO-focused content adjustments allowed Hytale Hosting to
|
||||
both appear and function as a worthy competitor against the seemingly
|
||||
insurmountable competition that the company was initially up against.
|
||||
</p>
|
||||
<h5>Visibility-Boosting SEO Campaign:</h5>
|
||||
<p>
|
||||
RankRunners initiated a comprehensive SEO campaign to boost Hytale
|
||||
Hosting’s organic search visibility. The focus was on strategically
|
||||
positioning Hytale Hosting in search engine results for key terms such
|
||||
as “hytale server hosting” and “hytale hosting,” allowing a company with
|
||||
a fraction of the budget of more-established, multi-purpose game server
|
||||
hosts to dominate relevant organic search terms and have a viable path
|
||||
to dominate their industry for years to come.
|
||||
</p>
|
||||
<h5>Bi-Weekly Progress Meetings:</h5>
|
||||
<p>
|
||||
RankRunners hosted routine bi-weekly progress meetings to keep Hytale
|
||||
Hosting informed about the effectiveness of their digital marketing
|
||||
efforts. Throughout these meetings, detailed analytical reports were
|
||||
presented which showcased the progress being made, areas of improvement,
|
||||
and recommended strategies for future growth. This allowed for full
|
||||
transparency and ongoing collaboration in refining and optimizing the
|
||||
ongoing strategy.
|
||||
</p>
|
||||
<h5>Referral Program:</h5>
|
||||
<p>
|
||||
We provided Hytale Hosting with an additional way to recoup their
|
||||
investment in our SEO and Web Dev/Design services by offering a monetary
|
||||
award for referring other businesses to RankRunners. As a result, many
|
||||
new clients have since also decided to work with RankRunners, resulting
|
||||
in further growth of our agency through word-of-mouth referrals.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<Callback1 />
|
||||
<div>
|
||||
<section className="project__details-area-one">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<div className="project__details-inner">
|
||||
<div className="row align-items-center">
|
||||
<div className="col-lg-6 order-lg-1">
|
||||
<div className="project__details-inner-img">
|
||||
<img
|
||||
src="/assets/img/case-study/hytale-hosting-1.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6">
|
||||
<div className="project__details-inner-content">
|
||||
<h2>The Results We Provided</h2>
|
||||
<p>
|
||||
The collaborative efforts between Hytale Hosting and
|
||||
RankRunners produced outstanding results, including the
|
||||
creation of a more user-friendly and SEO-adherent
|
||||
website, infinitely higher search visibility, increased
|
||||
domain authority and brand recognition, and an
|
||||
exponential increase in average monthly revenue.
|
||||
</p>
|
||||
|
||||
<div className="content-inner">
|
||||
<h4>Before</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<img
|
||||
src="/assets/img/case-study/hytale-hosting-before.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Outdated Website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#32 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Low Domain Authority
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Suboptimal Revenue
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="content-inner">
|
||||
<h4>After</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<video
|
||||
src="/assets/img/case-study/hytale-server-hosting.webm"
|
||||
autoPlay
|
||||
muted
|
||||
loop
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Refined Website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#1 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+270% Domain Authority
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+350% Annual Revenue
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-12 order-last">
|
||||
<p>
|
||||
The success story of Hytale Hosting in the Gameserver
|
||||
hosting industry demonstrates RankRunners’ commitment to
|
||||
consistently delivering tangible results. By executing a
|
||||
flawless SEO strategy, providing transparent communication
|
||||
throughout each bi-weekly meeting, and implementing a
|
||||
complete design overhaul, RankRunners had a significant
|
||||
impact upon Hytale Hosting’s future revenue growth and
|
||||
business expansion.
|
||||
</p>
|
||||
<p>
|
||||
This case study highlights our ability to deliver measurable
|
||||
results, foster client satisfaction, and utilize referral
|
||||
programs for mutual benefit between agency and client. The
|
||||
collaborative efforts made by RankRunners and HytaleHosting
|
||||
demonstrates the effectiveness of a comprehensive approach
|
||||
to SEO and website design in not only achieving, but
|
||||
surpassing business goals.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
102
app/portfolio/video-games/page.js
Normal file
102
app/portfolio/video-games/page.js
Normal file
@ -0,0 +1,102 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Allservices1 from "@/components/sections/Allservices1";
|
||||
import Link from "next/link";
|
||||
|
||||
export const metadata = {
|
||||
title: "Portfolio | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function Services() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Video Games Portfolio">
|
||||
<section
|
||||
className="services__area-five services__bg-five"
|
||||
data-background="/assets/img/bg/inner_services_bg02.jpg"
|
||||
>
|
||||
<div className="container">
|
||||
{/* <div className="row justify-content-center">
|
||||
<div className="col-xl-6 col-lg-8">
|
||||
<div className="section-title text-center mb-40">
|
||||
<span className="sub-title">WHAT WE OFFER</span>
|
||||
<h2 className="title">We Offer An Effective Wide Area Business solutions</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div> */}
|
||||
<div className="services-item-wrap">
|
||||
<div className="row justify-content-center">
|
||||
<div className="col-xl-7 col-lg-8">
|
||||
<div className="section-title text-center mb-50 tg-heading-subheading animation-style3">
|
||||
<span className="sub-title">
|
||||
COMPANIES <span className="title-color">WE'VE WORKED WITH</span>
|
||||
</span>
|
||||
<h2 className="title tg-element-title">
|
||||
Some of Our Most Recent Video Games Clients
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="row justify-content-start">
|
||||
<div className="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="services-item shine-animate-item">
|
||||
<div className="services-thumb">
|
||||
<Link
|
||||
href="/portfolio/video-games/discord-center"
|
||||
className="shine-animate"
|
||||
>
|
||||
<img src="/assets/img/custom/project-3.png" alt="" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="services-content">
|
||||
<h4 className="title">
|
||||
<Link href="/portfolio/video-games/discord-center">Discord Center</Link>
|
||||
</h4>
|
||||
<p>
|
||||
Server Listing Website utilized by millions of users of the popular
|
||||
communicaton platform - "Discord" which specializes in growing Discord
|
||||
servers.
|
||||
</p>
|
||||
<Link href="/portfolio/video-games/discord-center" className="btn">
|
||||
View Case Study
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="services-item shine-animate-item">
|
||||
<div className="services-thumb">
|
||||
<Link
|
||||
href="/portfolio/video-games/hytale-server-hosting"
|
||||
className="shine-animate"
|
||||
>
|
||||
<img src="/assets/img/custom/project-5.png" alt="" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="services-content">
|
||||
<h4 className="title">
|
||||
<Link href="/portfolio/video-games/hytale-server-hosting">
|
||||
Hytale Server Hosting
|
||||
</Link>
|
||||
</h4>
|
||||
<p>
|
||||
Server Hosting company for the upcoming, highly anticipated videogame -
|
||||
Hytale, being developed by Tencent, the parent-company for TikTok & Riot
|
||||
Games.
|
||||
</p>
|
||||
<Link href="/portfolio/video-games/hytale-server-hosting" className="btn">
|
||||
View Case Study
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<Allservices1 />
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
218
app/portfolio/water-main-line-replacement/page.js
Normal file
218
app/portfolio/water-main-line-replacement/page.js
Normal file
@ -0,0 +1,218 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import CaseStudyDetail from "@/components/custom/CaseStudyDetail";
|
||||
|
||||
export const metadata = {
|
||||
title: "Case Study | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ProjectDetails() {
|
||||
let slug = "water-main-line-replacement";
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Case Study: Water Main Line Replacement LLC">
|
||||
<div>
|
||||
<section className="project__details-area">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<CaseStudyDetail slug={slug} />
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<h2>The Challenge We Faced</h2>
|
||||
<p>
|
||||
WaterMainLineReplacement.com had a great service but struggled to stand
|
||||
out online in a crowded local market. Their visibility was low, their
|
||||
website wasn’t optimized, and their local service ads were
|
||||
underperforming. Additionally, their Google Business Profile (GBP)
|
||||
wasn’t set up to attract or engage local customers effectively. Our
|
||||
mission at RankRunners was to boost their online presence and improve
|
||||
their search rankings so they could connect with more local customers
|
||||
who needed their services.
|
||||
</p>
|
||||
<h2>The Strategy We Applied</h2>
|
||||
<h5>Local Service Ad Campaign:</h5>
|
||||
<p>
|
||||
We designed and launched a focused local service ad campaign to enhance
|
||||
WaterMainLineReplacement.com’s presence in local searches. By zeroing in
|
||||
on specific areas and crafting compelling ad copy, we aimed to attract
|
||||
more potential customers and increase the effectiveness of their
|
||||
advertising spend.
|
||||
</p>
|
||||
<h5>Google Business Profile (GBP) Setup and Optimization:</h5>
|
||||
<p>
|
||||
We took charge of setting up and fine-tuning their Google Business
|
||||
Profile. This involved making sure all the information was accurate,
|
||||
adding high-quality photos, encouraging customer reviews, and using GBP
|
||||
features to boost their visibility and interaction with local searchers.
|
||||
</p>
|
||||
<h5>Site Development:</h5>
|
||||
<p>
|
||||
We overhauled their website to improve both its design and
|
||||
functionality. The new site was made more user-friendly and
|
||||
mobile-responsive, which helped with faster loading times and easier
|
||||
navigation. This not only enhanced the user experience but also
|
||||
supported better search engine optimization.
|
||||
</p>
|
||||
<h5>Improved Domain Authority and Ranking:</h5>
|
||||
<p>
|
||||
Our SEO strategy focused on increasing the site’s domain authority and
|
||||
search engine rankings. We worked on optimizing the site’s content with
|
||||
relevant keywords, improving technical aspects of the site, and building
|
||||
quality backlinks to boost their visibility and search performance.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<Callback1 />
|
||||
<div>
|
||||
<section className="project__details-area-one">
|
||||
<div className="container">
|
||||
<div className="project__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="project__details-content">
|
||||
<div className="project__details-inner">
|
||||
<div className="row align-items-center">
|
||||
<div className="col-lg-12">
|
||||
<h2>The Results We Provided</h2>
|
||||
<h5>Increased Local Visibility:</h5>
|
||||
<p>
|
||||
The local service ads brought a noticeable increase in local
|
||||
inquiries and leads, helping WaterMainLineReplacement.com
|
||||
reach more potential customers.
|
||||
</p>
|
||||
<h5>Enhanced GBP Performance:</h5>
|
||||
<p>
|
||||
With the optimized Google Business Profile, they saw a rise
|
||||
in clicks, calls, and requests for directions, which
|
||||
strengthened their local presence and engagement.
|
||||
</p>
|
||||
<h5>Website Improvement:</h5>
|
||||
<p>
|
||||
The redesigned website led to better user metrics, including
|
||||
a reduction in bounce rates and longer session durations,
|
||||
reflecting a more engaging and user-friendly site.
|
||||
</p>
|
||||
<h5>Better Search Rankings:</h5>
|
||||
<p>
|
||||
Our SEO efforts resulted in improved domain authority and
|
||||
higher rankings for important search terms, driving more
|
||||
organic traffic to the site.
|
||||
</p>
|
||||
</div>
|
||||
{/* <div className="col-lg-6 order-lg-1">
|
||||
<div className="project__details-inner-img">
|
||||
<img
|
||||
src="/assets/img/case-study/the-spark-coffee-1.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div> */}
|
||||
{/* <div className="col-lg-6">
|
||||
<div className="project__details-inner-content">
|
||||
<h2>The Results We Provided</h2>
|
||||
<p>
|
||||
The collaboration between The Spark and RankRunners
|
||||
yielded impressive results. The revamped website,
|
||||
combined with an effective SEO and local optimization
|
||||
strategy, led to a substantial increase in online
|
||||
visibility and customer engagement.
|
||||
</p>
|
||||
|
||||
<div className="content-inner">
|
||||
<h4>Before</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<h3>Image Coming Soon</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Outdated Website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
#30 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Low Local Visibility
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Minimal Social Media Engagement
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="content-inner">
|
||||
<h4>After</h4>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="case-study-cta-ba">
|
||||
<video
|
||||
src="/assets/img/case-study/the-spark-coffee.webm"
|
||||
autoPlay
|
||||
muted
|
||||
loop
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6 about__list-box">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Modernized Website
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Top 5 Avg. Search Position
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+50% Local Visibility
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
+60% Website Traffic
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> */}
|
||||
<div className="col-lg-12 order-last">
|
||||
<p>
|
||||
In short, RankRunners’ efforts helped
|
||||
WaterMainLineReplacement.com enhance their online
|
||||
visibility, attract more local customers, and improve their
|
||||
overall digital presence.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
178
app/register/page.js
Normal file
178
app/register/page.js
Normal file
@ -0,0 +1,178 @@
|
||||
"use client";
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Link from "next/link";
|
||||
import { useState } from "react";
|
||||
import { useRouter } from "next/navigation";
|
||||
|
||||
export default function Register() {
|
||||
const router = useRouter();
|
||||
const [error, setError] = useState("");
|
||||
const [clientError, setClientError] = useState("");
|
||||
const [loading, setLoading] = useState(false);
|
||||
|
||||
const [name, setName] = useState("");
|
||||
const [email, setEmail] = useState("");
|
||||
const [clientId, setClientId] = useState("");
|
||||
const [password, setPassword] = useState("");
|
||||
const [confirmPassword, setConfirmPassword] = useState("");
|
||||
|
||||
const handleRegister = async (e) => {
|
||||
e.preventDefault();
|
||||
setError("");
|
||||
setLoading(true);
|
||||
|
||||
if (password !== confirmPassword) {
|
||||
setError("Passwords do not match");
|
||||
setLoading(false);
|
||||
return;
|
||||
}
|
||||
|
||||
// Placeholder for Client ID validation logic
|
||||
if (clientId === "") {
|
||||
setError("This Client ID does not exist");
|
||||
setClientError("This Client ID does not exist");
|
||||
setLoading(false);
|
||||
return;
|
||||
}
|
||||
|
||||
// Simulate registration process
|
||||
try {
|
||||
// Add your custom user registration logic here
|
||||
|
||||
setLoading(false);
|
||||
router.push("/client-area");
|
||||
} catch (error) {
|
||||
setError("Error: " + error.message);
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={6} footerStyle={3} transparent={false}>
|
||||
<section className="register__area-one">
|
||||
<div className="container">
|
||||
<div className="text-center mb-55">
|
||||
<h1 className="text-48-bold">Create An Account</h1>
|
||||
</div>
|
||||
<div className="box-form-login">
|
||||
<div className="head-login">
|
||||
<h3>Register</h3>
|
||||
<p className={clientError ? "display-none" : ""}>
|
||||
Create an account today to manage your subscription easily
|
||||
</p>
|
||||
<p className={clientError ? "error-red" : "display-none"}>
|
||||
{clientError}
|
||||
</p>
|
||||
<div className="form-login">
|
||||
<form onSubmit={handleRegister}>
|
||||
<div className="form-group">
|
||||
<input
|
||||
type="text"
|
||||
className="form-control account"
|
||||
placeholder="Your Name"
|
||||
value={name}
|
||||
onChange={(e) => setName(e.target.value)}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div className="form-group">
|
||||
<input
|
||||
type="email"
|
||||
className="form-control email-address"
|
||||
placeholder="Email Address"
|
||||
value={email}
|
||||
onChange={(e) => setEmail(e.target.value)}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div className="form-group">
|
||||
<input
|
||||
type="text"
|
||||
className="form-control account"
|
||||
placeholder="Client ID"
|
||||
value={clientId}
|
||||
onChange={(e) => setClientId(e.target.value)}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div className="form-group">
|
||||
<input
|
||||
type="password"
|
||||
className="form-control"
|
||||
placeholder="Password"
|
||||
value={password}
|
||||
onChange={(e) => setPassword(e.target.value)}
|
||||
minLength={8}
|
||||
required
|
||||
/>
|
||||
<span className="view-password" />
|
||||
</div>
|
||||
<div className="form-group">
|
||||
<input
|
||||
type="password"
|
||||
className="form-control"
|
||||
placeholder="Confirm Password"
|
||||
value={confirmPassword}
|
||||
onChange={(e) => setConfirmPassword(e.target.value)}
|
||||
minLength={8}
|
||||
required
|
||||
/>
|
||||
<span className="view-password" />
|
||||
</div>
|
||||
<div className="box-forgot-pass">
|
||||
<label>
|
||||
<input
|
||||
type="checkbox"
|
||||
className="cb-remember"
|
||||
defaultValue={1}
|
||||
required
|
||||
/>{" "}
|
||||
<span>
|
||||
I have read and agree to the Terms & Conditions
|
||||
and the Privacy Policy of this website.
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<div className="form-group">
|
||||
{!loading ? (
|
||||
<input
|
||||
type="submit"
|
||||
className="btn btn-login"
|
||||
defaultValue="Register now"
|
||||
/>
|
||||
) : (
|
||||
<div
|
||||
className="btn btn-login btn-loader"
|
||||
defaultValue="Register now"
|
||||
>
|
||||
<div
|
||||
className="spinner-border text-light"
|
||||
role="status"
|
||||
>
|
||||
<span className="sr-only">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</form>
|
||||
<p>
|
||||
Already have an account?{" "}
|
||||
<Link href="/login" className="link-bold">
|
||||
Login
|
||||
</Link>{" "}
|
||||
now. Need our help?{" "}
|
||||
<Link href="/contact" className="link-bold">
|
||||
Contact Us
|
||||
</Link>
|
||||
.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
392
app/report/page.js
Normal file
392
app/report/page.js
Normal file
@ -0,0 +1,392 @@
|
||||
"use client";
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import { Flat } from "@alptugidin/react-circular-progress-bar";
|
||||
import Link from "next/link";
|
||||
import CounterUpDirectly from "@/components/elements/CounterUpDirectly";
|
||||
import About2 from "@/components/sections/About2";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useRouter } from "next/navigation";
|
||||
|
||||
export default function Report() {
|
||||
const [reportData, setReportData] = useState(null);
|
||||
const [reportResult, setReportResult] = useState(null);
|
||||
const router = useRouter();
|
||||
|
||||
useEffect(() => {
|
||||
const storedData = sessionStorage.getItem("reportData");
|
||||
const storedResult = sessionStorage.getItem("reportResult");
|
||||
if (storedData) {
|
||||
try {
|
||||
const parsedData = JSON.parse(storedData);
|
||||
setReportData(parsedData);
|
||||
} catch (error) {
|
||||
console.error("Error parsing JSON from sessionStorage", error);
|
||||
setReportData(null);
|
||||
}
|
||||
} else {
|
||||
setReportData(null);
|
||||
router.push("/");
|
||||
}
|
||||
|
||||
if (storedResult) {
|
||||
try {
|
||||
const parsedResult = JSON.parse(storedResult);
|
||||
setReportResult(parsedResult);
|
||||
} catch (error) {
|
||||
console.error("Error parsing JSON from sessionStorage", error);
|
||||
setReportResult(null);
|
||||
}
|
||||
} else {
|
||||
setReportResult(null);
|
||||
router.push("/");
|
||||
}
|
||||
}, []);
|
||||
|
||||
let domainAuthority = reportResult?.domainAuthority;
|
||||
let spamScore = reportResult?.spamScore;
|
||||
let authority = reportResult?.rankingKeywords;
|
||||
|
||||
let backlinks = reportResult?.backlinksTotal;
|
||||
let backlinksSuffix = "";
|
||||
if (backlinks > 1000 && backlinks < 1000000) {
|
||||
backlinksSuffix = "K";
|
||||
backlinks = backlinks / 1000;
|
||||
} else if (backlinks > 1000000) {
|
||||
backlinksSuffix = "M";
|
||||
backlinks = backlinks / 1000000;
|
||||
}
|
||||
|
||||
const formatCount = (value) => {
|
||||
if (value >= 1000000) {
|
||||
return (value / 1000000).toFixed(1);
|
||||
} else if (value >= 1000) {
|
||||
return (value / 1000).toFixed(1);
|
||||
}
|
||||
return value;
|
||||
};
|
||||
|
||||
backlinks = formatCount(backlinks);
|
||||
|
||||
let overallScore;
|
||||
|
||||
if (domainAuthority < 91) {
|
||||
overallScore = Math.floor(domainAuthority * 1.1);
|
||||
} else {
|
||||
overallScore = domainAuthority;
|
||||
}
|
||||
|
||||
const averageScore = 74;
|
||||
let comparison;
|
||||
|
||||
if (overallScore > averageScore) {
|
||||
comparison = "higher";
|
||||
} else if (overallScore < averageScore) {
|
||||
comparison = "lower";
|
||||
} else {
|
||||
comparison = "the same";
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
{reportData && reportResult && (
|
||||
<Layout headerStyle={4} footerStyle={3} transparent={false}>
|
||||
<section className="report-area">
|
||||
<div className="container">
|
||||
<div className="report-box">
|
||||
<div className="col">
|
||||
<div className="header-design">
|
||||
<img src="/assets/img/images/h2_about_shape01.png" alt="cosmetic" />
|
||||
<img src="/assets/img/images/h2_about_shape02.png" alt="cosmetic" />
|
||||
</div>
|
||||
<div className="row">
|
||||
<div className="col-xl-2 col-lg-2 col-md-12">
|
||||
<div className="report-graph-size">
|
||||
<Flat
|
||||
progress={overallScore}
|
||||
range={{ from: 0, to: 100 }}
|
||||
sign={{ value: "", position: "end" }}
|
||||
text={"of 100"}
|
||||
showMiniCircle={true}
|
||||
showValue={true}
|
||||
sx={{
|
||||
strokeColor: "#3887fe",
|
||||
barWidth: 10,
|
||||
bgStrokeColor: "#3887fe",
|
||||
bgColor: { value: "#000000", transparency: "20" },
|
||||
shape: "full",
|
||||
strokeLinecap: "round",
|
||||
valueSize: 25,
|
||||
valueWeight: "bold",
|
||||
valueColor: "#000000",
|
||||
valueFamily: "Helvetica",
|
||||
textSize: 13,
|
||||
textWeight: "normal",
|
||||
textColor: "#000000",
|
||||
textFamily: "Helvetica",
|
||||
loadingTime: 2000,
|
||||
valueAnimation: true,
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-10 col-lg-10 col-md-12">
|
||||
<h1 className="text-black report-text-title">
|
||||
Site Audit Result for{" "}
|
||||
<span className="text-primary">{reportResult.websiteName}</span>
|
||||
</h1>
|
||||
<Link
|
||||
className="report-text-title-url"
|
||||
href={`https://${reportResult.websiteName}`}
|
||||
>
|
||||
https://{reportResult.websiteName}
|
||||
</Link>
|
||||
<p className="report-text text-black">
|
||||
<b>{reportResult.websiteName}</b> received an SEO score of{" "}
|
||||
<b>{overallScore}</b> out of <b>100</b>, which is <b>{comparison} </b>
|
||||
than the average score of <b>{averageScore}</b>. Our preliminary
|
||||
analysis has identified{" "}
|
||||
<b>
|
||||
{reportResult.errorIssueCount + reportResult.importantIssueCount}{" "}
|
||||
Crucial Issues
|
||||
</b>{" "}
|
||||
that should be addressed in order to improve your website's search
|
||||
visibility.
|
||||
</p>
|
||||
<div className="report-button-group">
|
||||
<Link className="btn report-button" href="#domain">
|
||||
Domain Overview
|
||||
</Link>
|
||||
<Link className="btn report-button" href="#issue">
|
||||
Errors - {reportResult.errorIssueCount}
|
||||
</Link>
|
||||
<Link className="btn report-button" href="#issue">
|
||||
Warnings - {reportResult.importantIssueCount}
|
||||
</Link>
|
||||
<Link className="btn report-button" href="#potentials">
|
||||
Growth Potentials
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="container" id="domain">
|
||||
<div className="row justify-content-center">
|
||||
<div className="col">
|
||||
<div className="report-box">
|
||||
<div className="col">
|
||||
<h1 className="text-black report-text-title">Domain Overview</h1>
|
||||
<div className="row domain-overview-group text-center">
|
||||
<div className="col-lg-3 col-md-6">
|
||||
<div className="domain-overview-item">
|
||||
<h4>Domain Authority</h4>
|
||||
<h1>
|
||||
<CounterUpDirectly count={domainAuthority} />
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-3 col-md-6">
|
||||
<div className="domain-overview-item">
|
||||
<h4>Backlinks</h4>
|
||||
<h1 className="count">
|
||||
<CounterUpDirectly count={backlinks} />
|
||||
{backlinksSuffix}
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-3 col-md-6">
|
||||
<div className="domain-overview-item">
|
||||
<h4>Page Authority</h4>
|
||||
<h1>
|
||||
<CounterUpDirectly count={authority} />
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-3 col-md-6">
|
||||
<div className="domain-overview-item">
|
||||
<h4>Spam Score</h4>
|
||||
<h1>
|
||||
<CounterUpDirectly count={spamScore} />%
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{61 <= spamScore ? (
|
||||
<p className="report-text text-black">
|
||||
A domain with a <b>bad spam score</b> is likely flagged in multiple
|
||||
spam databases and may have a history of sending spammy or unwanted
|
||||
emails. This score indicates a high risk of being{" "}
|
||||
<b>blocked or filtered by email providers</b>, impacting email
|
||||
deliverability significantly. It's crucial to
|
||||
<b>investigate and address the reasons behind the bad score</b>,
|
||||
such as cleaning email lists, avoiding spammy practices, and
|
||||
improving overall domain reputation.
|
||||
</p>
|
||||
) : 31 <= spamScore >= 61 ? (
|
||||
<p className="report-text text-black">
|
||||
A domain with this spam score rate may have
|
||||
<b>a moderate presence in spam databases</b> or could occasionally
|
||||
send emails that some recipients may mark as spam. This score
|
||||
doesn't necessarily indicate malicious intent but suggests that
|
||||
there may be
|
||||
<b>some instances where email deliverability could be affected</b>.
|
||||
It's advisable to
|
||||
<b>monitor and ensure best practices</b> to maintain or improve the
|
||||
score over time.
|
||||
</p>
|
||||
) : (
|
||||
<p className="report-text text-black">
|
||||
A domain with a <b>low spam score</b> indicates that it has a
|
||||
<b>minimal or negligible presence in spam databases</b>. This
|
||||
suggests that the domain has a <b>clean reputation</b>, with little
|
||||
to no reported incidents of spam activity. Websites with a good
|
||||
score are typically trusted by email providers and less likely to be
|
||||
flagged as spam when sending emails.
|
||||
</p>
|
||||
)}
|
||||
<div className="table-responsive">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" className="text-center">
|
||||
Most Visited Pages
|
||||
</th>
|
||||
<th scope="col" className="text-center">
|
||||
Visibility
|
||||
</th>
|
||||
<th scope="col" className="text-center">
|
||||
Page Authority
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{reportResult.mostDomain.map((item, index) => (
|
||||
<tr key={index}>
|
||||
<th scope="row">
|
||||
{index + 1} -{" "}
|
||||
<Link
|
||||
href={`https://${item.url}`}
|
||||
className="report-domain-url"
|
||||
>
|
||||
{item.url}
|
||||
</Link>
|
||||
</th>
|
||||
<td className="report-icon-parent text-center">
|
||||
{item.score < 39 ? (
|
||||
<i className="report-icon red fas fa-times" />
|
||||
) : item.score <= 59 ? (
|
||||
<i className="report-icon yellow fas fa-exclamation" />
|
||||
) : (
|
||||
<i className="report-icon green fas fa-check" />
|
||||
)}
|
||||
</td>
|
||||
<td className="text-center">{item.score}</td>
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="container" id="issue">
|
||||
<div className="row justify-content-center">
|
||||
<div className="col-lg-6">
|
||||
<div className="report-box">
|
||||
<div className="col">
|
||||
<h1 className="text-black report-text-title">
|
||||
Errors - {reportResult.errorIssueCount}
|
||||
</h1>
|
||||
<p className="report-text text-black">
|
||||
These are the most significant issues currently
|
||||
<b> preventing your website from achieving a higher ranking</b> in any
|
||||
search engine, including Google Search.
|
||||
</p>
|
||||
<div className="report-list">
|
||||
<ul className="list-wrap">
|
||||
{reportResult?.errorList.map((error) => (
|
||||
<li>
|
||||
<i className="report-icon red fas fa-times" />
|
||||
{error}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6">
|
||||
<div className="report-box">
|
||||
<div className="col">
|
||||
<h1 className="text-black report-text-title">
|
||||
Warnings - {reportResult.importantIssueCount}
|
||||
</h1>
|
||||
<p className="report-text text-black">
|
||||
These are less significant, yet still important issues that should be
|
||||
addressed and resolved in order to
|
||||
<b> further enhance your website's Google search visibility.</b>
|
||||
</p>
|
||||
<div className="report-list">
|
||||
<ul className="list-wrap">
|
||||
{reportResult?.warningList.map((warning) => (
|
||||
<li>
|
||||
<i className="report-icon yellow fas fa-exclamation" />
|
||||
{warning}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="container" id="potentials">
|
||||
<div className="row justify-content-center">
|
||||
<div className="col">
|
||||
<div className="report-box">
|
||||
<div className="col">
|
||||
<h1 className="text-black report-text-title">Growth Potentials</h1>
|
||||
<p className="report-text text-black">
|
||||
A domain with a <b>low spam score</b> indicates that it has a{" "}
|
||||
<b>minimal or negligible presence in spam databases</b>. This suggests
|
||||
that the domain has a <b>clean reputation</b>, with little to no
|
||||
reported incidents of spam activity. Websites with a good score are
|
||||
typically trusted by email providers and less likely to be flagged as
|
||||
spam when sending emails.
|
||||
</p>
|
||||
<div className="table-responsive">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr className="text-center">
|
||||
<th scope="col">Variables</th>
|
||||
<th scope="col">Current Metrics</th>
|
||||
<th scope="col">Potentials Outcome</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{reportResult?.dataPotentials.map((item, index) => (
|
||||
<tr key={index}>
|
||||
<th scope="row">{item.variable}</th>
|
||||
<td className="text-center">{item.current}</td>
|
||||
<td className="text-center">{item.potentials}</td>
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<About2 />
|
||||
</section>
|
||||
</Layout>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
}
|
119
app/reset-password/page.js
Normal file
119
app/reset-password/page.js
Normal file
@ -0,0 +1,119 @@
|
||||
"use client";
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Link from "next/link";
|
||||
import { useState, useEffect } from "react";
|
||||
import { useRouter } from "next/navigation";
|
||||
|
||||
export default function ResetPassword() {
|
||||
const [newPassword, setNewPassword] = useState("");
|
||||
const [confirmPassword, setConfirmPassword] = useState("");
|
||||
const [message, setMessage] = useState("");
|
||||
const [isValidReset, setIsValidReset] = useState(false);
|
||||
const router = useRouter();
|
||||
|
||||
useEffect(() => {
|
||||
// Placeholder for token validation logic
|
||||
const checkResetToken = async () => {
|
||||
// Simulate token validation
|
||||
const isTokenValid = true; // Replace with actual validation logic
|
||||
|
||||
if (isTokenValid) {
|
||||
setIsValidReset(true);
|
||||
} else {
|
||||
setMessage(
|
||||
"Invalid or expired reset link. Please request a new password reset."
|
||||
);
|
||||
setTimeout(() => router.push("/forgot-password"), 3000);
|
||||
}
|
||||
};
|
||||
|
||||
checkResetToken();
|
||||
}, [router]);
|
||||
|
||||
const handleResetPassword = async (e) => {
|
||||
e.preventDefault();
|
||||
|
||||
if (newPassword !== confirmPassword) {
|
||||
setMessage("Passwords do not match.");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
// Simulate password reset
|
||||
const isSuccess = true; // Replace with actual reset logic
|
||||
|
||||
if (isSuccess) {
|
||||
setMessage("Password successfully reset. Redirecting to login...");
|
||||
setTimeout(() => router.push("/login"), 3000);
|
||||
} else {
|
||||
throw new Error("Password reset failed.");
|
||||
}
|
||||
} catch (error) {
|
||||
setMessage(`Error: ${error.message}`);
|
||||
}
|
||||
};
|
||||
|
||||
if (!isValidReset) {
|
||||
return <p>{message}</p>;
|
||||
}
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={6} footerStyle={3} transparent={false}>
|
||||
<section className="forgot__area-one">
|
||||
<div className="container">
|
||||
<div className="text-center mb-55">
|
||||
<h1 className="text-48-bold">Change Password</h1>
|
||||
</div>
|
||||
<div className="box-form-login">
|
||||
<div className="head-login">
|
||||
{message && <p className="text-16-semibold">{message}</p>}
|
||||
{!message && (
|
||||
<p className="text-16-semibold">
|
||||
Please enter your new password
|
||||
</p>
|
||||
)}
|
||||
<div className="form-login form-forgot">
|
||||
<form onSubmit={handleResetPassword}>
|
||||
<div className="form-group">
|
||||
<input
|
||||
type="password"
|
||||
className="form-control account"
|
||||
placeholder="New Password"
|
||||
value={newPassword}
|
||||
onChange={(e) => setNewPassword(e.target.value)}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div className="form-group">
|
||||
<input
|
||||
type="password"
|
||||
className="form-control account"
|
||||
placeholder="Confirm New Password"
|
||||
value={confirmPassword}
|
||||
onChange={(e) => setConfirmPassword(e.target.value)}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div className="form-group">
|
||||
<input
|
||||
type="submit"
|
||||
className="btn btn-login"
|
||||
defaultValue="Reset password"
|
||||
/>
|
||||
</div>
|
||||
</form>
|
||||
<p className="text-center">
|
||||
<Link href="/contact" className="link-bold">
|
||||
Contact Us
|
||||
</Link>{" "}
|
||||
if you encounter any problem
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
60
app/schedule/page.js
Normal file
60
app/schedule/page.js
Normal file
@ -0,0 +1,60 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Testimonials from "@/components/sections/Testimonials";
|
||||
import ScheduleChooser from "@/components/custom/ScheduleChooser";
|
||||
|
||||
export const metadata = {
|
||||
title: "Schedule a Call | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function Contact() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Schedule a Call">
|
||||
<div>
|
||||
<section className="contact__area-schedule">
|
||||
<div className="container">
|
||||
<div className="row mb-30">
|
||||
<div className="col-lg-5 schedule-content">
|
||||
<div className="contact__content">
|
||||
<div className="section-title mb-30">
|
||||
<h2 className="title">Schedule your 100% Free IT/SEO Strategy Call</h2>
|
||||
<p>
|
||||
Schedule a FREE consultation with our team of experts today and let us
|
||||
take your company's online presence to the next level!
|
||||
</p>
|
||||
</div>
|
||||
<div className="contact__left mb-30">
|
||||
<ul>
|
||||
<li>
|
||||
We'll increase your company website's organic search ranking and
|
||||
visibility in Google search
|
||||
</li>
|
||||
<li>
|
||||
This increased brand exposure will help attract and reel in
|
||||
thousands of brand new customers
|
||||
</li>
|
||||
<li>
|
||||
You will experience a higher bottom line, increased ROI and better
|
||||
position yourself for sustainable, organic growth
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="section-title">
|
||||
<p>Are you ready to outrun your competitors?</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-7">
|
||||
<ScheduleChooser />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<Testimonials />
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
261
app/services-details/page.js
Normal file
261
app/services-details/page.js
Normal file
@ -0,0 +1,261 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import BrandActiveSlider from "@/components/slider/BrandActiveSlider";
|
||||
import Link from "next/link";
|
||||
|
||||
export const metadata = {
|
||||
title: "Service Details | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ServicesDetails3() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Services We Provide">
|
||||
<div>
|
||||
<section className="services__details-area">
|
||||
<div className="container">
|
||||
<div className="services__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70 order-0 order-lg-2">
|
||||
<div className="services__details-content services__details-content-two">
|
||||
<h2 className="title">
|
||||
We help our clients identify their they area issues develop solutions
|
||||
and take action
|
||||
</h2>
|
||||
<p>
|
||||
eed a little help from our friends from time to time. Although we offer
|
||||
the one-stop convenience of annery integrated range of legal, financial
|
||||
services under one roof, there are occasions when our clients areaneed
|
||||
specia- list advice beyond the scope of our own expertise. That’s why
|
||||
we’ve developed close working relationships with a number of strategic
|
||||
partner.
|
||||
</p>
|
||||
<div className="services__details-thumb">
|
||||
<img src="/assets/img/services/services_details03.jpg" alt="" />
|
||||
</div>
|
||||
<div className="services__details-inner-three">
|
||||
<div className="row gutter-24 align-items-center">
|
||||
<div className="col-md-5">
|
||||
<div className="services__details-list-box-three">
|
||||
<div className="icon">
|
||||
<i className="flaticon-investment" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Business Solutions</h4>
|
||||
<p>
|
||||
Semper egetuis kelly for tellus <br /> urna area
|
||||
condition.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="services__details-list-box-three">
|
||||
<div className="icon">
|
||||
<i className="flaticon-investment-1" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Business Solutions</h4>
|
||||
<p>
|
||||
Semper egetuis kelly for tellus <br /> urna area
|
||||
condition.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-7">
|
||||
<div className="services__details-inner-content-three">
|
||||
<h3 className="title">
|
||||
Let’s Enroll Our Business Growth Management
|
||||
</h3>
|
||||
<p>
|
||||
eed a little help from our friends from time to time.
|
||||
Although we offer the one-stop convenience of annery
|
||||
integrated range of legal, financial services under one
|
||||
roof, there are occasions.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
eed a little help from our friends from time to time. Although we offer
|
||||
the one-stop convenience of annery integrated range of legal, financial
|
||||
services under one roof, there are occasions when our clients areaneed
|
||||
specia- list advice beyond the scope of our own expertise.{" "}
|
||||
</p>
|
||||
<div className="services__details-inner-two services__details-inner-four">
|
||||
<div className="row gutter-24 align-items-center">
|
||||
<div className="col-48">
|
||||
<div className="services__details-inner-img">
|
||||
<img
|
||||
src="/assets/img/services/services_details_inner03.jpg"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-52">
|
||||
<div className="services__details-inner-content-two">
|
||||
<h4 className="title">Our Corporate Business Planning</h4>
|
||||
<p>
|
||||
when an unknown printer took a galley of type and
|
||||
scrambled it to make a type specimen bookhas survived
|
||||
not only five centuries.but also the leap into
|
||||
electronic typesetting, remaining.
|
||||
</p>
|
||||
<div className="about__list-box about__list-box-three">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Business Growth
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
100% Secure
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
Research
|
||||
</li>
|
||||
<li>
|
||||
<i className="flaticon-arrow-button" />
|
||||
100% Secure
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p className="last-info">
|
||||
when an unknown printer took a galley of type and scrambled it to make a
|
||||
type specimen bookhas survived not only five centuries, but also the
|
||||
leap into electronic typesetting, remaining essentially unchan galley of
|
||||
type and scrambled it to make a type specimen book.when an unknown
|
||||
printer took a galley of type and scrambled it to make a type specimen
|
||||
bookhas survived not only five centuries, but also the leap into
|
||||
electronic typesetting, remaining essentially unchan galle.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="services__sidebar">
|
||||
<div className="sidebar__widget">
|
||||
<div className="services-sidebar">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="/services-details">
|
||||
Search Engine Optimization{" "}
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services-details">
|
||||
Ad Campaign Management{" "}
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services-details">
|
||||
Cloud Computing <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services-details">
|
||||
Lead Generation <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services-details">
|
||||
Web Development/Design{" "}
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services-details">
|
||||
Social Media Management{" "}
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services-details">
|
||||
Performance Monitoring{" "}
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services-details">
|
||||
Cyber Security <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services-details">
|
||||
Website Maintenance{" "}
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">SEO Checker</h4>
|
||||
<div className="sidebar__brochure sidebar__brochure-two">
|
||||
<p>Check your website's SEO performance.</p>
|
||||
<Link href="/#seocheck">SEO Checker</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-two">
|
||||
<div
|
||||
className="sidebar__contact sidebar__contact-two"
|
||||
data-background="/assets/img/services/sidebar_contact_bg.jpg"
|
||||
>
|
||||
<h2 className="title">
|
||||
Contact Us Any Time For Immediate Support!
|
||||
</h2>
|
||||
<Link href="tel:+14702604117" className="btn">
|
||||
<i className="flaticon-phone-call" />
|
||||
(470) 260-4117
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">Send Us a Message</h4>
|
||||
<div className="sidebar__form">
|
||||
<form action="#">
|
||||
<div className="form-grp">
|
||||
<input type="text" name="name" placeholder="Your Name" />
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="phone"
|
||||
placeholder="Phone Number"
|
||||
/>
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<textarea name="message" placeholder="Type Your Message" />
|
||||
</div>
|
||||
<button type="submit" className="btn btn-two">
|
||||
Send Message
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div className="brand-area">
|
||||
<div className="container">
|
||||
<h4 className="brand__content">Trusted by Numerous Companies, Worldwide</h4>
|
||||
<div className="swiper-container brand-active">
|
||||
<BrandActiveSlider />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
290
app/services/ad-campaign-management/page.js
Normal file
290
app/services/ad-campaign-management/page.js
Normal file
@ -0,0 +1,290 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import BrandActiveSlider from "@/components/slider/BrandActiveSlider";
|
||||
import Link from "next/link";
|
||||
|
||||
export const metadata = {
|
||||
title: "Service Details | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ServicesDetails3() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Services We Provide">
|
||||
<div>
|
||||
<section className="services__details-area">
|
||||
<div className="container">
|
||||
<div className="services__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70 order-0 order-lg-2">
|
||||
<div className="services__details-content services__details-content-two">
|
||||
<h2 className="title">Ad Campaign Management</h2>
|
||||
<p>
|
||||
Launching and testing cost-effective ad campaigns on platforms like
|
||||
Google, Facebook, and X on a consistent basis can be tricky and
|
||||
time-consuming for those that don’t specialize in it. Many businesses
|
||||
struggle with crafting ads that resonate with their viewers, targeting
|
||||
the right audience, and managing their ad spend effectively. In fact,
|
||||
there are certifications for this skill set because of how complicated
|
||||
it can be. At RankRunners, our Google-Certified Account Specialists
|
||||
streamline this process by getting behind the wheel of your ad
|
||||
campaigns. Our expert team develops and manages targeted,
|
||||
high-performing ad campaigns that maximize your incoming leads and drive
|
||||
your company’s revenue upwards.
|
||||
</p>
|
||||
<div className="services__details-thumb">
|
||||
<img src="/assets/img/custom/service-02-01.png" alt="" />
|
||||
</div>
|
||||
<div className="services__details-inner-three">
|
||||
<h3>Benefits:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Strategic Ad Placement</strong>: We design and implement
|
||||
targeted ad campaigns across multiple platforms to ensure your
|
||||
ads reach the right audience at the right time.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Optimized Spend</strong>: Our data-driven approach
|
||||
ensures your advertising budget is spent efficiently, focusing
|
||||
on high-impact opportunities to generate the best results.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Creative Excellence</strong>: From eye-catching visuals
|
||||
to compelling copy, our team creates ads that capture attention
|
||||
and drive engagement.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Real-Time Analytics</strong>: We provide ongoing
|
||||
performance tracking and insights, allowing for timely
|
||||
adjustments and ensuring your campaigns stay on track.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Expert Management</strong>: Benefit from the expertise
|
||||
of our dedicated ad managers who handle everything from strategy
|
||||
and design to execution and reporting.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="services__details-inner-two services__details-inner-four">
|
||||
<div className="gutter-24">
|
||||
<div className="col-48">
|
||||
<div className="services__details-inner-img float-img">
|
||||
<img src="/assets/img/custom/service-02-02.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-52">
|
||||
<div className="services__details-inner-content-two">
|
||||
<h3>Services:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Campaign Strategy Development</strong>:
|
||||
Crafting a comprehensive strategy tailored to your
|
||||
business goals and target audience, ensuring
|
||||
alignment with your overall marketing objectives.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Ad Creation and Design</strong>: Designing
|
||||
visually appealing and persuasive ads that stand out
|
||||
and resonate with your target market.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Target Audience Research</strong>:
|
||||
Identifying and segmenting your ideal audience to
|
||||
ensure your ads reach those most likely to convert.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Platform Management</strong>: Handling all
|
||||
aspects of your ad placements on platforms like
|
||||
Google Ads, Facebook, Instagram, and more.
|
||||
</li>
|
||||
<li>
|
||||
<strong>
|
||||
Performance Tracking and Optimization
|
||||
</strong>
|
||||
: Monitoring ad performance in real-time and making
|
||||
data-driven adjustments to improve results and ROI.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Reporting and Insights</strong>: Providing
|
||||
detailed reports and actionable insights to measure
|
||||
the success of your campaigns and inform future
|
||||
strategies.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<strong>
|
||||
The setup of an ad campaign typically takes 2 to 4 weeks, depending
|
||||
on the complexity of the campaign and the platforms involved.
|
||||
Ongoing management and optimization are continuous, with regular
|
||||
updates and performance reviews provided on a monthly basis.
|
||||
</strong>
|
||||
</p>
|
||||
<div className="all_services__area-six-two">
|
||||
<div className="container">
|
||||
<h3>Ready to “Run-Up” your advertising game?</h3>
|
||||
<Link href="/schedule" className="btn">
|
||||
Start Your Campaign Today!
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<p>Have questions or need more details? Contact us today:</p>
|
||||
<div className="contact__info mb-50">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-phone-call" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Phone</h4>
|
||||
<Link href="tel:+14702604117">(470) 260-4117</Link>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-mail" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Email</h4>
|
||||
<Link href="mailto:support@rankrunners.net">
|
||||
support@rankrunners.net
|
||||
</Link>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h4 className="title-center">
|
||||
Let RankRunners drive your business growth with expertly managed ad
|
||||
campaigns!
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="services__sidebar">
|
||||
<div className="sidebar__widget">
|
||||
<div className="services-sidebar">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="/services/search-engine-optimization">
|
||||
Search Engine Optimization
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link
|
||||
href="/services/ad-campaign-management"
|
||||
className="active"
|
||||
>
|
||||
Ad Campaign Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cloud-computing">
|
||||
Cloud Computing <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/lead-generation">
|
||||
Lead Generation <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/web-development">
|
||||
Web Development/Design
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/social-media-management">
|
||||
Social Media Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/performance-monitoring">
|
||||
Performance Monitoring
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cyber-security">
|
||||
Cyber Security <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/website-maintenance">
|
||||
Website Maintenance
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">SEO Checker</h4>
|
||||
<div className="sidebar__brochure sidebar__brochure-two">
|
||||
<p>Check your website's SEO performance.</p>
|
||||
<Link href="/#seocheck">SEO Checker</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-two">
|
||||
<div
|
||||
className="sidebar__contact sidebar__contact-two"
|
||||
data-background="/assets/img/services/sidebar_contact_bg.jpg"
|
||||
>
|
||||
<h2 className="title">
|
||||
Contact Us Any Time For Immediate Support!
|
||||
</h2>
|
||||
<Link href="tel:+14702604117" className="btn">
|
||||
<i className="flaticon-phone-call" />
|
||||
(470) 260-4117
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">Send Us a Message</h4>
|
||||
<div className="sidebar__form">
|
||||
<form action="#">
|
||||
<div className="form-grp">
|
||||
<input type="text" name="name" placeholder="Your Name" />
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="phone"
|
||||
placeholder="Phone Number"
|
||||
/>
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<textarea name="message" placeholder="Type Your Message" />
|
||||
</div>
|
||||
<button type="submit" className="btn btn-two">
|
||||
Send Message
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div className="brand-area">
|
||||
<div className="container">
|
||||
<h4 className="brand__content">Trusted by Numerous Companies, Worldwide</h4>
|
||||
<div className="swiper-container brand-active">
|
||||
<BrandActiveSlider />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
288
app/services/cloud-computing/page.js
Normal file
288
app/services/cloud-computing/page.js
Normal file
@ -0,0 +1,288 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import BrandActiveSlider from "@/components/slider/BrandActiveSlider";
|
||||
import Link from "next/link";
|
||||
|
||||
export const metadata = {
|
||||
title: "Service Details | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ServicesDetails3() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Services We Provide">
|
||||
<div>
|
||||
<section className="services__details-area">
|
||||
<div className="container">
|
||||
<div className="services__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70 order-0 order-lg-2">
|
||||
<div className="services__details-content services__details-content-two">
|
||||
<h2 className="title">Cloud Computing</h2>
|
||||
<p>
|
||||
Managing cloud-based IT infrastructure can be complex and costly, often
|
||||
requiring significant investments in hardware and maintenance. Many
|
||||
businesses face challenges with scalability, data storage, and
|
||||
operational efficiency. RankRunners offers a solution with our Cloud
|
||||
Computing services, providing a flexible, scalable, and cost-effective
|
||||
alternative to traditional IT setups. By leveraging the power of the
|
||||
cloud, we help your business optimize resources, enhance collaboration,
|
||||
and ensure data security, all while reducing operational overhead.
|
||||
</p>
|
||||
<div className="services__details-thumb">
|
||||
<img src="/assets/img/custom/service-03-01.png" alt="" />
|
||||
</div>
|
||||
<div className="services__details-inner-three">
|
||||
<h3>Benefits:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Scalability</strong>: Easily scale your computing
|
||||
resources up or down based on your business needs, ensuring you
|
||||
only pay for what you use.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Cost Efficiency</strong>: Reduce capital expenditures on
|
||||
physical hardware and lower IT costs with our pay-as-you-go
|
||||
cloud solutions.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Enhanced Collaboration</strong>: Enable seamless access
|
||||
to data and applications from anywhere, improving team
|
||||
collaboration and productivity.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Data Security</strong>: Benefit from advanced security
|
||||
measures and compliance standards that protect your critical
|
||||
data from threats and breaches.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Disaster Recovery</strong>: Ensure business continuity
|
||||
with reliable backup and disaster recovery solutions that keep
|
||||
your data safe and accessible.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="services__details-inner-two services__details-inner-four">
|
||||
<div className="gutter-24">
|
||||
<div className="col-48">
|
||||
<div className="services__details-inner-img float-img">
|
||||
<img src="/assets/img/custom/service-03-02.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-52">
|
||||
<div className="services__details-inner-content-two">
|
||||
<h3>Services:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Cloud Infrastructure Setup</strong>:
|
||||
Designing and deploying scalable cloud
|
||||
infrastructure tailored to your specific business
|
||||
requirements, ensuring optimal performance and
|
||||
reliability.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Data Storage Solutions</strong>:
|
||||
Implementing secure and efficient cloud storage
|
||||
options that accommodate your data needs while
|
||||
ensuring quick access and backup.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Cloud Migration</strong>: Facilitating a
|
||||
smooth transition of your existing systems and data
|
||||
to the cloud, minimizing downtime and disruption.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Application Hosting</strong>: Hosting and
|
||||
managing your business applications in the cloud for
|
||||
improved accessibility and reduced maintenance.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Security and Compliance</strong>: Providing
|
||||
robust security measures and compliance solutions to
|
||||
protect your data and meet industry regulations.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Ongoing Support and Management</strong>:
|
||||
Offering continuous support and management services
|
||||
to keep your cloud environment running smoothly and
|
||||
efficiently.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<strong>
|
||||
The initial setup and migration to a cloud environment typically
|
||||
take 3 to 6 weeks, depending on the complexity of your existing
|
||||
infrastructure and specific needs. Our ongoing support is
|
||||
continuous, ensuring your cloud services remain optimized and
|
||||
secure.
|
||||
</strong>
|
||||
</p>
|
||||
<div className="all_services__area-six-two">
|
||||
<div className="container">
|
||||
<h3>
|
||||
Efficiently scale your IT infrastructure with our innovative
|
||||
cloud solutions!
|
||||
</h3>
|
||||
<Link href="/schedule" className="btn">
|
||||
Get Started with Cloud Computing Today!
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<p>Have questions or need more details? Contact us today:</p>
|
||||
<div className="contact__info mb-50">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-phone-call" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Phone</h4>
|
||||
<Link href="tel:+14702604117">(470) 260-4117</Link>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-mail" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Email</h4>
|
||||
<Link href="mailto:support@rankrunners.net">
|
||||
support@rankrunners.net
|
||||
</Link>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h4 className="title-center">
|
||||
Let RankRunners guide you to the future of business technology with our
|
||||
expert cloud computing services!
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="services__sidebar">
|
||||
<div className="sidebar__widget">
|
||||
<div className="services-sidebar">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="/services/search-engine-optimization">
|
||||
Search Engine Optimization
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/ad-campaign-management">
|
||||
Ad Campaign Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cloud-computing" className="active">
|
||||
Cloud Computing <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/lead-generation">
|
||||
Lead Generation <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/web-development">
|
||||
Web Development/Design
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/social-media-management">
|
||||
Social Media Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/performance-monitoring">
|
||||
Performance Monitoring
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cyber-security">
|
||||
Cyber Security <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/website-maintenance">
|
||||
Website Maintenance
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">SEO Checker</h4>
|
||||
<div className="sidebar__brochure sidebar__brochure-two">
|
||||
<p>Check your website's SEO performance.</p>
|
||||
<Link href="/#seocheck">SEO Checker</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-two">
|
||||
<div
|
||||
className="sidebar__contact sidebar__contact-two"
|
||||
data-background="/assets/img/services/sidebar_contact_bg.jpg"
|
||||
>
|
||||
<h2 className="title">
|
||||
Contact Us Any Time For Immediate Support!
|
||||
</h2>
|
||||
<Link href="tel:+14702604117" className="btn">
|
||||
<i className="flaticon-phone-call" />
|
||||
(470) 260-4117
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">Send Us a Message</h4>
|
||||
<div className="sidebar__form">
|
||||
<form action="#">
|
||||
<div className="form-grp">
|
||||
<input type="text" name="name" placeholder="Your Name" />
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="phone"
|
||||
placeholder="Phone Number"
|
||||
/>
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<textarea name="message" placeholder="Type Your Message" />
|
||||
</div>
|
||||
<button type="submit" className="btn btn-two">
|
||||
Send Message
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div className="brand-area">
|
||||
<div className="container">
|
||||
<h4 className="brand__content">Trusted by Numerous Companies, Worldwide</h4>
|
||||
<div className="swiper-container brand-active">
|
||||
<BrandActiveSlider />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
291
app/services/cyber-security/page.js
Normal file
291
app/services/cyber-security/page.js
Normal file
@ -0,0 +1,291 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import BrandActiveSlider from "@/components/slider/BrandActiveSlider";
|
||||
import Link from "next/link";
|
||||
|
||||
export const metadata = {
|
||||
title: "Service Details | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ServicesDetails3() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Services We Provide">
|
||||
<div>
|
||||
<section className="services__details-area">
|
||||
<div className="container">
|
||||
<div className="services__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70 order-0 order-lg-2">
|
||||
<div className="services__details-content services__details-content-two">
|
||||
<h2 className="title">Cyber Security</h2>
|
||||
<p>
|
||||
Cyber Security is an often overlooked facet of today’s business life, be
|
||||
it online or offline data. It mustn't be neglected whether wilfully so
|
||||
or by accident. Having a flourishing company often draws the focus
|
||||
towards the daily goings-on and making sure that revenue streams stay
|
||||
positive. We at RankRunners offer world-class security solutions so that
|
||||
your company does not have to worry about whether that one employee
|
||||
works on public wifi from time to time. Our experts will formulate an
|
||||
audit and make sure that any potential security breaches will stay just
|
||||
that. “Potential”.
|
||||
</p>
|
||||
<div className="services__details-thumb">
|
||||
<img src="/assets/img/custom/service-08-01.png" alt="" />
|
||||
</div>
|
||||
<div className="services__details-inner-three">
|
||||
<h3>Benefits:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Knowledge</strong>: Knowing where your company is
|
||||
vulnerable is the first step to fixing these security issues.
|
||||
Having your vulnerabilities clearly and expertly mapped out will
|
||||
ensure that there are no interruptions in the daily workflow so
|
||||
you can do what you do best!
|
||||
</li>
|
||||
<li>
|
||||
<strong>
|
||||
Formulating a plan for when the unthinkable happens
|
||||
</strong>
|
||||
: Having a plan for if and when a cyber security breach does
|
||||
occur, knowing what to do is just as important doing your taxes.
|
||||
This plan ensures that your company’s vital tasks can continue
|
||||
to the fullest extent until the problem is solved.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Future breach prevention</strong>: Ensuring that you
|
||||
have measures in place to prevent breaches is another incredibly
|
||||
important part of your company being (mostly) safe from attacks.
|
||||
for example:
|
||||
<ol>
|
||||
<li>
|
||||
Ideally employees need to change their passwords often
|
||||
(as annoying as it may be)
|
||||
</li>
|
||||
<li>
|
||||
Utilizing Two-Factor Authentication, requiring employees
|
||||
who have access to sensitive information to use 2FA
|
||||
(Two-Factor Authentication) is a must!
|
||||
</li>
|
||||
</ol>
|
||||
Now there are countless other measures that can be put in place
|
||||
but they go past the scope of this page.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Higher client trust</strong>: If your client sees that
|
||||
you have your affairs in order they are more likely to trust
|
||||
your company with their valuable information.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="services__details-inner-two services__details-inner-four">
|
||||
<div className="gutter-24">
|
||||
<div className="col-48">
|
||||
<div className="services__details-inner-img float-img">
|
||||
<img src="/assets/img/custom/service-08-02.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-52">
|
||||
<div className="services__details-inner-content-two">
|
||||
<h3>Services:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Plan of action</strong>: Rankrunners will
|
||||
assess every facet of your company to meticulously
|
||||
craft a plan to ensure your company will not fall
|
||||
victim to a cyber attack.
|
||||
</li>
|
||||
<li>
|
||||
<strong>
|
||||
Continued monitoring of suspicious activity
|
||||
</strong>
|
||||
: Rankrunners will continuously monitor your
|
||||
company’s online security to ensure anything out of
|
||||
the ordinary is proofed and checked to make sure it
|
||||
is nothing malicious.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Recurring Security checks</strong>:
|
||||
Rankrunners will perform recurring security checks
|
||||
to make sure your company is up to date with the
|
||||
latest globally recognized security standards.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<strong>
|
||||
Initial setup and an extended audit of your company typically takes
|
||||
2 to 4 weeks, depending on the complexity of your needs and existing
|
||||
systems. Ongoing security checks and monitoring is continuous, with
|
||||
as-needed updates and solutions provided to keep you safe and
|
||||
secure.
|
||||
</strong>
|
||||
</p>
|
||||
<div className="all_services__area-six-two">
|
||||
<div className="container">
|
||||
<h3>
|
||||
Get on top of your company’s security today! Don’t become a
|
||||
Cyber-attack victim!
|
||||
</h3>
|
||||
<Link href="/schedule" className="btn">
|
||||
Start Getting Secure Today!
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<p>Have questions or need more details? Contact us today:</p>
|
||||
<div className="contact__info mb-50">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-phone-call" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Phone</h4>
|
||||
<Link href="tel:+14702604117">(470) 260-4117</Link>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-mail" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Email</h4>
|
||||
<Link href="mailto:support@rankrunners.net">
|
||||
support@rankrunners.net
|
||||
</Link>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h4 className="title-center">
|
||||
Let RankRunners protect your company with our cyber-security experts so
|
||||
you can keep your company ahead of the competition!
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="services__sidebar">
|
||||
<div className="sidebar__widget">
|
||||
<div className="services-sidebar">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="/services/search-engine-optimization">
|
||||
Search Engine Optimization
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/ad-campaign-management">
|
||||
Ad Campaign Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cloud-computing">
|
||||
Cloud Computing <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/lead-generation">
|
||||
Lead Generation <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/web-development">
|
||||
Web Development/Design
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/social-media-management">
|
||||
Social Media Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/performance-monitoring">
|
||||
Performance Monitoring
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cyber-security" className="active">
|
||||
Cyber Security <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/website-maintenance">
|
||||
Website Maintenance
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">SEO Checker</h4>
|
||||
<div className="sidebar__brochure sidebar__brochure-two">
|
||||
<p>Check your website's SEO performance.</p>
|
||||
<Link href="/#seocheck">SEO Checker</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-two">
|
||||
<div
|
||||
className="sidebar__contact sidebar__contact-two"
|
||||
data-background="/assets/img/services/sidebar_contact_bg.jpg"
|
||||
>
|
||||
<h2 className="title">
|
||||
Contact Us Any Time For Immediate Support!
|
||||
</h2>
|
||||
<Link href="tel:+14702604117" className="btn">
|
||||
<i className="flaticon-phone-call" />
|
||||
(470) 260-4117
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">Send Us a Message</h4>
|
||||
<div className="sidebar__form">
|
||||
<form action="#">
|
||||
<div className="form-grp">
|
||||
<input type="text" name="name" placeholder="Your Name" />
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="phone"
|
||||
placeholder="Phone Number"
|
||||
/>
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<textarea name="message" placeholder="Type Your Message" />
|
||||
</div>
|
||||
<button type="submit" className="btn btn-two">
|
||||
Send Message
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div className="brand-area">
|
||||
<div className="container">
|
||||
<h4 className="brand__content">Trusted by Numerous Companies, Worldwide</h4>
|
||||
<div className="swiper-container brand-active">
|
||||
<BrandActiveSlider />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
289
app/services/lead-generation/page.js
Normal file
289
app/services/lead-generation/page.js
Normal file
@ -0,0 +1,289 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import BrandActiveSlider from "@/components/slider/BrandActiveSlider";
|
||||
import Link from "next/link";
|
||||
|
||||
export const metadata = {
|
||||
title: "Service Details | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ServicesDetails3() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Services We Provide">
|
||||
<div>
|
||||
<section className="services__details-area">
|
||||
<div className="container">
|
||||
<div className="services__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70 order-0 order-lg-2">
|
||||
<div className="services__details-content services__details-content-two">
|
||||
<h2 className="title">Lead Generation</h2>
|
||||
<p>
|
||||
Finding and converting high-quality leads on a consistent basis is often
|
||||
the largest hurdle to leap for many businesses. Without a steady stream
|
||||
of qualified prospects, growing your customer base and boosting sales
|
||||
becomes a daunting task. At RankRunners, our Lead Generation services
|
||||
tackle this problem head-on. We use the latest, most advanced techniques
|
||||
and strategies to attract, engage, and convert leads that are most
|
||||
likely to benefit from your products or services, ensuring a steady flow
|
||||
of potential customers and driving your business growth.
|
||||
</p>
|
||||
<div className="services__details-thumb">
|
||||
<img src="/assets/img/custom/service-04-01.png" alt="" />
|
||||
</div>
|
||||
<div className="services__details-inner-three">
|
||||
<h3>Benefits:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Qualified Leads</strong>: We focus on generating
|
||||
high-quality leads that are genuinely interested in what you
|
||||
offer, improving your chances of conversion and sales.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Customized Campaigns</strong>: Tailored lead generation
|
||||
strategies that align with your specific business goals and
|
||||
target audience, ensuring maximum effectiveness.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Increased Efficiency</strong>: Streamline your sales
|
||||
process with a consistent influx of leads, allowing your sales
|
||||
team to focus on closing deals rather than finding prospects.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Data-Driven Insights</strong>: Benefit from our detailed
|
||||
analytics and reports that provide insights into lead quality,
|
||||
campaign performance, and areas for improvement.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Cost-Effective</strong>: Optimize your lead generation
|
||||
spend with strategies designed to deliver the best return on
|
||||
investment and reduce wasted efforts.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="services__details-inner-two services__details-inner-four">
|
||||
<div className="gutter-24">
|
||||
<div className="col-48">
|
||||
<div className="services__details-inner-img float-img">
|
||||
<img src="/assets/img/custom/service-04-02.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-52">
|
||||
<div className="services__details-inner-content-two">
|
||||
<h3>Services:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Lead Generation Strategy</strong>:
|
||||
Developing a comprehensive strategy that outlines
|
||||
the best tactics and channels to reach your target
|
||||
audience effectively.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Content Marketing</strong>: Creating
|
||||
engaging and valuable content that attracts and
|
||||
nurtures leads, positioning your brand as an
|
||||
industry authority.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Email Campaigns</strong>: Designing and
|
||||
executing targeted email campaigns that capture
|
||||
interest and drive engagement from potential leads.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Social Media Lead Generation</strong>:
|
||||
Utilizing social media platforms to connect with
|
||||
prospects and generate leads through organic and
|
||||
paid strategies.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Landing Page Optimization</strong>: Crafting
|
||||
and optimizing high-converting landing pages
|
||||
designed to capture lead information and drive
|
||||
conversions.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Lead Nurturing</strong>: Implementing
|
||||
systems and tactics to engage and nurture leads
|
||||
through the sales funnel, increasing the likelihood
|
||||
of conversion.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<strong>
|
||||
Initial lead generation setup and campaign launch typically take 4
|
||||
to 6 weeks, depending on the complexity of the strategy and the
|
||||
channels involved. Ongoing lead generation efforts are continuous,
|
||||
with regular updates and performance reviews provided on a monthly
|
||||
basis.
|
||||
</strong>
|
||||
</p>
|
||||
<div className="all_services__area-six-two">
|
||||
<div className="container">
|
||||
<h3>
|
||||
Ready to have high-quality leads “Running” towards your
|
||||
business?
|
||||
</h3>
|
||||
<Link href="/schedule" className="btn">
|
||||
Start Generating Leads Today!
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<p>Have questions or need more details? Contact us today:</p>
|
||||
<div className="contact__info mb-50">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-phone-call" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Phone</h4>
|
||||
<Link href="tel:+14702604117">(470) 260-4117</Link>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-mail" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Email</h4>
|
||||
<Link href="mailto:support@rankrunners.net">
|
||||
support@rankrunners.net
|
||||
</Link>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h4 className="title-center">
|
||||
Let RankRunners help you turn prospects into loyal customers with our
|
||||
expert lead generation services!
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="services__sidebar">
|
||||
<div className="sidebar__widget">
|
||||
<div className="services-sidebar">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="/services/search-engine-optimization">
|
||||
Search Engine Optimization
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/ad-campaign-management">
|
||||
Ad Campaign Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cloud-computing">
|
||||
Cloud Computing <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/lead-generation" className="active">
|
||||
Lead Generation <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/web-development">
|
||||
Web Development/Design
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/social-media-management">
|
||||
Social Media Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/performance-monitoring">
|
||||
Performance Monitoring
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cyber-security">
|
||||
Cyber Security <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/website-maintenance">
|
||||
Website Maintenance
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">SEO Checker</h4>
|
||||
<div className="sidebar__brochure sidebar__brochure-two">
|
||||
<p>Check your website's SEO performance.</p>
|
||||
<Link href="/#seocheck">SEO Checker</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-two">
|
||||
<div
|
||||
className="sidebar__contact sidebar__contact-two"
|
||||
data-background="/assets/img/services/sidebar_contact_bg.jpg"
|
||||
>
|
||||
<h2 className="title">
|
||||
Contact Us Any Time For Immediate Support!
|
||||
</h2>
|
||||
<Link href="tel:+14702604117" className="btn">
|
||||
<i className="flaticon-phone-call" />
|
||||
(470) 260-4117
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">Send Us a Message</h4>
|
||||
<div className="sidebar__form">
|
||||
<form action="#">
|
||||
<div className="form-grp">
|
||||
<input type="text" name="name" placeholder="Your Name" />
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="phone"
|
||||
placeholder="Phone Number"
|
||||
/>
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<textarea name="message" placeholder="Type Your Message" />
|
||||
</div>
|
||||
<button type="submit" className="btn btn-two">
|
||||
Send Message
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div className="brand-area">
|
||||
<div className="container">
|
||||
<h4 className="brand__content">Trusted by Numerous Companies, Worldwide</h4>
|
||||
<div className="swiper-container brand-active">
|
||||
<BrandActiveSlider />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
32
app/services/page.js
Normal file
32
app/services/page.js
Normal file
@ -0,0 +1,32 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Services9 from "@/components/sections/Services9";
|
||||
import Choose2Two from "@/components/sections/Choose2Two";
|
||||
import BrandActiveSlider from "@/components/slider/BrandActiveSlider";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
import Link from "next/link";
|
||||
|
||||
export const metadata = {
|
||||
title: "Services | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function Services() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Services">
|
||||
<Services9 />
|
||||
<Choose2Two />
|
||||
<div className="brand__area-four">
|
||||
<div className="container">
|
||||
<h4 className="brand__content">Trusted by Numerous Companies, Worldwide</h4>
|
||||
<div className="swiper-container brand-active">
|
||||
<BrandActiveSlider />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Callback1 />
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
297
app/services/performance-monitoring/page.js
Normal file
297
app/services/performance-monitoring/page.js
Normal file
@ -0,0 +1,297 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import BrandActiveSlider from "@/components/slider/BrandActiveSlider";
|
||||
import Link from "next/link";
|
||||
|
||||
export const metadata = {
|
||||
title: "Service Details | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ServicesDetails3() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Services We Provide">
|
||||
<div>
|
||||
<section className="services__details-area">
|
||||
<div className="container">
|
||||
<div className="services__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70 order-0 order-lg-2">
|
||||
<div className="services__details-content services__details-content-two">
|
||||
<h2 className="title">Performance Monitoring</h2>
|
||||
<p>
|
||||
When you invest into digital marketing, you’ll want to understand and
|
||||
keep tabs on how your investments are performing. Many businesses
|
||||
struggle with tracking and interpreting data across various channels in
|
||||
a digestible fashion, which can lead to missed opportunities and wasted
|
||||
resources. RankRunners addresses these challenges with our Performance
|
||||
Monitoring services. We provide detailed insights into your website’s
|
||||
technical performance, lead generation/conversion metrics, and social
|
||||
media statistics, all visualized in a customized, easy-to-understand
|
||||
presentation tailored specifically for your ease of processing. Our goal
|
||||
is to confirm that your marketing efforts are driving profit and to help
|
||||
you make data-driven decisions for continued success.
|
||||
</p>
|
||||
<div className="services__details-thumb">
|
||||
<img src="/assets/img/custom/service-07-01.png" alt="" />
|
||||
</div>
|
||||
<div className="services__details-inner-three">
|
||||
<h3>Benefits:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Holistic View</strong>: Gain a comprehensive overview of
|
||||
your marketing performance across all channels, including
|
||||
technical website performance, lead generation, and social
|
||||
media.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Data Visualization</strong>: Receive clear, visual
|
||||
reports that make complex data easy to understand and
|
||||
actionable, allowing you to see exactly how your investments are
|
||||
performing.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Informed Decisions</strong>: Utilize detailed
|
||||
performance insights to make strategic adjustments and optimize
|
||||
your marketing efforts for better results and higher ROI.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Real-Time Monitoring</strong>: Track key metrics and
|
||||
performance indicators in real-time, enabling you to respond
|
||||
swiftly to changes and opportunities.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Profit Confirmation</strong>: Validate that your
|
||||
marketing investments are delivering the desired outcomes,
|
||||
ensuring that every dollar spent contributes to your business’s
|
||||
success.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="services__details-inner-two services__details-inner-four">
|
||||
<div className="gutter-24">
|
||||
<div className="col-48">
|
||||
<div className="services__details-inner-img float-img">
|
||||
<img src="/assets/img/custom/service-07-02.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-52">
|
||||
<div className="services__details-inner-content-two">
|
||||
<h3>Services:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>
|
||||
Technical Website Performance Monitoring
|
||||
</strong>
|
||||
: Regularly assessing your website’s speed, uptime,
|
||||
and overall functionality to ensure a seamless user
|
||||
experience and identify areas for improvement.
|
||||
</li>
|
||||
<li>
|
||||
<strong>
|
||||
Lead Generation and Conversion Tracking
|
||||
</strong>
|
||||
: Measuring the effectiveness of your lead
|
||||
generation strategies and conversion rates to
|
||||
optimize your sales funnel and maximize ROI.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Social Media Performance Analysis</strong>:
|
||||
Tracking engagement, reach, and other key metrics on
|
||||
social media platforms to evaluate the impact of
|
||||
your social media efforts.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Custom Reporting</strong>: Providing
|
||||
tailored, visual reports that summarize key
|
||||
performance data and highlight trends, enabling you
|
||||
to easily interpret results and make informed
|
||||
decisions.
|
||||
</li>
|
||||
<li>
|
||||
<strong>
|
||||
Performance Optimization Recommendations
|
||||
</strong>
|
||||
: Offering actionable insights and recommendations
|
||||
based on performance data to help you refine your
|
||||
marketing strategies and improve results.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<strong>
|
||||
Initial setup and implementation of performance monitoring tools
|
||||
typically take 2 to 4 weeks, depending on the complexity of your
|
||||
needs and existing systems. Ongoing monitoring and reporting are
|
||||
continuous, with monthly updates and performance reviews provided to
|
||||
keep you informed and agile.
|
||||
</strong>
|
||||
</p>
|
||||
<div className="all_services__area-six-two">
|
||||
<div className="container">
|
||||
<h3>Ensure your marketing investments are paying off!</h3>
|
||||
<Link href="/schedule" className="btn">
|
||||
Start Monitoring Your Performance Today!
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<p>Have questions or need more details? Contact us today:</p>
|
||||
<div className="contact__info mb-50">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-phone-call" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Phone</h4>
|
||||
<Link href="tel:+14702604117">(470) 260-4117</Link>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-mail" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Email</h4>
|
||||
<Link href="mailto:support@rankrunners.net">
|
||||
support@rankrunners.net
|
||||
</Link>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h4 className="title-center">
|
||||
Let RankRunners create the insights you need to drive your marketing
|
||||
success with our expert performance monitoring services!
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="services__sidebar">
|
||||
<div className="sidebar__widget">
|
||||
<div className="services-sidebar">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="/services/search-engine-optimization">
|
||||
Search Engine Optimization
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/ad-campaign-management">
|
||||
Ad Campaign Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cloud-computing">
|
||||
Cloud Computing <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/lead-generation">
|
||||
Lead Generation <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/web-development">
|
||||
Web Development/Design
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/social-media-management">
|
||||
Social Media Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link
|
||||
href="/services/performance-monitoring"
|
||||
className="active"
|
||||
>
|
||||
Performance Monitoring
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cyber-security">
|
||||
Cyber Security <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/website-maintenance">
|
||||
Website Maintenance
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">SEO Checker</h4>
|
||||
<div className="sidebar__brochure sidebar__brochure-two">
|
||||
<p>Check your website's SEO performance.</p>
|
||||
<Link href="/#seocheck">SEO Checker</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-two">
|
||||
<div
|
||||
className="sidebar__contact sidebar__contact-two"
|
||||
data-background="/assets/img/services/sidebar_contact_bg.jpg"
|
||||
>
|
||||
<h2 className="title">
|
||||
Contact Us Any Time For Immediate Support!
|
||||
</h2>
|
||||
<Link href="tel:+14702604117" className="btn">
|
||||
<i className="flaticon-phone-call" />
|
||||
(470) 260-4117
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">Send Us a Message</h4>
|
||||
<div className="sidebar__form">
|
||||
<form action="#">
|
||||
<div className="form-grp">
|
||||
<input type="text" name="name" placeholder="Your Name" />
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="phone"
|
||||
placeholder="Phone Number"
|
||||
/>
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<textarea name="message" placeholder="Type Your Message" />
|
||||
</div>
|
||||
<button type="submit" className="btn btn-two">
|
||||
Send Message
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div className="brand-area">
|
||||
<div className="container">
|
||||
<h4 className="brand__content">Trusted by Numerous Companies, Worldwide</h4>
|
||||
<div className="swiper-container brand-active">
|
||||
<BrandActiveSlider />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
296
app/services/search-engine-optimization/page.js
Normal file
296
app/services/search-engine-optimization/page.js
Normal file
@ -0,0 +1,296 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import BrandActiveSlider from "@/components/slider/BrandActiveSlider";
|
||||
import Link from "next/link";
|
||||
|
||||
export const metadata = {
|
||||
title: "Service Details | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ServicesDetails3() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Services We Provide">
|
||||
<div>
|
||||
<section className="services__details-area">
|
||||
<div className="container">
|
||||
<div className="services__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70 order-0 order-lg-2">
|
||||
<div className="services__details-content services__details-content-two">
|
||||
<h2 className="title">Search Engine Optimization</h2>
|
||||
<p>
|
||||
Businesses utilizing an online presence are becoming more saturated by
|
||||
the day. The competition keeps increasing, and it is projected to
|
||||
continue to increase at an exponential rate, as the physical world
|
||||
collectively and gradually transitions onto the digital one. Because of
|
||||
this fact, simply having a visually pleasing website isn’t enough to
|
||||
rank your website at the top of Google’s search results. If your website
|
||||
isn’t optimized for search engines, it’s like having a beautifully
|
||||
designed store that no one knows about. Poor SEO means low visibility,
|
||||
less traffic, and missed opportunities. At RankRunners, we have years of
|
||||
successful and proven SEO experience under our belt that will turn your
|
||||
website into a powerful magnet for search engines and users alike. Our
|
||||
SEO Optimization service improves your search engine rankings, increases
|
||||
your domain authority, and drives targeted traffic to your site,
|
||||
ensuring your online presence is both impactful and effective.
|
||||
</p>
|
||||
<div className="services__details-thumb">
|
||||
<img src="/assets/img/custom/service-01-01.png" alt="" />
|
||||
</div>
|
||||
<div className="services__details-inner-three">
|
||||
<h3>Benefits:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Increased Visibility</strong>: Our expert strategies
|
||||
boost your website’s ranking on search engines, making it easier
|
||||
for potential customers to find you.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Targeted Traffic</strong>: We attract visitors who are
|
||||
actively searching for your products or services, leading to
|
||||
higher engagement and conversion rates.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Customized Strategy</strong>: Our SEO plans are tailored
|
||||
to your specific industry, audience, and goals, ensuring the
|
||||
best results for your business.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Comprehensive Analysis</strong>: We provide in-depth
|
||||
performance reports and analytics, so you can track the progress
|
||||
and success of your SEO efforts.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Long-Term Results</strong>: Our SEO optimization focuses
|
||||
on sustainable growth, helping you maintain and build upon your
|
||||
search engine ranking over time.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="services__details-inner-two services__details-inner-four">
|
||||
<div className="gutter-24">
|
||||
<div className="col-48">
|
||||
<div className="services__details-inner-img float-img">
|
||||
<img src="/assets/img/custom/service-01-02.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-52">
|
||||
<div className="services__details-inner-content-two">
|
||||
<h3>Services:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Keyword Research</strong>: Identifying
|
||||
high-value keywords that attract your target
|
||||
audience and drive qualified traffic to your site.
|
||||
</li>
|
||||
<li>
|
||||
<strong>On-Page Optimization</strong>: Enhancing
|
||||
individual web pages to improve search engine
|
||||
rankings and user experience, including meta tags,
|
||||
headers, and content.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Technical SEO</strong>: Addressing technical
|
||||
aspects of your website, such as site speed, mobile
|
||||
responsiveness, and crawlability, to ensure it meets
|
||||
search engine standards.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Content Creation</strong>: Developing
|
||||
high-quality, relevant content (Blogs, Services,
|
||||
Front Page, About Us, etc.) that engages visitors
|
||||
and improves your site’s authority and ranking
|
||||
according to certain keywords.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Link Building</strong>: Creating a strong
|
||||
backlink profile through ethical and effective
|
||||
strategies to boost your site’s credibility and
|
||||
search engine ranking.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Performance Monitoring</strong>: Regularly
|
||||
analyzing and reporting on SEO performance to ensure
|
||||
ongoing optimization and improvement.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<strong>
|
||||
SEO is an ongoing process with results typically becoming visible
|
||||
within 3 to 6 months. Initial optimization can be completed within 4
|
||||
to 6 weeks, depending on the complexity of your website and the
|
||||
scope of the work.
|
||||
</strong>
|
||||
</p>
|
||||
<div className="all_services__area-six-two">
|
||||
<div className="container">
|
||||
<h3>Ready to “Outrun” your competition?</h3>
|
||||
<Link href="/schedule" className="btn">
|
||||
Get Started Today!
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
Have questions or ready to kick off your SEO journey? Reach out to us
|
||||
via:
|
||||
</p>
|
||||
<div className="contact__info mb-50">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-phone-call" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Phone</h4>
|
||||
<Link href="tel:+14702604117">(470) 260-4117</Link>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-mail" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Email</h4>
|
||||
<Link href="mailto:support@rankrunners.net">
|
||||
support@rankrunners.net
|
||||
</Link>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h4 className="title-center">
|
||||
We look forward to helping your business achieve greater online success!
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="services__sidebar">
|
||||
<div className="sidebar__widget">
|
||||
<div className="services-sidebar">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link
|
||||
href="/services/search-engine-optimization"
|
||||
className="active"
|
||||
>
|
||||
Search Engine Optimization
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/ad-campaign-management">
|
||||
Ad Campaign Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cloud-computing">
|
||||
Cloud Computing <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/lead-generation">
|
||||
Lead Generation <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/web-development">
|
||||
Web Development/Design
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/social-media-management">
|
||||
Social Media Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/performance-monitoring">
|
||||
Performance Monitoring
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cyber-security">
|
||||
Cyber Security <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/website-maintenance">
|
||||
Website Maintenance
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">SEO Checker</h4>
|
||||
<div className="sidebar__brochure sidebar__brochure-two">
|
||||
<p>Check your website's SEO performance.</p>
|
||||
<Link href="/#seocheck">SEO Checker</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-two">
|
||||
<div
|
||||
className="sidebar__contact sidebar__contact-two"
|
||||
data-background="/assets/img/services/sidebar_contact_bg.jpg"
|
||||
>
|
||||
<h2 className="title">
|
||||
Contact Us Any Time For Immediate Support!
|
||||
</h2>
|
||||
<Link href="tel:+14702604117" className="btn">
|
||||
<i className="flaticon-phone-call" />
|
||||
(470) 260-4117
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">Send Us a Message</h4>
|
||||
<div className="sidebar__form">
|
||||
<form action="#">
|
||||
<div className="form-grp">
|
||||
<input type="text" name="name" placeholder="Your Name" />
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="phone"
|
||||
placeholder="Phone Number"
|
||||
/>
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<textarea name="message" placeholder="Type Your Message" />
|
||||
</div>
|
||||
<button type="submit" className="btn btn-two">
|
||||
Send Message
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div className="brand-area">
|
||||
<div className="container">
|
||||
<h4 className="brand__content">Trusted by Numerous Companies, Worldwide</h4>
|
||||
<div className="swiper-container brand-active">
|
||||
<BrandActiveSlider />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
291
app/services/social-media-management/page.js
Normal file
291
app/services/social-media-management/page.js
Normal file
@ -0,0 +1,291 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import BrandActiveSlider from "@/components/slider/BrandActiveSlider";
|
||||
import Link from "next/link";
|
||||
|
||||
export const metadata = {
|
||||
title: "Service Details | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ServicesDetails3() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Services We Provide">
|
||||
<div>
|
||||
<section className="services__details-area">
|
||||
<div className="container">
|
||||
<div className="services__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70 order-0 order-lg-2">
|
||||
<div className="services__details-content services__details-content-two">
|
||||
<h2 className="title">Social Media Management</h2>
|
||||
<p>
|
||||
Maintaining consistently effective posts on a social media account can
|
||||
be challenging. Many businesses struggle to elevate their presence,
|
||||
create engaging content, and measure their social media impact
|
||||
effectively. RankRunners solves these challenges with our comprehensive
|
||||
Social Media Management services. We will handle every aspect of your
|
||||
social media strategy, from content creation to analytics, beginning to
|
||||
end, so you can focus on running your business while we enhance your
|
||||
online presence.
|
||||
</p>
|
||||
<div className="services__details-thumb">
|
||||
<img src="/assets/img/custom/service-06-01.png" alt="" />
|
||||
</div>
|
||||
<div className="services__details-inner-three">
|
||||
<h3>Benefits:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Strategic Planning</strong>: We develop tailored social
|
||||
media strategies that align with your business goals and target
|
||||
audience, ensuring effective engagement and growth.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Content Creation</strong>: Our team produces
|
||||
high-quality, relevant content that resonates with your audience
|
||||
and reflects your brand’s voice and values.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Consistent Posting</strong>: We ensure regular and
|
||||
timely updates across all your social media platforms, keeping
|
||||
your audience engaged and informed.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Community Engagement</strong>: We actively manage
|
||||
interactions with your followers, fostering positive
|
||||
relationships and addressing inquiries or feedback promptly.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Performance Tracking</strong>: Detailed analytics and
|
||||
reports provide insights into your social media performance,
|
||||
helping us continuously refine strategies for better results.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="services__details-inner-two services__details-inner-four">
|
||||
<div className="gutter-24">
|
||||
<div className="col-48">
|
||||
<div className="services__details-inner-img float-img">
|
||||
<img src="/assets/img/custom/service-06-02.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-52">
|
||||
<div className="services__details-inner-content-two">
|
||||
<h3>Services:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Social Media Strategy Development</strong>:
|
||||
Crafting a comprehensive strategy that outlines
|
||||
goals, target audience, and platform-specific
|
||||
tactics for optimal results.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Content Creation and Curation</strong>:
|
||||
Designing engaging and shareable content, including
|
||||
graphics, videos, and copy, to captivate your
|
||||
audience and build brand loyalty.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Account Management</strong>: Handling
|
||||
day-to-day management of your social media profiles,
|
||||
including scheduling posts, responding to comments,
|
||||
and monitoring engagement.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Social Media Advertising</strong>: Creating
|
||||
and managing targeted ad campaigns to increase
|
||||
reach, drive traffic, and generate leads or sales.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Analytics and Reporting</strong>: Providing
|
||||
regular reports on social media performance,
|
||||
including metrics like engagement rates, growth
|
||||
statistics, and campaign effectiveness.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Influencer Collaboration</strong>:
|
||||
Identifying and partnering with relevant influencers
|
||||
to expand your brand’s reach and credibility within
|
||||
your industry.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<strong>
|
||||
Initial social media strategy and setup typically take 2 to 4 weeks,
|
||||
depending on the complexity and number of platforms. Ongoing
|
||||
management and content creation are continuous, with performance
|
||||
reviews and strategy adjustments made on a monthly basis.
|
||||
</strong>
|
||||
</p>
|
||||
<div className="all_services__area-six-two">
|
||||
<div className="container">
|
||||
<h3>
|
||||
Ready to elevate your social media presence and drive
|
||||
engagement?
|
||||
</h3>
|
||||
<Link href="/schedule" className="btn">
|
||||
Start Your Social Media Journey Today!
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<p>Have questions or need more details? Contact us today:</p>
|
||||
<div className="contact__info mb-50">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-phone-call" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Phone</h4>
|
||||
<Link href="tel:+14702604117">(470) 260-4117</Link>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-mail" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Email</h4>
|
||||
<Link href="mailto:support@rankrunners.net">
|
||||
support@rankrunners.net
|
||||
</Link>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h4 className="title-center">
|
||||
Let RankRunners amplify your social media presence with our expert
|
||||
management services!
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="services__sidebar">
|
||||
<div className="sidebar__widget">
|
||||
<div className="services-sidebar">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="/services/search-engine-optimization">
|
||||
Search Engine Optimization
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/ad-campaign-management">
|
||||
Ad Campaign Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cloud-computing">
|
||||
Cloud Computing <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/lead-generation">
|
||||
Lead Generation <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/web-development">
|
||||
Web Development/Design
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link
|
||||
href="/services/social-media-management"
|
||||
className="active"
|
||||
>
|
||||
Social Media Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/performance-monitoring">
|
||||
Performance Monitoring
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cyber-security">
|
||||
Cyber Security <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/website-maintenance">
|
||||
Website Maintenance
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">SEO Checker</h4>
|
||||
<div className="sidebar__brochure sidebar__brochure-two">
|
||||
<p>Check your website's SEO performance.</p>
|
||||
<Link href="/#seocheck">SEO Checker</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-two">
|
||||
<div
|
||||
className="sidebar__contact sidebar__contact-two"
|
||||
data-background="/assets/img/services/sidebar_contact_bg.jpg"
|
||||
>
|
||||
<h2 className="title">
|
||||
Contact Us Any Time For Immediate Support!
|
||||
</h2>
|
||||
<Link href="tel:+14702604117" className="btn">
|
||||
<i className="flaticon-phone-call" />
|
||||
(470) 260-4117
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">Send Us a Message</h4>
|
||||
<div className="sidebar__form">
|
||||
<form action="#">
|
||||
<div className="form-grp">
|
||||
<input type="text" name="name" placeholder="Your Name" />
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="phone"
|
||||
placeholder="Phone Number"
|
||||
/>
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<textarea name="message" placeholder="Type Your Message" />
|
||||
</div>
|
||||
<button type="submit" className="btn btn-two">
|
||||
Send Message
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div className="brand-area">
|
||||
<div className="container">
|
||||
<h4 className="brand__content">Trusted by Numerous Companies, Worldwide</h4>
|
||||
<div className="swiper-container brand-active">
|
||||
<BrandActiveSlider />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
293
app/services/web-development/page.js
Normal file
293
app/services/web-development/page.js
Normal file
@ -0,0 +1,293 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import BrandActiveSlider from "@/components/slider/BrandActiveSlider";
|
||||
import Link from "next/link";
|
||||
|
||||
export const metadata = {
|
||||
title: "Service Details | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ServicesDetails3() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Services We Provide">
|
||||
<div>
|
||||
<section className="services__details-area">
|
||||
<div className="container">
|
||||
<div className="services__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70 order-0 order-lg-2">
|
||||
<div className="services__details-content services__details-content-two">
|
||||
<h2 className="title">Web Development / Design</h2>
|
||||
<p>
|
||||
The very first impression that an online prospect forms of your business
|
||||
comes from the quality of your Web Design. Many companies struggle with
|
||||
outdated designs, poor user experience, or technical issues like slow
|
||||
site speed or dysfunctional buttons that hinder their online presence.
|
||||
RankRunners addresses these challenges with our comprehensive Web
|
||||
Development and Design services. We build and design websites that not
|
||||
only look great but also function seamlessly, ensuring an exceptional
|
||||
user experience and robust performance. You can reference this website
|
||||
that you’re currently reading through for a first-hand account of our
|
||||
expertise, and check our Case Studies page to see other websites we’ve
|
||||
created.
|
||||
</p>
|
||||
<div className="services__details-thumb">
|
||||
<img src="/assets/img/custom/service-05-01.png" alt="" />
|
||||
</div>
|
||||
<div className="services__details-inner-three">
|
||||
<h3>Benefits:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Custom Design</strong>: We create visually appealing and
|
||||
unique designs tailored to your brand’s identity, helping you
|
||||
stand out in a crowded market.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Responsive Layouts</strong>: Our websites are designed
|
||||
to look and perform perfectly on all devices, from desktops to
|
||||
smartphones, ensuring a consistent user experience.
|
||||
</li>
|
||||
<li>
|
||||
<strong>User-Centric Experience</strong>: We focus on intuitive
|
||||
navigation and user-friendly interfaces to keep visitors engaged
|
||||
and encourage conversions.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Technical Excellence</strong>: Our backend development
|
||||
ensures your website runs smoothly with fast load times, secure
|
||||
functionality, and scalable solutions.
|
||||
</li>
|
||||
<li>
|
||||
<strong>SEO-Friendly</strong>: We build websites with search
|
||||
engine optimization in mind, improving your visibility and
|
||||
ranking in search engine results.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="services__details-inner-two services__details-inner-four">
|
||||
<div className="gutter-24">
|
||||
<div className="col-48">
|
||||
<div className="services__details-inner-img float-img">
|
||||
<img src="/assets/img/custom/service-05-02.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-52">
|
||||
<div className="services__details-inner-content-two">
|
||||
<h3>Services:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Frontend Development</strong>: Crafting the
|
||||
visual elements of your website using modern
|
||||
technologies such as HTML, CSS, and JavaScript to
|
||||
ensure an attractive and interactive user
|
||||
experience.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Backend Development</strong>: Developing the
|
||||
server-side logic and database management to support
|
||||
your website’s functionality, including custom
|
||||
features and integrations.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Responsive Web Design</strong>: Designing
|
||||
websites that adapt to different screen sizes and
|
||||
devices, ensuring a seamless experience for all
|
||||
users.
|
||||
</li>
|
||||
<li>
|
||||
<strong>E-Commerce Development</strong>: Building
|
||||
robust online stores with secure payment gateways,
|
||||
inventory management, and user-friendly shopping
|
||||
experiences.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Content Management Systems (CMS)</strong>:
|
||||
Implementing and customizing CMS platforms like
|
||||
WordPress or Joomla to enable easy content updates
|
||||
and management.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Website Maintenance</strong>: Offering
|
||||
ongoing support and updates to keep your website
|
||||
secure, up-to-date, and functioning optimally.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<strong>
|
||||
The development and design of a new website typically take 6 to 12
|
||||
weeks, depending on the complexity and scope of the project. This
|
||||
includes initial design, development, testing, and revisions. We
|
||||
will provide regular updates throughout the process to ensure your
|
||||
vision is realized.
|
||||
</strong>
|
||||
</p>
|
||||
<div className="all_services__area-six-two">
|
||||
<div className="container">
|
||||
<h3>
|
||||
Ready to elevate your online presence with a stunning new
|
||||
website?
|
||||
</h3>
|
||||
<Link href="/schedule" className="btn">
|
||||
Get Started with Web Development Today!
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<p>Have questions or need more details? Contact us today:</p>
|
||||
<div className="contact__info mb-50">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-phone-call" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Phone</h4>
|
||||
<Link href="tel:+14702604117">(470) 260-4117</Link>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-mail" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Email</h4>
|
||||
<Link href="mailto:support@rankrunners.net">
|
||||
support@rankrunners.net
|
||||
</Link>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h4 className="title-center">
|
||||
Let RankRunners bring your website vision to life with our expert web
|
||||
development and design services!
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="services__sidebar">
|
||||
<div className="sidebar__widget">
|
||||
<div className="services-sidebar">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="/services/search-engine-optimization">
|
||||
Search Engine Optimization
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/ad-campaign-management">
|
||||
Ad Campaign Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cloud-computing">
|
||||
Cloud Computing <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/lead-generation">
|
||||
Lead Generation <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/web-development" className="active">
|
||||
Web Development/Design
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/social-media-management">
|
||||
Social Media Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/performance-monitoring">
|
||||
Performance Monitoring
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cyber-security">
|
||||
Cyber Security <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/website-maintenance">
|
||||
Website Maintenance
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">SEO Checker</h4>
|
||||
<div className="sidebar__brochure sidebar__brochure-two">
|
||||
<p>Check your website's SEO performance.</p>
|
||||
<Link href="/#seocheck">SEO Checker</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-two">
|
||||
<div
|
||||
className="sidebar__contact sidebar__contact-two"
|
||||
data-background="/assets/img/services/sidebar_contact_bg.jpg"
|
||||
>
|
||||
<h2 className="title">
|
||||
Contact Us Any Time For Immediate Support!
|
||||
</h2>
|
||||
<Link href="tel:+14702604117" className="btn">
|
||||
<i className="flaticon-phone-call" />
|
||||
(470) 260-4117
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">Send Us a Message</h4>
|
||||
<div className="sidebar__form">
|
||||
<form action="#">
|
||||
<div className="form-grp">
|
||||
<input type="text" name="name" placeholder="Your Name" />
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="phone"
|
||||
placeholder="Phone Number"
|
||||
/>
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<textarea name="message" placeholder="Type Your Message" />
|
||||
</div>
|
||||
<button type="submit" className="btn btn-two">
|
||||
Send Message
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div className="brand-area">
|
||||
<div className="container">
|
||||
<h4 className="brand__content">Trusted by Numerous Companies, Worldwide</h4>
|
||||
<div className="swiper-container brand-active">
|
||||
<BrandActiveSlider />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
337
app/services/website-maintenance/page.js
Normal file
337
app/services/website-maintenance/page.js
Normal file
@ -0,0 +1,337 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import BrandActiveSlider from "@/components/slider/BrandActiveSlider";
|
||||
import Link from "next/link";
|
||||
|
||||
export const metadata = {
|
||||
title: "Service Details | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function ServicesDetails3() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Services We Provide">
|
||||
<div>
|
||||
<section className="services__details-area">
|
||||
<div className="container">
|
||||
<div className="services__details-wrap">
|
||||
<div className="row">
|
||||
<div className="col-70 order-0 order-lg-2">
|
||||
<div className="services__details-content services__details-content-two">
|
||||
<h2 className="title">Website Maintenance</h2>
|
||||
<p>
|
||||
At Rankrunners, we understand the importance of a well-maintained
|
||||
website for your business's success. Our website maintenance service
|
||||
ensures your site remains up-to-date, secure, and optimized for
|
||||
performance, allowing you to focus on your core business activities.
|
||||
</p>
|
||||
<div className="services__details-thumb">
|
||||
<img src="/assets/img/custom/service-09-01.png" alt="" />
|
||||
</div>
|
||||
<div className="services__details-inner-three">
|
||||
<h3>Benefits:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Enhanced Security</strong>:
|
||||
<ul>
|
||||
<li>
|
||||
Regular security updates and patches to protect your
|
||||
website from vulnerabilities and cyber threats.
|
||||
</li>
|
||||
<li>
|
||||
Continuous monitoring to detect and address potential
|
||||
security breaches promptly.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Optimal Performance</strong>:
|
||||
<ul>
|
||||
<li>
|
||||
Routine performance checks and optimizations to ensure
|
||||
your website loads quickly and runs smoothly.
|
||||
</li>
|
||||
<li>
|
||||
Regular updates to website software, plugins, and themes
|
||||
for improved functionality and compatibility.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<strong>SEO Maintenance</strong>:
|
||||
<ul>
|
||||
<li>
|
||||
Ongoing SEO audits and adjustments to maintain and
|
||||
improve search engine rankings.
|
||||
</li>
|
||||
<li>
|
||||
Implementation of best practices for on-page and
|
||||
off-page SEO to boost visibility and organic traffic.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Content Updates</strong>:
|
||||
<ul>
|
||||
<li>
|
||||
Timely updates to website content, including text,
|
||||
images, and multimedia, to keep your site fresh and
|
||||
relevant.
|
||||
</li>
|
||||
<li>
|
||||
Assistance with content creation and editing to ensure
|
||||
your messaging remains consistent and engaging.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Technical Support</strong>:
|
||||
<ul>
|
||||
<li>
|
||||
Access to a dedicated support team for troubleshooting
|
||||
and resolving technical issues.
|
||||
</li>
|
||||
<li>
|
||||
Regular backups to prevent data loss and ensure quick
|
||||
recovery in case of emergencies.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<strong>User Experience (UX) Enhancements</strong>:
|
||||
<ul>
|
||||
<li>
|
||||
Continuous improvement of website navigation and
|
||||
usability for a better user experience.
|
||||
</li>
|
||||
<li>
|
||||
Implementation of responsive design techniques to ensure
|
||||
your site looks and functions well on all devices.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Analytics and Reporting</strong>:
|
||||
<ul>
|
||||
<li>
|
||||
Detailed monthly reports on website performance,
|
||||
traffic, and user behavior.
|
||||
</li>
|
||||
<li>
|
||||
Insights and recommendations based on analytics to help
|
||||
you make informed decisions.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Compliance and Accessibility</strong>:
|
||||
<ul>
|
||||
<li>
|
||||
Regular checks to ensure your website complies with
|
||||
industry standards and regulations.
|
||||
</li>
|
||||
<li>
|
||||
Enhancements to website accessibility, making it
|
||||
user-friendly for people with disabilities.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="services__details-inner-two services__details-inner-four">
|
||||
<div className="row gutter-24 align-items-center">
|
||||
<div className="col-48">
|
||||
<div className="services__details-inner-img">
|
||||
<img src="/assets/img/custom/service-09-02.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-52">
|
||||
<div className="services__details-inner-content-two">
|
||||
<p>
|
||||
By choosing Rankrunners for your website maintenance
|
||||
needs, you can rest assured that your online presence is
|
||||
in expert hands. We are committed to helping you achieve
|
||||
your business goals by keeping your website secure,
|
||||
optimized, and performing at its best.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<strong>
|
||||
Initial setup and a professional assessment of your company’s
|
||||
website(s) typically takes 2 to 4 weeks, depending on the complexity
|
||||
of your needs and existing systems. Ongoing maintenance and applying
|
||||
any updates are continuous, with as-needed updates and solutions
|
||||
provided to keep you safe and secure.
|
||||
</strong>
|
||||
</p>
|
||||
<div className="all_services__area-six-two">
|
||||
<div className="container">
|
||||
<h3>
|
||||
Website Maintenance by RankRunners will keep your website ahead
|
||||
of the competition. Consult us today!
|
||||
</h3>
|
||||
<Link href="/schedule" className="btn">
|
||||
Consult us Today!
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<p>Have questions or need more details? Contact us today:</p>
|
||||
<div className="contact__info mb-50">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-phone-call" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Phone</h4>
|
||||
<Link href="tel:+14702604117">(470) 260-4117</Link>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className="icon">
|
||||
<i className="flaticon-mail" />
|
||||
</div>
|
||||
<div className="content">
|
||||
<h4 className="title">Email</h4>
|
||||
<Link href="mailto:support@rankrunners.net">
|
||||
support@rankrunners.net
|
||||
</Link>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h4 className="title-center">
|
||||
Let RankRunners maintain your website so you can worry about doing what
|
||||
you do best!
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<aside className="services__sidebar">
|
||||
<div className="sidebar__widget">
|
||||
<div className="services-sidebar">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="/services/search-engine-optimization">
|
||||
Search Engine Optimization
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/ad-campaign-management">
|
||||
Ad Campaign Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cloud-computing">
|
||||
Cloud Computing <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/lead-generation">
|
||||
Lead Generation <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/web-development">
|
||||
Web Development/Design
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/social-media-management">
|
||||
Social Media Management
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/performance-monitoring">
|
||||
Performance Monitoring
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cyber-security">
|
||||
Cyber Security <i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link
|
||||
href="/services/website-maintenance"
|
||||
className="active"
|
||||
>
|
||||
Website Maintenance
|
||||
<i className="flaticon-arrow-button" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">SEO Checker</h4>
|
||||
<div className="sidebar__brochure sidebar__brochure-two">
|
||||
<p>Check your website's SEO performance.</p>
|
||||
<Link href="/#seocheck">SEO Checker</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-two">
|
||||
<div
|
||||
className="sidebar__contact sidebar__contact-two"
|
||||
data-background="/assets/img/services/sidebar_contact_bg.jpg"
|
||||
>
|
||||
<h2 className="title">
|
||||
Contact Us Any Time For Immediate Support!
|
||||
</h2>
|
||||
<Link href="tel:+14702604117" className="btn">
|
||||
<i className="flaticon-phone-call" />
|
||||
(470) 260-4117
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sidebar__widget sidebar__widget-three">
|
||||
<h4 className="sidebar__widget-title">Send Us a Message</h4>
|
||||
<div className="sidebar__form">
|
||||
<form action="#">
|
||||
<div className="form-grp">
|
||||
<input type="text" name="name" placeholder="Your Name" />
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="phone"
|
||||
placeholder="Phone Number"
|
||||
/>
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<textarea name="message" placeholder="Type Your Message" />
|
||||
</div>
|
||||
<button type="submit" className="btn btn-two">
|
||||
Send Message
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div className="brand-area">
|
||||
<div className="container">
|
||||
<h4 className="brand__content">Trusted by Numerous Companies, Worldwide</h4>
|
||||
<div className="swiper-container brand-active">
|
||||
<BrandActiveSlider />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
165
app/team/page.js
Normal file
165
app/team/page.js
Normal file
@ -0,0 +1,165 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Team4 from "@/components/sections/Team4";
|
||||
import Callback1 from "@/components/sections/Callback1";
|
||||
|
||||
export const metadata = {
|
||||
title: "Team | RankRunners - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function Team() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Our Team Members">
|
||||
<Team4 />
|
||||
{/* <div>
|
||||
<section className="team-area pt-120 pb-90">
|
||||
<div className="container">
|
||||
<div className="team-item-wrap">
|
||||
<div className="row justify-content-center">
|
||||
<div className="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="team-item">
|
||||
<div className="team-thumb">
|
||||
<img src="/assets/img/team/team_img01.jpg" alt="" />
|
||||
<div className="team-social">
|
||||
<SocialToggle />
|
||||
</div>
|
||||
</div>
|
||||
<div className="team-content">
|
||||
<h4 className="title">
|
||||
<Link href="/team-details">Jone Cooper</Link>
|
||||
</h4>
|
||||
<span>Finance Advisor</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="team-item">
|
||||
<div className="team-thumb">
|
||||
<img src="/assets/img/team/team_img02.jpg" alt="" />
|
||||
<div className="team-social">
|
||||
<SocialToggle />
|
||||
</div>
|
||||
</div>
|
||||
<div className="team-content">
|
||||
<h4 className="title">
|
||||
<Link href="/team-details">Eleanor Pena</Link>
|
||||
</h4>
|
||||
<span>Finance Advisor</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="team-item">
|
||||
<div className="team-thumb">
|
||||
<img src="/assets/img/team/team_img03.jpg" alt="" />
|
||||
<div className="team-social">
|
||||
<SocialToggle />
|
||||
</div>
|
||||
</div>
|
||||
<div className="team-content">
|
||||
<h4 className="title">
|
||||
<Link href="/team-details">Floyd Miles</Link>
|
||||
</h4>
|
||||
<span>Finance Advisor</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="team-item">
|
||||
<div className="team-thumb">
|
||||
<img src="/assets/img/team/team_img04.jpg" alt="" />
|
||||
<div className="team-social">
|
||||
<SocialToggle />
|
||||
</div>
|
||||
</div>
|
||||
<div className="team-content">
|
||||
<h4 className="title">
|
||||
<Link href="/team-details">Ralph Edwards</Link>
|
||||
</h4>
|
||||
<span>Finance Advisor</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="team-item">
|
||||
<div className="team-thumb">
|
||||
<img src="/assets/img/team/team_img05.jpg" alt="" />
|
||||
<div className="team-social">
|
||||
<SocialToggle />
|
||||
</div>
|
||||
</div>
|
||||
<div className="team-content">
|
||||
<h4 className="title">
|
||||
<Link href="/team-details">Genny Akurea</Link>
|
||||
</h4>
|
||||
<span>Finance Advisor</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="team-item">
|
||||
<div className="team-thumb">
|
||||
<img src="/assets/img/team/team_img06.jpg" alt="" />
|
||||
<div className="team-social">
|
||||
<SocialToggle />
|
||||
</div>
|
||||
</div>
|
||||
<div className="team-content">
|
||||
<h4 className="title">
|
||||
<Link href="/team-details">Leo Makerony</Link>
|
||||
</h4>
|
||||
<span>Finance Advisor</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="team-item">
|
||||
<div className="team-thumb">
|
||||
<img src="/assets/img/team/team_img07.jpg" alt="" />
|
||||
<div className="team-social">
|
||||
<SocialToggle />
|
||||
</div>
|
||||
</div>
|
||||
<div className="team-content">
|
||||
<h4 className="title">
|
||||
<Link href="/team-details">Dalia Jororo</Link>
|
||||
</h4>
|
||||
<span>Finance Advisor</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="team-item">
|
||||
<div className="team-thumb">
|
||||
<img src="/assets/img/team/team_img08.jpg" alt="" />
|
||||
<div className="team-social">
|
||||
<SocialToggle />
|
||||
</div>
|
||||
</div>
|
||||
<div className="team-content">
|
||||
<h4 className="title">
|
||||
<Link href="/team-details">Kaent Richard</Link>
|
||||
</h4>
|
||||
<span>Finance Advisor</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<div className="brand__area-six">
|
||||
<div className="container">
|
||||
<div className="swiper-container brand-active">
|
||||
<BrandActiveSlider />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> */}
|
||||
<Callback1 />
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
540
app/terms-of-use/page.js
Normal file
540
app/terms-of-use/page.js
Normal file
@ -0,0 +1,540 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
|
||||
export const metadata = {
|
||||
title: "Terms of Use - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function Blogging() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} breadcrumbTitle="Terms of Use">
|
||||
<div>
|
||||
<section className="blog__details-area-terms">
|
||||
<div className="container">
|
||||
<div className="blog__inner-wrap">
|
||||
<div className="row">
|
||||
<div>
|
||||
<div className="blog__details-wrap">
|
||||
<div className="blog__details-content">
|
||||
<div className="blog-post-content">
|
||||
<h1>Website Terms of Use</h1>
|
||||
<p>Version 1.0</p>
|
||||
<p>
|
||||
The RankRunners.net website located at https://rankrunners.net
|
||||
is a copyrighted work belonging to RankRunners. Certain features
|
||||
of the Site may be subject to additional guidelines, terms, or
|
||||
rules, which will be posted on the Site in connection with such
|
||||
features.
|
||||
</p>
|
||||
<p>
|
||||
All such additional terms, guidelines, and rules are
|
||||
incorporated by reference into these Terms.
|
||||
</p>
|
||||
<p>
|
||||
These Terms of Use described the legally binding terms and
|
||||
conditions that oversee your use of the Site. BY LOGGING INTO
|
||||
THE SITE, YOU ARE BEING COMPLIANT THAT THESE TERMS and you
|
||||
represent that you have the authority and capacity to enter into
|
||||
these Terms. YOU SHOULD BE AT LEAST 18 YEARS OF AGE TO ACCESS
|
||||
THE SITE. IF YOU DISAGREE WITH ALL OF THE PROVISION OF THESE
|
||||
TERMS, DO NOT LOG INTO AND/OR USE THE SITE.
|
||||
</p>
|
||||
<p>
|
||||
These terms require the use of arbitration Section 10.2 on an
|
||||
individual basis to resolve disputes and also limit the remedies
|
||||
available to you in the event of a dispute. These Terms of Use
|
||||
were created with the help of the Terms Of Use Generator.
|
||||
</p>
|
||||
<h1>Access to the Site</h1>
|
||||
<p>
|
||||
<strong>Subject to these Terms.</strong> Company grants you a
|
||||
non-transferable, non-exclusive, revocable, limited license to
|
||||
access the Site solely for your own personal, noncommercial use.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Certain Restrictions.</strong> The rights approved to
|
||||
you in these Terms are subject to the following restrictions:
|
||||
(a) you shall not sell, rent, lease, transfer, assign,
|
||||
distribute, host, or otherwise commercially exploit the Site;
|
||||
(b) you shall not change, make derivative works of, disassemble,
|
||||
reverse compile or reverse engineer any part of the Site; (c)
|
||||
you shall not access the Site in order to build a similar or
|
||||
competitive website; and (d) except as expressly stated herein,
|
||||
no part of the Site may be copied, reproduced, distributed,
|
||||
republished, downloaded, displayed, posted or transmitted in any
|
||||
form or by any means unless otherwise indicated, any future
|
||||
release, update, or other addition to functionality of the Site
|
||||
shall be subject to these Terms. All copyright and other
|
||||
proprietary notices on the Site must be retained on all copies
|
||||
thereof.
|
||||
</p>
|
||||
<p>
|
||||
Company reserves the right to change, suspend, or cease the Site
|
||||
with or without notice to you. You approved that Company will
|
||||
not be held liable to you or any third-party for any change,
|
||||
interruption, or termination of the Site or any part.
|
||||
</p>
|
||||
<p>
|
||||
<strong>No Support or Maintenance.</strong> You agree that
|
||||
Company will have no obligation to provide you with any support
|
||||
in connection with the Site.
|
||||
</p>
|
||||
<p>
|
||||
Excluding any User Content that you may provide, you are aware
|
||||
that all the intellectual property rights, including copyrights,
|
||||
patents, trademarks, and trade secrets, in the Site and its
|
||||
content are owned by Company or Company's suppliers. Note that
|
||||
these Terms and access to the Site do not give you any rights,
|
||||
title or interest in or to any intellectual property rights,
|
||||
except for the limited access rights expressed in Section 2.1.
|
||||
Company and its suppliers reserve all rights not granted in
|
||||
these Terms.
|
||||
</p>
|
||||
<h1>Third-Party Links and Ads; Other Users</h1>
|
||||
<p>
|
||||
<strong>Third-Party Links & Ads.</strong> The Site may contain
|
||||
links to third-party websites and services, and/or display
|
||||
advertisements for third-parties. Such Third-Party Links & Ads
|
||||
are not under the control of Company, and Company is not
|
||||
responsible for any Third-Party Links & Ads. Company provides
|
||||
access to these Third-Party Links & Ads only as a convenience to
|
||||
you, and does not review, approve, monitor, endorse, warrant, or
|
||||
make any representations with respect to Third-Party Links &
|
||||
Ads. You use all Third-Party Links & Ads at your own risk, and
|
||||
should apply a suitable level of caution and discretion in doing
|
||||
so. When you click on any of the Third-Party Links & Ads, the
|
||||
applicable third party's terms and policies apply, including the
|
||||
third party's privacy and data gathering practices.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Other Users.</strong> Each Site user is solely
|
||||
responsible for any and all of its own User Content. Because we
|
||||
do not control User Content, you acknowledge and agree that we
|
||||
are not responsible for any User Content, whether provided by
|
||||
you or by others. You agree that Company will not be responsible
|
||||
for any loss or damage incurred as the result of any such
|
||||
interactions. If there is a dispute between you and any Site
|
||||
user, we are under no obligation to become involved.
|
||||
</p>
|
||||
<p>
|
||||
You hereby release and forever discharge the Company and our
|
||||
officers, employees, agents, successors, and assigns from, and
|
||||
hereby waive and relinquish, each and every past, present and
|
||||
future dispute, claim, controversy, demand, right, obligation,
|
||||
liability, action and cause of action of every kind and nature,
|
||||
that has arisen or arises directly or indirectly out of, or that
|
||||
relates directly or indirectly to, the Site. If you are a
|
||||
California resident, you hereby waive California civil code
|
||||
section 1542 in connection with the foregoing, which states: "a
|
||||
general release does not extend to claims which the creditor
|
||||
does not know or suspect to exist in his or her favor at the
|
||||
time of executing the release, which if known by him or her must
|
||||
have materially affected his or her settlement with the debtor."
|
||||
</p>
|
||||
<p>
|
||||
<strong>Cookies and Web Beacons.</strong> Like any other
|
||||
website, RankRunners.net uses ‘cookies'. These cookies are used
|
||||
to store information including visitors' preferences, and the
|
||||
pages on the website that the visitor accessed or visited. The
|
||||
information is used to optimize the users' experience by
|
||||
customizing our web page content based on visitors' browser type
|
||||
and/or other information.
|
||||
</p>
|
||||
<h1>Disclaimers</h1>
|
||||
<p>
|
||||
The site is provided on an "as-is" and "as available" basis, and
|
||||
company and our suppliers expressly disclaim any and all
|
||||
warranties and conditions of any kind, whether express, implied,
|
||||
or statutory, including all warranties or conditions of
|
||||
merchantability, fitness for a particular purpose, title, quiet
|
||||
enjoyment, accuracy, or non-infringement. We and our suppliers
|
||||
make not guarantee that the site will meet your requirements,
|
||||
will be available on an uninterrupted, timely, secure, or
|
||||
error-free basis, or will be accurate, reliable, free of viruses
|
||||
or other harmful code, complete, legal, or safe. If applicable
|
||||
law requires any warranties with respect to the site, all such
|
||||
warranties are limited in duration to ninety (90) days from the
|
||||
date of first use.
|
||||
</p>
|
||||
<p>
|
||||
Some jurisdictions do not allow the exclusion of implied
|
||||
warranties, so the above exclusion may not apply to you. Some
|
||||
jurisdictions do not allow limitations on how long an implied
|
||||
warranty lasts, so the above limitation may not apply to you.
|
||||
</p>
|
||||
<h1>Limitation on Liability</h1>
|
||||
<p>
|
||||
To the maximum extent permitted by law, in no event shall
|
||||
company or our suppliers be liable to you or any third-party for
|
||||
any lost profits, lost data, costs of procurement of substitute
|
||||
products, or any indirect, consequential, exemplary, incidental,
|
||||
special or punitive damages arising from or relating to these
|
||||
terms or your use of, or incapability to use the site even if
|
||||
company has been advised of the possibility of such damages.
|
||||
Access to and use of the site is at your own discretion and
|
||||
risk, and you will be solely responsible for any damage to your
|
||||
device or computer system, or loss of data resulting therefrom.
|
||||
</p>
|
||||
<p>
|
||||
To the maximum extent permitted by law, notwithstanding anything
|
||||
to the contrary contained herein, our liability to you for any
|
||||
damages arising from or related to this agreement, will at all
|
||||
times be limited to a maximum of fifty U.S. dollars (u.s. $50).
|
||||
The existence of more than one claim will not enlarge this
|
||||
limit. You agree that our suppliers will have no liability of
|
||||
any kind arising from or relating to this agreement.
|
||||
</p>
|
||||
<p>
|
||||
Some jurisdictions do not allow the limitation or exclusion of
|
||||
liability for incidental or consequential damages, so the above
|
||||
limitation or exclusion may not apply to you.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Term and Termination.</strong> Subject to this Section,
|
||||
these Terms will remain in full force and effect while you use
|
||||
the Site. We may suspend or terminate your rights to use the
|
||||
Site at any time for any reason at our sole discretion,
|
||||
including for any use of the Site in violation of these Terms.
|
||||
Upon termination of your rights under these Terms, your Account
|
||||
and right to access and use the Site will terminate immediately.
|
||||
You understand that any termination of your Account may involve
|
||||
deletion of your User Content associated with your Account from
|
||||
our live databases. Company will not have any liability
|
||||
whatsoever to you for any termination of your rights under these
|
||||
Terms. Even after your rights under these Terms are terminated,
|
||||
the following provisions of these Terms will remain in effect:
|
||||
Sections 2 through 2.5, Section 3 and Sections 4 through 10.
|
||||
</p>
|
||||
<h1>Copyright Policy.</h1>
|
||||
<p>
|
||||
Company respects the intellectual property of others and asks
|
||||
that users of our Site do the same. In connection with our Site,
|
||||
we have adopted and implemented a policy respecting copyright
|
||||
law that provides for the removal of any infringing materials
|
||||
and for the termination of users of our online Site who are
|
||||
repeated infringers of intellectual property rights, including
|
||||
copyrights. If you believe that one of our users is, through the
|
||||
use of our Site, unlawfully infringing the copyright(s) in a
|
||||
work, and wish to have the allegedly infringing material
|
||||
removed, the following information in the form of a written
|
||||
notification (pursuant to 17 U.S.C. § 512(c)) must be provided
|
||||
to our designated Copyright Agent:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Your physical or electronic signature;</li>
|
||||
<li>
|
||||
Identification of the copyrighted work(s) that you claim to
|
||||
have been infringed;
|
||||
</li>
|
||||
<li>
|
||||
Identification of the material on our services that you
|
||||
claim is infringing and that you request us to remove;
|
||||
</li>
|
||||
<li>
|
||||
Sufficient information to permit us to locate such material;
|
||||
</li>
|
||||
<li>Your address, telephone number, and e-mail address;</li>
|
||||
<li>
|
||||
A statement that you have a good faith belief that use of
|
||||
the objectionable material is not authorized by the
|
||||
copyright owner, its agent, or under the law; and
|
||||
</li>
|
||||
<li>
|
||||
a statement that the information in the notification is
|
||||
accurate, and under penalty of perjury, that you are either
|
||||
the owner of the copyright that has allegedly been infringed
|
||||
or that you are authorized to act on behalf of the copyright
|
||||
owner.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Please note that, pursuant to 17 U.S.C. § 512(f), any
|
||||
misrepresentation of material fact in a written notification
|
||||
automatically subjects the complaining party to liability for
|
||||
any damages, costs and attorney's fees incurred by us in
|
||||
connection with the written notification and allegation of
|
||||
copyright infringement.
|
||||
</p>
|
||||
<h1>General</h1>
|
||||
<p>
|
||||
These Terms are subject to occasional revision, and if we make
|
||||
any substantial changes, we may notify you by sending you an
|
||||
e-mail to the last e-mail address you provided to us and/or by
|
||||
prominently posting notice of the changes on our Site. You are
|
||||
responsible for providing us with your most current e-mail
|
||||
address. In the event that the last e-mail address that you have
|
||||
provided us is not valid our dispatch of the e-mail containing
|
||||
such notice will nonetheless constitute effective notice of the
|
||||
changes described in the notice. Any changes to these Terms will
|
||||
be effective upon the earliest of thirty (30) calendar days
|
||||
following our dispatch of an e-mail notice to you or thirty (30)
|
||||
calendar days following our posting of notice of the changes on
|
||||
our Site. These changes will be effective immediately for new
|
||||
users of our Site. Continued use of our Site following notice of
|
||||
such changes shall indicate your acknowledgement of such changes
|
||||
and agreement to be bound by the terms and conditions of such
|
||||
changes. Dispute Resolution. Please read this Arbitration
|
||||
Agreement carefully. It is part of your contract with Company
|
||||
and affects your rights. It contains procedures for MANDATORY
|
||||
BINDING ARBITRATION AND A CLASS ACTION WAIVER.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Applicability of Arbitration Agreement.</strong> All
|
||||
claims and disputes in connection with the Terms or the use of
|
||||
any product or service provided by the Company that cannot be
|
||||
resolved informally or in small claims court shall be resolved
|
||||
by binding arbitration on an individual basis under the terms of
|
||||
this Arbitration Agreement. Unless otherwise agreed to, all
|
||||
arbitration proceedings shall be held in English. This
|
||||
Arbitration Agreement applies to you and the Company, and to any
|
||||
subsidiaries, affiliates, agents, employees, predecessors in
|
||||
interest, successors, and assigns, as well as all authorized or
|
||||
unauthorized users or beneficiaries of services or goods
|
||||
provided under the Terms.
|
||||
</p>
|
||||
<p>
|
||||
<strong>
|
||||
Notice Requirement and Informal Dispute Resolution.
|
||||
</strong>
|
||||
Before either party may seek arbitration, the party must first
|
||||
send to the other party a written Notice of Dispute describing
|
||||
the nature and basis of the claim or dispute, and the requested
|
||||
relief. A Notice to the Company should be sent to: 1934 N. Druid
|
||||
Hills Rd, Suite B Brookhaven, Georgia 30319 USA. After the
|
||||
Notice is received, you and the Company may attempt to resolve
|
||||
the claim or dispute informally. If you and the Company do not
|
||||
resolve the claim or dispute within thirty (30) days after the
|
||||
Notice is received, either party may begin an arbitration
|
||||
proceeding. The amount of any settlement offer made by any party
|
||||
may not be disclosed to the arbitrator until after the
|
||||
arbitrator has determined the amount of the award to which
|
||||
either party is entitled.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Arbitration Rules.</strong> Arbitration shall be
|
||||
initiated through the American Arbitration Association, an
|
||||
established alternative dispute resolution provider that offers
|
||||
arbitration as set forth in this section. If AAA is not
|
||||
available to arbitrate, the parties shall agree to select an
|
||||
alternative ADR Provider. The rules of the ADR Provider shall
|
||||
govern all aspects of the arbitration except to the extent such
|
||||
rules are in conflict with the Terms. The AAA Consumer
|
||||
Arbitration Rules governing the arbitration are available online
|
||||
at adr.org or by calling the AAA at 1-800-778-7879. The
|
||||
arbitration shall be conducted by a single, neutral arbitrator.
|
||||
Any claims or disputes where the total amount of the award
|
||||
sought is less than Ten Thousand U.S. Dollars (US $10,000.00)
|
||||
may be resolved through binding non-appearance-based
|
||||
arbitration, at the option of the party seeking relief. For
|
||||
claims or disputes where the total amount of the award sought is
|
||||
Ten Thousand U.S. Dollars (US $10,000.00) or more, the right to
|
||||
a hearing will be determined by the Arbitration Rules. Any
|
||||
hearing will be held in a location within 100 miles of your
|
||||
residence, unless you reside outside of the United States, and
|
||||
unless the parties agree otherwise. If you reside outside of the
|
||||
U.S., the arbitrator shall give the parties reasonable notice of
|
||||
the date, time and place of any oral hearings. Any judgment on
|
||||
the award rendered by the arbitrator may be entered in any court
|
||||
of competent jurisdiction. If the arbitrator grants you an award
|
||||
that is greater than the last settlement offer that the Company
|
||||
made to you prior to the initiation of arbitration, the Company
|
||||
will pay you the greater of the award or $2,500.00. Each party
|
||||
shall bear its own costs and disbursements arising out of the
|
||||
arbitration and shall pay an equal share of the fees and costs
|
||||
of the ADR Provider.
|
||||
</p>
|
||||
<p>
|
||||
<strong>
|
||||
Additional Rules for Non-Appearance Based Arbitration.
|
||||
</strong>
|
||||
If non-appearance based arbitration is elected, the arbitration
|
||||
shall be conducted by telephone, online and/or based solely on
|
||||
written submissions; the specific manner shall be chosen by the
|
||||
party initiating the arbitration. The arbitration shall not
|
||||
involve any personal appearance by the parties or witnesses
|
||||
unless otherwise agreed by the parties.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Time Limits.</strong> If you or the Company pursues
|
||||
arbitration, the arbitration action must be initiated and/or
|
||||
demanded within the statute of limitations and within any
|
||||
deadline imposed under the AAA Rules for the pertinent claim.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Authority of Arbitrator.</strong> If arbitration is
|
||||
initiated, the arbitrator will decide the rights and liabilities
|
||||
of you and the Company, and the dispute will not be consolidated
|
||||
with any other matters or joined with any other cases or
|
||||
parties. The arbitrator shall have the authority to grant
|
||||
motions dispositive of all or part of any claim. The arbitrator
|
||||
shall have the authority to award monetary damages, and to grant
|
||||
any non-monetary remedy or relief available to an individual
|
||||
under applicable law, the AAA Rules, and the Terms. The
|
||||
arbitrator shall issue a written award and statement of decision
|
||||
describing the essential findings and conclusions on which the
|
||||
award is based. The arbitrator has the same authority to award
|
||||
relief on an individual basis that a judge in a court of law
|
||||
would have. The award of the arbitrator is final and binding
|
||||
upon you and the Company.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Waiver of Jury Trial.</strong> THE PARTIES HEREBY WAIVE
|
||||
THEIR CONSTITUTIONAL AND STATUTORY RIGHTS TO GO TO COURT AND
|
||||
HAVE A TRIAL IN FRONT OF A JUDGE OR A JURY, instead electing
|
||||
that all claims and disputes shall be resolved by arbitration
|
||||
under this Arbitration Agreement. Arbitration procedures are
|
||||
typically more limited, more efficient and less expensive than
|
||||
rules applicable in a court and are subject to very limited
|
||||
review by a court. In the event any litigation should arise
|
||||
between you and the Company in any state or federal court in a
|
||||
suit to vacate or enforce an arbitration award or otherwise, YOU
|
||||
AND THE COMPANY WAIVE ALL RIGHTS TO A JURY TRIAL, instead
|
||||
electing that the dispute be resolved by a judge.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Waiver of Class or Consolidated Actions.</strong> All
|
||||
claims and disputes within the scope of this arbitration
|
||||
agreement must be arbitrated or litigated on an individual basis
|
||||
and not on a class basis, and claims of more than one customer
|
||||
or user cannot be arbitrated or litigated jointly or
|
||||
consolidated with those of any other customer or user.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Confidentiality.</strong> All aspects of the arbitration
|
||||
proceeding shall be strictly confidential. The parties agree to
|
||||
maintain confidentiality unless otherwise required by law. This
|
||||
paragraph shall not prevent a party from submitting to a court
|
||||
of law any information necessary to enforce this Agreement, to
|
||||
enforce an arbitration award, or to seek injunctive or equitable
|
||||
relief.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Severability.</strong> If any part or parts of this
|
||||
Arbitration Agreement are found under the law to be invalid or
|
||||
unenforceable by a court of competent jurisdiction, then such
|
||||
specific part or parts shall be of no force and effect and shall
|
||||
be severed and the remainder of the Agreement shall continue in
|
||||
full force and effect.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Right to Waive.</strong> Any or all of the rights and
|
||||
limitations set forth in this Arbitration Agreement may be
|
||||
waived by the party against whom the claim is asserted. Such
|
||||
waiver shall not waive or affect any other portion of this
|
||||
Arbitration Agreement.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Survival of Agreement.</strong> This Arbitration
|
||||
Agreement will survive the termination of your relationship with
|
||||
Company.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Small Claims Court.</strong> Nonetheless the foregoing,
|
||||
either you or the Company may bring an individual action in
|
||||
small claims court.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Emergency Equitable Relief.</strong> Anyhow the
|
||||
foregoing, either party may seek emergency equitable relief
|
||||
before a state or federal court in order to maintain the status
|
||||
quo pending arbitration. A request for interim measures shall
|
||||
not be deemed a waiver of any other rights or obligations under
|
||||
this Arbitration Agreement.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Claims Not Subject to Arbitration.</strong>
|
||||
Notwithstanding the foregoing, claims of defamation, violation
|
||||
of the Computer Fraud and Abuse Act, and infringement or
|
||||
misappropriation of the other party's patent, copyright,
|
||||
trademark or trade secrets shall not be subject to this
|
||||
Arbitration Agreement.
|
||||
</p>
|
||||
<p>
|
||||
In any circumstances where the foregoing Arbitration Agreement
|
||||
permits the parties to litigate in court, the parties hereby
|
||||
agree to submit to the personal jurisdiction of the courts
|
||||
located within us County, California, for such purposes.
|
||||
</p>
|
||||
<p>
|
||||
The Site may be subject to U.S. export control laws and may be
|
||||
subject to export or import regulations in other countries. You
|
||||
agree not to export, re-export, or transfer, directly or
|
||||
indirectly, any U.S. technical data acquired from Company, or
|
||||
any products utilizing such data, in violation of the United
|
||||
States export laws or regulations.
|
||||
</p>
|
||||
<p>
|
||||
Company is located at the address in Section 10.8. If you are a
|
||||
California resident, you may report complaints to the Complaint
|
||||
Assistance Unit of the Division of Consumer Product of the
|
||||
California Department of Consumer Affairs by contacting them in
|
||||
writing at 400 R Street, Sacramento, CA 95814, or by telephone
|
||||
at (800) 952-5210.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Electronic Communications.</strong> The communications
|
||||
between you and Company use electronic means, whether you use
|
||||
the Site or send us emails, or whether Company posts notices on
|
||||
the Site or communicates with you via email. For contractual
|
||||
purposes, you (a) consent to receive communications from Company
|
||||
in an electronic form; and (b) agree that all terms and
|
||||
conditions, agreements, notices, disclosures, and other
|
||||
communications that Company provides to you electronically
|
||||
satisfy any legal obligation that such communications would
|
||||
satisfy if it were be in a hard copy writing.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Entire Terms.</strong> These Terms constitute the entire
|
||||
agreement between you and us regarding the use of the Site. Our
|
||||
failure to exercise or enforce any right or provision of these
|
||||
Terms shall not operate as a waiver of such right or provision.
|
||||
The section titles in these Terms are for convenience only and
|
||||
have no legal or contractual effect. The word "including" means
|
||||
"including without limitation". If any provision of these Terms
|
||||
is held to be invalid or unenforceable, the other provisions of
|
||||
these Terms will be unimpaired and the invalid or unenforceable
|
||||
provision will be deemed modified so that it is valid and
|
||||
enforceable to the maximum extent permitted by law. Your
|
||||
relationship to Company is that of an independent contractor,
|
||||
and neither party is an agent or partner of the other. These
|
||||
Terms, and your rights and obligations herein, may not be
|
||||
assigned, subcontracted, delegated, or otherwise transferred by
|
||||
you without Company's prior written consent, and any attempted
|
||||
assignment, subcontract, delegation, or transfer in violation of
|
||||
the foregoing will be null and void. Company may freely assign
|
||||
these Terms. The terms and conditions set forth in these Terms
|
||||
shall be binding upon assignees.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Your Privacy.</strong> Please read our Privacy Policy.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Copyright/Trademark Information.</strong> Copyright ©.
|
||||
All rights reserved. All trademarks, logos and service marks
|
||||
displayed on the Site are our property or the property of other
|
||||
third-parties. You are not permitted to use these Marks without
|
||||
our prior written consent or the consent of such third party
|
||||
which may own the Marks.
|
||||
</p>
|
||||
<h1>Contact Information</h1>
|
||||
<p>
|
||||
Address: 1934 N. Druid Hills Rd, Suite B Brookhaven, Georgia
|
||||
30319 USA
|
||||
</p>
|
||||
<p>Email: support@rankrunners.net</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{/* blog-details-area-end */}
|
||||
</div>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
32
app/wip/page.js
Normal file
32
app/wip/page.js
Normal file
@ -0,0 +1,32 @@
|
||||
import Layout from "@/components/layout/Layout";
|
||||
import Link from "next/link";
|
||||
|
||||
export const metadata = {
|
||||
title: "Work in Progress - SEO, Web Design & Digital Marketing Agency",
|
||||
description:
|
||||
"RankRunners provides enterprise level SEO, Web Design/Development, Digital Marketing and IT Management services for companies across all industries, regardless of scope or size. Contact support@rankrunners.net to get started today!",
|
||||
};
|
||||
|
||||
export default function NotFound() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={4} footerStyle={3} transparent={false}>
|
||||
<section className="error-area">
|
||||
<div className="container">
|
||||
<div className="row">
|
||||
<div className="col-lg-12">
|
||||
<div className="error-content">
|
||||
<h2 className="title">Work in Progress</h2>
|
||||
<p>This page is under construction. Please check back later.</p>
|
||||
<Link href="/" className="btn btn-two">
|
||||
Go Back To Home Page
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
}
|
45
components/blog/BlogCard1.js
Normal file
45
components/blog/BlogCard1.js
Normal file
@ -0,0 +1,45 @@
|
||||
import Link from "next/link";
|
||||
|
||||
export default function BlogCard1({ item }) {
|
||||
return (
|
||||
<>
|
||||
<div className="col-md-6">
|
||||
<div className="blog__post-two shine-animate-item">
|
||||
<div className="blog__post-thumb-two">
|
||||
<Link href={`/blog/${item.slug}`} className="shine-animate">
|
||||
<img src={`/assets/img/blogging/${item.img}`} alt="" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="blog__post-content-two">
|
||||
<div className="blog-post-meta">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="/blog" className="blog__post-tag-two">
|
||||
{item.category}
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<i className="fas fa-calendar-alt" />
|
||||
{item.date}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h2 className="title">
|
||||
<Link href={`/blog/${item.slug}`}>{item.title}</Link>
|
||||
</h2>
|
||||
<div className="blog-avatar">
|
||||
<div className="avatar-thumb">
|
||||
<img src="/assets/img/blog/authorImg.png" alt="" />
|
||||
</div>
|
||||
<div className="avatar-content">
|
||||
<p>
|
||||
By <Link href={`/blog/${item.slug}`}>{item.author}</Link>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
45
components/blog/BlogCard2.js
Normal file
45
components/blog/BlogCard2.js
Normal file
@ -0,0 +1,45 @@
|
||||
import Link from "next/link";
|
||||
|
||||
export default function BlogCard1({ item }) {
|
||||
return (
|
||||
<>
|
||||
<div className="col-md-4">
|
||||
<div className="blog__post-two shine-animate-item">
|
||||
<div className="blog__post-thumb-two">
|
||||
<Link href={`/blog/${item.slug}`} className="shine-animate">
|
||||
<img src={`/assets/img/blogging/${item.img}`} alt="" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="blog__post-content-two">
|
||||
<div className="blog-post-meta">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="/blog" className="blog__post-tag-two">
|
||||
{item.category}
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<i className="fas fa-calendar-alt" />
|
||||
{item.date}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h2 className="title">
|
||||
<Link href={`/blog/${item.slug}`}>{item.title}</Link>
|
||||
</h2>
|
||||
<div className="blog-avatar">
|
||||
<div className="avatar-thumb">
|
||||
<img src="/assets/img/blog/authorImg.png" alt="" />
|
||||
</div>
|
||||
<div className="avatar-content">
|
||||
<p>
|
||||
By <Link href={`/blog/${item.slug}`}>{item.author}</Link>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
77
components/blog/BlogPost.js
Normal file
77
components/blog/BlogPost.js
Normal file
@ -0,0 +1,77 @@
|
||||
'use client'
|
||||
import React, { useEffect, useState } from "react"
|
||||
import data from "../../util/blog.json"
|
||||
import BlogCard1 from "./BlogCard1"
|
||||
import Pagination from "./Pagination"
|
||||
|
||||
export default function BlogPost({ style, showItem, showPagination }) {
|
||||
let [currentPage, setCurrentPage] = useState(1)
|
||||
let showLimit = showItem,
|
||||
paginationItem = 4
|
||||
|
||||
let [pagination, setPagination] = useState([])
|
||||
let [limit, setLimit] = useState(showLimit)
|
||||
let [pages, setPages] = useState(Math.ceil(data.length / limit))
|
||||
|
||||
useEffect(() => {
|
||||
cratePagination()
|
||||
}, [limit, pages, data.length])
|
||||
|
||||
const cratePagination = () => {
|
||||
// set pagination
|
||||
let arr = new Array(Math.ceil(data.length / limit))
|
||||
.fill()
|
||||
.map((_, idx) => idx + 1)
|
||||
|
||||
setPagination(arr)
|
||||
setPages(Math.ceil(data.length / limit))
|
||||
}
|
||||
|
||||
const startIndex = currentPage * limit - limit
|
||||
const endIndex = startIndex + limit
|
||||
const getPaginatedProducts = data.slice(startIndex, endIndex)
|
||||
|
||||
|
||||
let start = Math.floor((currentPage - 1) / paginationItem) * paginationItem
|
||||
let end = start + paginationItem
|
||||
const getPaginationGroup = pagination.slice(start, end)
|
||||
|
||||
const next = () => {
|
||||
setCurrentPage((page) => page + 1)
|
||||
}
|
||||
|
||||
const prev = () => {
|
||||
setCurrentPage((page) => page - 1)
|
||||
}
|
||||
|
||||
const handleActive = (item) => {
|
||||
setCurrentPage(item)
|
||||
}
|
||||
return (
|
||||
<>
|
||||
{getPaginatedProducts.length === 0 && (
|
||||
<h3>No Products Found </h3>
|
||||
)}
|
||||
|
||||
{getPaginatedProducts.map(item => (
|
||||
<React.Fragment key={item.id}>
|
||||
{!style && <BlogCard1 item={item} />}
|
||||
{style === 1 && <BlogCard1 item={item} />}
|
||||
</React.Fragment>
|
||||
))}
|
||||
|
||||
{showPagination &&
|
||||
<Pagination
|
||||
getPaginationGroup={
|
||||
getPaginationGroup
|
||||
}
|
||||
currentPage={currentPage}
|
||||
pages={pages}
|
||||
next={next}
|
||||
prev={prev}
|
||||
handleActive={handleActive}
|
||||
/>
|
||||
}
|
||||
</>
|
||||
)
|
||||
}
|
54
components/blog/Pagination.js
Normal file
54
components/blog/Pagination.js
Normal file
@ -0,0 +1,54 @@
|
||||
export default function Pagination({
|
||||
prev,
|
||||
currentPage,
|
||||
getPaginationGroup,
|
||||
next,
|
||||
pages,
|
||||
handleActive,
|
||||
}) {
|
||||
return (
|
||||
<>
|
||||
<div className="pagination-wrap mt-40">
|
||||
<nav aria-label="Page navigation example">
|
||||
<ul className="pagination list-wrap">
|
||||
{getPaginationGroup.length <= 0 ? null : (
|
||||
<li onClick={prev} className="next_link page-item">
|
||||
{currentPage === 1 ? null : (
|
||||
<a className="page-link">
|
||||
<i className="fas fa-angle-double-left" />
|
||||
</a>
|
||||
)}
|
||||
</li>
|
||||
)}
|
||||
|
||||
{getPaginationGroup.map((item, index) => {
|
||||
return (
|
||||
<li
|
||||
onClick={() => handleActive(item)}
|
||||
key={index}
|
||||
className={
|
||||
currentPage === item
|
||||
? "page-item active"
|
||||
: "page-item"
|
||||
}
|
||||
>
|
||||
<a className="page-link">{item}</a>
|
||||
</li>
|
||||
)
|
||||
})}
|
||||
|
||||
{getPaginationGroup.length <= 0 ? null : (
|
||||
<li onClick={next} className="next_link page-item">
|
||||
{currentPage >= pages ? null : (
|
||||
<a className="page-link">
|
||||
<i className="fas fa-angle-double-right" />
|
||||
</a>
|
||||
)}
|
||||
</li>
|
||||
)}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
}
|
24
components/custom/BlogAsideContent.js
Normal file
24
components/custom/BlogAsideContent.js
Normal file
@ -0,0 +1,24 @@
|
||||
import Link from "next/link";
|
||||
|
||||
export default function BlogAsideContent({ item }) {
|
||||
return (
|
||||
<>
|
||||
<div className="sidebar__post-item">
|
||||
<div className="sidebar__post-thumb">
|
||||
<Link href="/blog-details">
|
||||
<img src={`/assets/img/blogging/${item.img}`} alt="" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="sidebar__post-content">
|
||||
<h5 className="title">
|
||||
<Link href={`/blog/${item.slug}`}>{item.title}</Link>
|
||||
</h5>
|
||||
<span className="date">
|
||||
<i className="flaticon-time" />
|
||||
{item.date}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
19
components/custom/BlogAsideLatest.js
Normal file
19
components/custom/BlogAsideLatest.js
Normal file
@ -0,0 +1,19 @@
|
||||
"use client";
|
||||
import React from "react";
|
||||
import data from "@/util/blog.json";
|
||||
import BlogAsideContent from "./BlogAsideContent";
|
||||
|
||||
export default function BlogAsideLatest() {
|
||||
const getAllBlogFunction = data.slice(0, 3);
|
||||
|
||||
return (
|
||||
<div className="sidebar__widget">
|
||||
<h4 className="sidebar__widget-title">Latest Articles</h4>
|
||||
<div className="sidebar__post-list">
|
||||
{getAllBlogFunction.map((item) => (
|
||||
<React.Fragment key={item.id}>{<BlogAsideContent item={item} />}</React.Fragment>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
79
components/custom/BlogCta.js
Normal file
79
components/custom/BlogCta.js
Normal file
@ -0,0 +1,79 @@
|
||||
"use client";
|
||||
|
||||
import Link from "next/link";
|
||||
import { useEffect, useState } from "react";
|
||||
import data from "@/util/blog.json";
|
||||
|
||||
export default function BlogCta({ slug }) {
|
||||
const [blogPost, setBlogPost] = useState(null);
|
||||
|
||||
useEffect(() => {
|
||||
setBlogPost(data.find((item) => item.slug === slug));
|
||||
}, [data, slug]);
|
||||
|
||||
if (!blogPost) return null;
|
||||
|
||||
return (
|
||||
<div>
|
||||
<div className="blog__details-bottom">
|
||||
<div className="row align-items-center">
|
||||
<div className="col-md-7">
|
||||
<div className="post-tags">
|
||||
<h5 className="title">Tags:</h5>
|
||||
<ul className="list-wrap">
|
||||
{blogPost.tags.map((tag) => (
|
||||
<li key={tag}>
|
||||
<Link href="#">{tag}</Link>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-5">
|
||||
<div className="post-share">
|
||||
<h5 className="title">Share:</h5>
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link
|
||||
href={`https://www.facebook.com/sharer/sharer.php?u=${window.location.origin}/blog/${blogPost.slug}`}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<i className="fab fa-facebook-f" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link
|
||||
href={`https://twitter.com/intent/tweet?text=Check out this blog post: ${window.location.origin}/blog/${blogPost.slug}`}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<i className="fab fa-twitter" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link
|
||||
href={`https://www.instagram.com/p/${window.location.origin}/blog/${blogPost.slug}`}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<i className="fab fa-instagram" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link
|
||||
href={`https://pinterest.com/pin/create/bookmarklet/?url=${window.location.origin}/blog/${blogPost.slug}&media=&description=`}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<i className="fab fa-pinterest-p" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
48
components/custom/BlogDetails.js
Normal file
48
components/custom/BlogDetails.js
Normal file
@ -0,0 +1,48 @@
|
||||
"use client";
|
||||
import Link from "next/link";
|
||||
import { useEffect, useState } from "react";
|
||||
import data from "@/util/blog.json";
|
||||
|
||||
export default function BlogDetailsClient({ slug }) {
|
||||
const [blogPost, setBlogPost] = useState(null);
|
||||
|
||||
useEffect(() => {
|
||||
setBlogPost(data.find((item) => item.slug === slug));
|
||||
}, [data, slug]);
|
||||
|
||||
if (!blogPost) return null;
|
||||
|
||||
return (
|
||||
<div>
|
||||
<div className="blog__details-thumb">
|
||||
<img src={`/assets/img/blogging/${blogPost.img}`} className="w-100" alt="" />
|
||||
</div>
|
||||
<h1 className="title">{blogPost.title}</h1>
|
||||
<div className="blog-post-meta">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<Link href="/blog" className="blog__post-tag-two">
|
||||
{blogPost.category}
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<div className="blog-avatar">
|
||||
<div className="avatar-thumb">
|
||||
<img src="/assets/img/blog/authorImg.png" alt="" />
|
||||
</div>
|
||||
<div className="avatar-content">
|
||||
<p>
|
||||
By <Link href="#">{blogPost.author}</Link>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i className="fas fa-calendar-alt" />
|
||||
{blogPost.date}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
119
components/custom/CaseStudyDetail.js
Normal file
119
components/custom/CaseStudyDetail.js
Normal file
@ -0,0 +1,119 @@
|
||||
"use client";
|
||||
import Link from "next/link";
|
||||
import { useEffect, useState } from "react";
|
||||
import data from "@/util/case-study.json";
|
||||
|
||||
export default function BlogDetailsClient({ slug }) {
|
||||
const [casePost, setcasePost] = useState(null);
|
||||
|
||||
useEffect(() => {
|
||||
setcasePost(data.find((item) => item.slug === slug));
|
||||
}, [data, slug]);
|
||||
|
||||
if (!casePost) return null;
|
||||
|
||||
return (
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className="section-title text-center mb-40 tg-heading-subheading animation-style3">
|
||||
<h2 className="title tg-element-title">Case Study: {casePost.title}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-12">
|
||||
<div className="project__details-top">
|
||||
<div className="row">
|
||||
<div className="col-70">
|
||||
{casePost.img.endsWith(".png") || casePost.img.endsWith(".webp") ? (
|
||||
<div className="project__details-thumb">
|
||||
<img src={`/assets/img/case-study/${casePost.img}`} alt="" />
|
||||
</div>
|
||||
) : casePost.img.endsWith(".webm") || casePost.img.endsWith(".mp4") ? (
|
||||
<div className="project__details-thumb">
|
||||
<video src={`/assets/img/case-study/${casePost.img}`} autoPlay muted loop alt="" />
|
||||
</div>
|
||||
) : null}
|
||||
</div>
|
||||
<div className="col-30">
|
||||
<div className="project__details-info">
|
||||
<h4 className="title">Company Details</h4>
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<span>Client:</span>
|
||||
{casePost.title}
|
||||
</li>
|
||||
<li>
|
||||
<span>Website:</span>
|
||||
<Link href={casePost.website} className="case-study-link">
|
||||
{casePost.websiteName}
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<span>Industry:</span>
|
||||
{casePost.industry}
|
||||
</li>
|
||||
<li>
|
||||
<span>Services utilized:</span>
|
||||
{casePost.utilized}
|
||||
</li>
|
||||
<li>
|
||||
<span>Review:</span>
|
||||
<Link href={casePost.reviewUrl} target="_blank">
|
||||
<div className="case-study-rating">
|
||||
<i className="fas fa-star" />
|
||||
<i className="fas fa-star" />
|
||||
<i className="fas fa-star" />
|
||||
<i className="fas fa-star" />
|
||||
<i className="fas fa-star" />
|
||||
</div>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<span>Share:</span>
|
||||
<ul className="list-wrap project-social">
|
||||
<li>
|
||||
<Link
|
||||
href={`https://www.facebook.com/sharer/sharer.php?u=${window.location.origin}/blog/${casePost.slug}`}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<i className="fab fa-facebook-f" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link
|
||||
href={`https://twitter.com/intent/tweet?text=Check out this blog post: ${window.location.origin}/blog/${casePost.slug}`}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<i className="fab fa-twitter" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link
|
||||
href={`https://www.instagram.com/p/${window.location.origin}/blog/${casePost.slug}`}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<i className="fab fa-instagram" />
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link
|
||||
href={`https://pinterest.com/pin/create/bookmarklet/?url=${window.location.origin}/blog/${casePost.slug}&media=&description=`}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<i className="fab fa-pinterest-p" />
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
132
components/custom/Contact.js
Normal file
132
components/custom/Contact.js
Normal file
@ -0,0 +1,132 @@
|
||||
"use client";
|
||||
import React, { useState } from "react";
|
||||
import "react-phone-number-input/style.css";
|
||||
import PhoneInput from "react-phone-number-input";
|
||||
|
||||
export default function ReportContent() {
|
||||
const [formData, setFormData] = useState({
|
||||
name: "",
|
||||
emailAddress: "",
|
||||
phoneNumber: "",
|
||||
subject: "",
|
||||
message: "",
|
||||
checkbox: false,
|
||||
});
|
||||
|
||||
const handleChange = (e) => {
|
||||
const { name, value, type, checked } = e.target;
|
||||
setFormData((prevState) => ({
|
||||
...prevState,
|
||||
[name]: type === "checkbox" ? checked : value,
|
||||
}));
|
||||
};
|
||||
|
||||
const handlePhoneChange = (value) => {
|
||||
setFormData((prevState) => ({
|
||||
...prevState,
|
||||
phoneNumber: value,
|
||||
}));
|
||||
};
|
||||
|
||||
const handleSubmit = async (e) => {
|
||||
e.preventDefault();
|
||||
try {
|
||||
const response = await fetch("/api/contact-send", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify(formData),
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
alert("Form submitted successfully!");
|
||||
document.cookie = `prospectClient=true; path=/; max-age=31536000`;
|
||||
} else {
|
||||
throw new Error("Form submission failed");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error:", error);
|
||||
alert("An error occurred while submitting the form.");
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="contact__form-wrap">
|
||||
<h2 className="title">Get In Touch</h2>
|
||||
<form id="contact-form" onSubmit={handleSubmit}>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="name"
|
||||
placeholder="Your Name"
|
||||
value={formData.name}
|
||||
onChange={handleChange}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6">
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="emailAddress"
|
||||
placeholder="Email Address"
|
||||
value={formData.emailAddress}
|
||||
onChange={handleChange}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6">
|
||||
<div className="form-grp">
|
||||
<PhoneInput
|
||||
international
|
||||
defaultCountry="US"
|
||||
value={formData.phoneNumber}
|
||||
onChange={handlePhoneChange}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6">
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="subject"
|
||||
placeholder="Subject"
|
||||
value={formData.subject}
|
||||
onChange={handleChange}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<textarea
|
||||
name="message"
|
||||
placeholder="Write Message"
|
||||
value={formData.message}
|
||||
onChange={handleChange}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div className="form-grp checkbox-grp">
|
||||
<input
|
||||
type="checkbox"
|
||||
name="checkbox"
|
||||
id="checkbox"
|
||||
checked={formData.checkbox}
|
||||
onChange={handleChange}
|
||||
/>
|
||||
<label htmlFor="checkbox">Save my name, email and phone number for future messages</label>
|
||||
</div>
|
||||
<button type="submit" className="btn">
|
||||
Submit Request
|
||||
</button>
|
||||
</form>
|
||||
<p className="ajax-response mb-0" />
|
||||
</div>
|
||||
);
|
||||
}
|
11
components/custom/ContactSender.js
Normal file
11
components/custom/ContactSender.js
Normal file
@ -0,0 +1,11 @@
|
||||
import * as React from "react";
|
||||
|
||||
export const EmailTemplate = ({ name = "", emailAddress = "", phoneNumber = "", subject = "", message = "" }) => (
|
||||
<div>
|
||||
<h3>Name: {name}</h3>
|
||||
<h3>Email: {emailAddress}</h3>
|
||||
<h3>Phone: {phoneNumber}</h3>
|
||||
<h3>Subject: {subject}</h3>
|
||||
<h3>Message: {message}</h3>
|
||||
</div>
|
||||
);
|
73
components/custom/ManageAccount.js
Normal file
73
components/custom/ManageAccount.js
Normal file
@ -0,0 +1,73 @@
|
||||
import { useState } from "react";
|
||||
|
||||
export default function ManageAccount() {
|
||||
const [name, setName] = useState("John Doe");
|
||||
const [email, setEmail] = useState("johndoe@example.com");
|
||||
const [phoneNumber, setPhoneNumber] = useState("123-456-7890");
|
||||
const [password, setPassword] = useState("************");
|
||||
|
||||
const handleNameEdit = () => {
|
||||
// Add your logic to edit the name
|
||||
};
|
||||
|
||||
const handleEmailEdit = () => {
|
||||
// Add your logic to edit the email
|
||||
};
|
||||
|
||||
const handlePhoneNumberEdit = () => {
|
||||
// Add your logic to edit the phone number
|
||||
};
|
||||
|
||||
const handlePasswordChange = () => {
|
||||
// Add your logic to change the password
|
||||
};
|
||||
|
||||
const handleAccountDelete = () => {
|
||||
// Add your logic to delete the account
|
||||
};
|
||||
|
||||
return (
|
||||
<div>
|
||||
<h2>Manage Account</h2>
|
||||
<h4>Profile Information</h4>
|
||||
<div className="input-style">
|
||||
<label htmlFor="name">Name:</label>
|
||||
<input type="text" id="name" value={name} readOnly />
|
||||
<button onClick={handleNameEdit} className="btn-input">
|
||||
Edit
|
||||
</button>
|
||||
</div>
|
||||
<div className="input-style">
|
||||
<label htmlFor="email">Email:</label>
|
||||
<input type="email" id="email" value={email} readOnly />
|
||||
<button onClick={handleEmailEdit} className="btn-input">
|
||||
Edit
|
||||
</button>
|
||||
</div>
|
||||
<div className="input-style">
|
||||
<label htmlFor="phoneNumber">Phone Number:</label>
|
||||
<input type="tel" id="phoneNumber" value={phoneNumber} readOnly />
|
||||
<button onClick={handlePhoneNumberEdit} className="btn-input">
|
||||
Edit
|
||||
</button>
|
||||
</div>
|
||||
<h4>Security</h4>
|
||||
<div className="input-style">
|
||||
<label htmlFor="password">Password:</label>
|
||||
<input type="password" id="password" value={password} readOnly />
|
||||
<button onClick={handlePasswordChange} className="btn-input">
|
||||
Change Password
|
||||
</button>
|
||||
</div>
|
||||
<h4>Account Actions</h4>
|
||||
<div>
|
||||
<button onClick={handleAccountDelete} className="btn-custom">
|
||||
Delete Account
|
||||
</button>
|
||||
<p className="mt-10">
|
||||
Warning: Deleting your account is irreversible. All your data will be permanently deleted.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
78
components/custom/PopUp.js
Normal file
78
components/custom/PopUp.js
Normal file
@ -0,0 +1,78 @@
|
||||
"use client";
|
||||
|
||||
import { useState, useEffect } from "react";
|
||||
import { usePathname } from "next/navigation";
|
||||
import Cookies from "js-cookie";
|
||||
import Callback2 from "@/components/sections/Callback2";
|
||||
|
||||
export default function Popup() {
|
||||
const [showPopup, setShowPopup] = useState(false);
|
||||
const pathname = usePathname();
|
||||
|
||||
useEffect(() => {
|
||||
const prospectClient = Cookies.get("prospectClient");
|
||||
const popupShown = sessionStorage.getItem("popupShown");
|
||||
const lastPopupTime = localStorage.getItem("lastPopupTime");
|
||||
const firstVisit = sessionStorage.getItem("firstVisit");
|
||||
|
||||
if (
|
||||
prospectClient === "true" ||
|
||||
pathname === "/contact" ||
|
||||
pathname === "/schedule" ||
|
||||
pathname === "/login" ||
|
||||
pathname === "/register" ||
|
||||
pathname === "/terms-of-use" ||
|
||||
pathname === "/forgot-password" ||
|
||||
pathname === "/client-area" ||
|
||||
pathname === "/reset-password"
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!popupShown) {
|
||||
if (!firstVisit) {
|
||||
const handleScroll = () => {
|
||||
if (window.scrollY > document.documentElement.scrollHeight / 2) {
|
||||
setShowPopup(true);
|
||||
window.removeEventListener("scroll", handleScroll);
|
||||
sessionStorage.setItem("popupShown", "true");
|
||||
localStorage.setItem("lastPopupTime", Date.now().toString());
|
||||
sessionStorage.removeItem("firstVisit");
|
||||
}
|
||||
};
|
||||
|
||||
window.addEventListener("scroll", handleScroll);
|
||||
return () => window.removeEventListener("scroll", handleScroll);
|
||||
} else if (firstVisit) {
|
||||
setShowPopup(true);
|
||||
sessionStorage.setItem("popupShown", "true");
|
||||
localStorage.setItem("lastPopupTime", Date.now().toString());
|
||||
sessionStorage.removeItem("firstVisit");
|
||||
}
|
||||
} else if (!lastPopupTime || Date.now() - parseInt(lastPopupTime) > 12 * 60 * 60 * 1000) {
|
||||
setShowPopup(true);
|
||||
localStorage.setItem("lastPopupTime", Date.now().toString());
|
||||
}
|
||||
}, [pathname]);
|
||||
|
||||
const handleContainerClick = (e) => {
|
||||
if (e.target === e.currentTarget) {
|
||||
setShowPopup(false);
|
||||
}
|
||||
};
|
||||
|
||||
if (!showPopup) return null;
|
||||
|
||||
return (
|
||||
<div className="popup">
|
||||
<div className="container" onClick={handleContainerClick}>
|
||||
<section className="call-back-area-custom call-back-area rounded-5">
|
||||
<div className="popup-close-btn" onClick={() => setShowPopup(false)}>
|
||||
<i className="fas fa-times" />
|
||||
</div>
|
||||
<Callback2 />
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
469
components/custom/PortfolioSelector.js
Normal file
469
components/custom/PortfolioSelector.js
Normal file
@ -0,0 +1,469 @@
|
||||
"use client";
|
||||
import { useRouter, useSearchParams } from "next/navigation";
|
||||
import { useState, useEffect } from "react";
|
||||
import Link from "next/link";
|
||||
|
||||
export default function FilterableList() {
|
||||
const router = useRouter();
|
||||
const searchParams = useSearchParams();
|
||||
const [filter, setFilter] = useState("All");
|
||||
|
||||
useEffect(() => {
|
||||
router.replace(`/portfolio?filter=${filter}`, { scroll: false });
|
||||
}, [filter]);
|
||||
|
||||
useEffect(() => {
|
||||
const queryFilter = searchParams.get("filter") || "All";
|
||||
setFilter(queryFilter);
|
||||
}, [searchParams]);
|
||||
|
||||
const handleFilterChange = (e) => {
|
||||
const newFilter = e.target.value;
|
||||
setFilter(newFilter);
|
||||
router.replace(`/portfolio?filter=${newFilter}`, { scroll: false });
|
||||
};
|
||||
return (
|
||||
<div>
|
||||
{/* Mobile */}
|
||||
<div className="portfolio__form d-xl-none d-md-block">
|
||||
<div className="form-grp select-grp">
|
||||
<select
|
||||
className="orderby"
|
||||
value={filter}
|
||||
onChange={handleFilterChange}
|
||||
>
|
||||
<option value="All">All</option>
|
||||
<option value="Tech">Tech/AI</option>
|
||||
<option value="Online-Businesses">Online Businesses</option>
|
||||
<option value="Video-Games">Video Games</option>
|
||||
<option value="Restaurants">Restaurants</option>
|
||||
<option value="Startups">Startups</option>
|
||||
<option value="Aerospace">Avionics/Aerospace</option>
|
||||
<option value="Professional-Services">Professional Services</option>
|
||||
<option value="Travel">Travel</option>
|
||||
<option value="Auto-Industry">Auto Industry</option>
|
||||
<option value="Construction">Construction</option>
|
||||
<option value="Law">LAW</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="portfolio__form d-xl-flex d-none">
|
||||
<button
|
||||
type="button"
|
||||
className={
|
||||
"btn portfolio-btn " + (filter === "All" ? "selected" : "")
|
||||
}
|
||||
onClick={() => setFilter("All")}
|
||||
>
|
||||
All
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className={
|
||||
"btn portfolio-btn " + (filter === "Tech" ? "selected" : "")
|
||||
}
|
||||
onClick={() => setFilter("Tech")}
|
||||
>
|
||||
Tech/AI
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className={
|
||||
"btn portfolio-btn " +
|
||||
(filter === "Online-Businesses" ? "selected" : "")
|
||||
}
|
||||
onClick={() => setFilter("Online-Businesses")}
|
||||
>
|
||||
Online Businesses
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className={
|
||||
"btn portfolio-btn " + (filter === "Video-Games" ? "selected" : "")
|
||||
}
|
||||
onClick={() => setFilter("Video-Games")}
|
||||
>
|
||||
Video Games
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className={
|
||||
"btn portfolio-btn " + (filter === "Restaurants" ? "selected" : "")
|
||||
}
|
||||
onClick={() => setFilter("Restaurants")}
|
||||
>
|
||||
Restaurants
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className={
|
||||
"btn portfolio-btn " + (filter === "Startups" ? "selected" : "")
|
||||
}
|
||||
onClick={() => setFilter("Startups")}
|
||||
>
|
||||
Startups
|
||||
</button>
|
||||
<div
|
||||
className={
|
||||
"form-grp select-grp flex-grow-1 " +
|
||||
(filter === "Aerospace" ||
|
||||
filter === "Professional-Services" ||
|
||||
filter === "Travel" ||
|
||||
filter === "Auto-Industry" ||
|
||||
filter === "Construction" ||
|
||||
filter === "Law"
|
||||
? "selected"
|
||||
: "")
|
||||
}
|
||||
>
|
||||
<select
|
||||
className="orderby"
|
||||
value={filter}
|
||||
onChange={handleFilterChange}
|
||||
>
|
||||
<option selected value="All" className="display-none">
|
||||
MORE INDUSTRIES
|
||||
</option>
|
||||
<option value="Aerospace">AVIONICS/AEROSPACE</option>
|
||||
<option value="Professional-Services">PROFESSIONAL SERVICES</option>
|
||||
<option value="Travel">TRAVEL</option>
|
||||
<option value="Auto-Industry">AUTO INDUSTRY</option>
|
||||
<option value="Construction">CONSTRUCTION</option>
|
||||
<option value="Law">LAW</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="row justify-content-start">
|
||||
<div
|
||||
className={
|
||||
filter === "All" ||
|
||||
filter === "Restaurants" ||
|
||||
filter === "Startups"
|
||||
? "col-xl-3 col-lg-4 col-md-6 col-sm-8"
|
||||
: "display-none"
|
||||
}
|
||||
>
|
||||
<div className="services-item shine-animate-item">
|
||||
<div className="services-thumb">
|
||||
<Link
|
||||
href="/portfolio/the-spark-coffee"
|
||||
className="shine-animate"
|
||||
>
|
||||
<img src="/assets/img/custom/project-1.jpg" alt="Project 1" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="services-content">
|
||||
<h4 className="title">
|
||||
<Link href="/portfolio/the-spark-coffee">The Spark Coffee</Link>
|
||||
</h4>
|
||||
<p>
|
||||
Mobile coffee business offering on-the-go food and beverage
|
||||
services and catering to people across the United States.
|
||||
</p>
|
||||
<Link href="/portfolio/the-spark-coffee" className="btn">
|
||||
View Case Study
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className={
|
||||
filter === "All" ||
|
||||
filter === "Aerospace" ||
|
||||
filter === "Travel" ||
|
||||
filter === "Professional-Services"
|
||||
? "col-xl-3 col-lg-4 col-md-6 col-sm-8"
|
||||
: "display-none"
|
||||
}
|
||||
>
|
||||
<div className="services-item shine-animate-item">
|
||||
<div className="services-thumb">
|
||||
<Link href="/portfolio/atlas-aviation" className="shine-animate">
|
||||
<img src="/assets/img/custom/project-2.jpg" alt="" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="services-content">
|
||||
<h4 className="title">
|
||||
<Link href="/portfolio/atlas-aviation">Atlas Aviation</Link>
|
||||
</h4>
|
||||
<p>
|
||||
Fully certified pilot training and aircraft rental company based
|
||||
in Tampa Florida offering services for both Jet and Turbo Prop.
|
||||
</p>
|
||||
<Link href="/portfolio/atlas-aviation" className="btn">
|
||||
View Case Study
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className={
|
||||
filter === "All" ||
|
||||
filter === "Fruit" ||
|
||||
filter === "Online-Businesses" ||
|
||||
filter === "Tech"
|
||||
? "col-xl-3 col-lg-4 col-md-6 col-sm-8"
|
||||
: "display-none"
|
||||
}
|
||||
>
|
||||
<div className="services-item shine-animate-item">
|
||||
<div className="services-thumb">
|
||||
<Link
|
||||
href="/portfolio/social-celebrity"
|
||||
className="shine-animate"
|
||||
>
|
||||
<img src="/assets/img/custom/project-4.png" alt="" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="services-content">
|
||||
<h4 className="title">
|
||||
<Link href="/portfolio/social-celebrity">Social Celebrity</Link>
|
||||
</h4>
|
||||
<p>
|
||||
Social Media Enhancement company providing marketing services
|
||||
for Facebook, Instagram, TikTok, Twitter, Youtube and more.
|
||||
</p>
|
||||
<Link href="/portfolio/social-celebrity" className="btn">
|
||||
View Case Study
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className={
|
||||
filter === "All" ||
|
||||
filter === "Video-Games" ||
|
||||
filter === "Online-Businesses" ||
|
||||
filter === "Tech"
|
||||
? "col-xl-3 col-lg-4 col-md-6 col-sm-8"
|
||||
: "display-none"
|
||||
}
|
||||
>
|
||||
<div className="services-item shine-animate-item">
|
||||
<div className="services-thumb">
|
||||
<Link href="/portfolio/discord-center" className="shine-animate">
|
||||
<img src="/assets/img/custom/project-3.png" alt="" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="services-content">
|
||||
<h4 className="title">
|
||||
<Link href="/portfolio/discord-center">Discord Center</Link>
|
||||
</h4>
|
||||
<p>
|
||||
Server Listing Website utilized by millions of users of the
|
||||
popular communicaton platform - "Discord" which specializes in
|
||||
growing Discord servers.
|
||||
</p>
|
||||
<Link href="/portfolio/discord-center" className="btn">
|
||||
View Case Study
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className={
|
||||
filter === "All" ||
|
||||
filter === "Tech" ||
|
||||
filter === "Online-Businesses" ||
|
||||
filter === "Video-Games"
|
||||
? "col-xl-3 col-lg-4 col-md-6 col-sm-8"
|
||||
: "display-none"
|
||||
}
|
||||
>
|
||||
<div className="services-item shine-animate-item">
|
||||
<div className="services-thumb">
|
||||
<Link
|
||||
href="/portfolio/hytale-server-hosting"
|
||||
className="shine-animate"
|
||||
>
|
||||
<img src="/assets/img/custom/project-5.png" alt="" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="services-content">
|
||||
<h4 className="title">
|
||||
<Link href="/portfolio/hytale-server-hosting">
|
||||
Hytale Server Hosting
|
||||
</Link>
|
||||
</h4>
|
||||
<p>
|
||||
Server Hosting company for the upcoming, highly anticipated
|
||||
videogame - Hytale, being developed by Tencent, the
|
||||
parent-company for TikTok & Riot Games.
|
||||
</p>
|
||||
<Link href="/portfolio/hytale-server-hosting" className="btn">
|
||||
View Case Study
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className={
|
||||
filter === "All" || filter === "Auto-Industry"
|
||||
? "col-xl-3 col-lg-4 col-md-6 col-sm-8"
|
||||
: "display-none"
|
||||
}
|
||||
>
|
||||
<div className="services-item shine-animate-item">
|
||||
<div className="services-thumb">
|
||||
<Link
|
||||
href="/portfolio/multi-group-automotive"
|
||||
className="shine-animate"
|
||||
>
|
||||
<img src="/assets/img/custom/project-6.png" alt="" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="services-content">
|
||||
<h4 className="title">
|
||||
<Link href="/portfolio/multi-group-automotive">
|
||||
Multi Group Automotive
|
||||
</Link>
|
||||
</h4>
|
||||
<p>
|
||||
Multi-purpose used car dealership located in Norcross, Georgia
|
||||
servicing North Metro Atlanta
|
||||
</p>
|
||||
<Link href="/portfolio/multi-group-automotive" className="btn">
|
||||
View Case Study
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className={
|
||||
filter === "All" || filter === "Construction"
|
||||
? "col-xl-3 col-lg-4 col-md-6 col-sm-8"
|
||||
: "display-none"
|
||||
}
|
||||
>
|
||||
<div className="services-item shine-animate-item">
|
||||
<div className="services-thumb">
|
||||
<Link
|
||||
href="/portfolio/water-main-line-replacement"
|
||||
className="shine-animate"
|
||||
>
|
||||
<img src="/assets/img/custom/project-7.png" alt="" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="services-content">
|
||||
<h4 className="title">
|
||||
<Link href="/portfolio/water-main-line-replacement">
|
||||
Water Main Line Replacement LLC
|
||||
</Link>
|
||||
</h4>
|
||||
<p>
|
||||
A water main line replacement company in Atlanta, Georgia that
|
||||
handles the installation and repair of essential water
|
||||
pipelines.
|
||||
</p>
|
||||
<Link
|
||||
href="/portfolio/water-main-line-replacement"
|
||||
className="btn"
|
||||
>
|
||||
View Case Study
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className={
|
||||
filter === "All" ||
|
||||
filter === "Restaurants" ||
|
||||
filter === "Startups"
|
||||
? "col-xl-3 col-lg-4 col-md-6 col-sm-8"
|
||||
: "display-none"
|
||||
}
|
||||
>
|
||||
<div className="services-item shine-animate-item">
|
||||
<div className="services-thumb">
|
||||
<Link
|
||||
href="/portfolio/taqueria-del-mar"
|
||||
className="shine-animate"
|
||||
>
|
||||
<img src="/assets/img/custom/project-8.png" alt="" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="services-content">
|
||||
<h4 className="title">
|
||||
<Link href="/portfolio/taqueria-del-mar">Taqueria del Mar</Link>
|
||||
</h4>
|
||||
<p>
|
||||
Latin American eatery in Atlanta, Georgia that specializes in
|
||||
Mexican cuisine with a modern twist.
|
||||
</p>
|
||||
<Link href="/portfolio/taqueria-del-mar" className="btn">
|
||||
View Case Study
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className={
|
||||
filter === "All" || filter === "Construction"
|
||||
? "col-xl-3 col-lg-4 col-md-6 col-sm-8"
|
||||
: "display-none"
|
||||
}
|
||||
>
|
||||
<div className="services-item shine-animate-item">
|
||||
<div className="services-thumb">
|
||||
<Link
|
||||
href="/portfolio/jenni-bg-plumbing"
|
||||
className="shine-animate"
|
||||
>
|
||||
<img src="/assets/img/custom/project-9.png" alt="" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="services-content">
|
||||
<h4 className="title">
|
||||
<Link href="/portfolio/jenni-bg-plumbing">
|
||||
Jenni BG Plumbing
|
||||
</Link>
|
||||
</h4>
|
||||
<p>
|
||||
Plumbing company in Peachtree Corners, Georgia that fixes and
|
||||
installs pipes, fixtures, and other systems that carry water and
|
||||
waste in homes and businesses.
|
||||
</p>
|
||||
<Link href="/portfolio/jenni-bg-plumbing" className="btn">
|
||||
View Case Study
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className={
|
||||
filter === "All" || filter === "Law"
|
||||
? "col-xl-3 col-lg-4 col-md-6 col-sm-8"
|
||||
: "display-none"
|
||||
}
|
||||
>
|
||||
<div className="services-item shine-animate-item">
|
||||
<div className="services-thumb">
|
||||
<Link
|
||||
href="/portfolio/the-gurvey-law-group"
|
||||
className="shine-animate"
|
||||
>
|
||||
<img src="/assets/img/custom/project-10.png" alt="" />
|
||||
</Link>
|
||||
</div>
|
||||
<div className="services-content">
|
||||
<h4 className="title">
|
||||
<Link href="/portfolio/the-gurvey-law-group">
|
||||
The Gurvey Law Group
|
||||
</Link>
|
||||
</h4>
|
||||
<p>
|
||||
A law firm in Brookhaven, Georgia that specializes in
|
||||
investments, purchases, and sales.
|
||||
</p>
|
||||
<Link href="/portfolio/the-gurvey-law-group" className="btn">
|
||||
View Case Study
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
23
components/custom/ReportContent.js
Normal file
23
components/custom/ReportContent.js
Normal file
@ -0,0 +1,23 @@
|
||||
"use client";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useRouter } from "next/navigation";
|
||||
|
||||
export default function ReportContent() {
|
||||
const [reportData, setReportData] = useState(null);
|
||||
const router = useRouter();
|
||||
|
||||
useEffect(() => {
|
||||
const storedData = sessionStorage.getItem("reportData");
|
||||
if (storedData) {
|
||||
setReportData(JSON.parse(storedData));
|
||||
} else {
|
||||
router.push("/");
|
||||
}
|
||||
}, []);
|
||||
|
||||
if (!reportData) {
|
||||
return <p>Loading...</p>;
|
||||
}
|
||||
|
||||
return <div>{/* Add more report content here */}</div>;
|
||||
}
|
201
components/custom/Schedule.js
Normal file
201
components/custom/Schedule.js
Normal file
@ -0,0 +1,201 @@
|
||||
"use client";
|
||||
import React, { useState } from "react";
|
||||
import "react-phone-number-input/style.css";
|
||||
import PhoneInput from "react-phone-number-input";
|
||||
|
||||
export default function Schedule({ onFormSubmit }) {
|
||||
const [formData, setFormData] = useState({
|
||||
firstName: "",
|
||||
lastName: "",
|
||||
emailAddress: "",
|
||||
phoneNumber: "",
|
||||
companyName: "",
|
||||
websiteUrl: "",
|
||||
annualRevenue: "",
|
||||
learnFrom: "",
|
||||
additionalInfo: "",
|
||||
checkbox: false,
|
||||
});
|
||||
|
||||
const handleChange = (e) => {
|
||||
const { name, value, type, checked } = e.target;
|
||||
setFormData((prevState) => ({
|
||||
...prevState,
|
||||
[name]: type === "checkbox" ? checked : value,
|
||||
}));
|
||||
};
|
||||
|
||||
const handlePhoneChange = (value) => {
|
||||
setFormData((prevState) => ({
|
||||
...prevState,
|
||||
phoneNumber: value,
|
||||
}));
|
||||
};
|
||||
|
||||
const handleSubmit = async (e) => {
|
||||
e.preventDefault();
|
||||
try {
|
||||
const response = await fetch("/api/schedule-send", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify(formData),
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
document.cookie = `prospectClient=true; path=/; max-age=31536000`;
|
||||
onFormSubmit();
|
||||
} else {
|
||||
throw new Error("Form submission failed");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error:", error);
|
||||
alert("An error occurred while submitting the form.");
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="contact__form-wrap">
|
||||
<form id="contact-form" onSubmit={handleSubmit}>
|
||||
<div className="row">
|
||||
<div className="col-md-6">
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="firstName"
|
||||
placeholder="First Name"
|
||||
value={formData.firstName}
|
||||
onChange={handleChange}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6">
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="lastName"
|
||||
placeholder="Last Name"
|
||||
value={formData.lastName}
|
||||
onChange={handleChange}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6">
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="email"
|
||||
name="emailAddress"
|
||||
placeholder="Email Address"
|
||||
value={formData.emailAddress}
|
||||
onChange={handleChange}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6">
|
||||
<div className="form-grp">
|
||||
<PhoneInput
|
||||
international
|
||||
defaultCountry="US"
|
||||
value={formData.phoneNumber}
|
||||
onChange={handlePhoneChange}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6">
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="companyName"
|
||||
placeholder="Company Name"
|
||||
value={formData.companyName}
|
||||
onChange={handleChange}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-6">
|
||||
<div className="form-grp">
|
||||
<input
|
||||
type="text"
|
||||
name="websiteUrl"
|
||||
placeholder="Website URL"
|
||||
value={formData.websiteUrl}
|
||||
onChange={handleChange}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<h6>Estimated Annual Revenue*</h6>
|
||||
<select
|
||||
className="form-select"
|
||||
name="annualRevenue"
|
||||
value={formData.annualRevenue}
|
||||
onChange={handleChange}
|
||||
required
|
||||
>
|
||||
<option disabled selected value="" className="display-none">
|
||||
Select an option
|
||||
</option>
|
||||
<option value="250K Less">Less than $250K a year</option>
|
||||
<option value="250K-500K">$250K - $500K a year</option>
|
||||
<option value="500K-1M">$500K - $1M a year</option>
|
||||
<option value="1M More">$1M a year or more</option>
|
||||
</select>
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<h6>How Did You Learn About RankRunners?*</h6>
|
||||
<select
|
||||
className="form-select"
|
||||
name="learnFrom"
|
||||
required
|
||||
value={formData.learnFrom}
|
||||
onChange={handleChange}
|
||||
>
|
||||
<option disabled selected value="" className="display-none">
|
||||
Select an option
|
||||
</option>
|
||||
<option value="Instagram">Instagram</option>
|
||||
<option value="Facebook">Facebook</option>
|
||||
<option value="LinkedIn">LinkedIn</option>
|
||||
<option value="Google Search">Google Search</option>
|
||||
<option value="Phone Call">Phone Call</option>
|
||||
<option value="Email">Email</option>
|
||||
<option value="Podcast / Webinar">Podcast / Webinar</option>
|
||||
<option value="Networking Event">Networking Event</option>
|
||||
<option value="Referral">Referral</option>
|
||||
<option value="Other">Other</option>
|
||||
</select>
|
||||
</div>
|
||||
<div className="form-grp">
|
||||
<textarea
|
||||
name="additionalInfo"
|
||||
placeholder="Additional Information"
|
||||
value={formData.additionalInfo}
|
||||
onChange={handleChange}
|
||||
/>
|
||||
</div>
|
||||
<div className="form-grp checkbox-grp">
|
||||
<input
|
||||
type="checkbox"
|
||||
name="checkbox"
|
||||
id="checkbox"
|
||||
checked={formData.checkbox}
|
||||
onChange={handleChange}
|
||||
required
|
||||
/>
|
||||
<label htmlFor="checkbox">
|
||||
I'm serious about growing my business and understand services start at $1,500
|
||||
</label>
|
||||
</div>
|
||||
<button type="submit" className="btn">
|
||||
Submit Request
|
||||
</button>
|
||||
</form>
|
||||
<p className="ajax-response mb-0" />
|
||||
</div>
|
||||
);
|
||||
}
|
35
components/custom/ScheduleAfter.js
Normal file
35
components/custom/ScheduleAfter.js
Normal file
@ -0,0 +1,35 @@
|
||||
"use client";
|
||||
import React, { useEffect } from "react";
|
||||
import Head from "next/head";
|
||||
|
||||
const CalendlyWidget = () => {
|
||||
useEffect(() => {
|
||||
const script = document.createElement("script");
|
||||
script.src = "https://assets.calendly.com/assets/external/widget.js";
|
||||
script.async = true;
|
||||
document.body.appendChild(script);
|
||||
|
||||
return () => {
|
||||
document.body.removeChild(script);
|
||||
};
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://assets.calendly.com/assets/external/widget.js"
|
||||
async
|
||||
></script>
|
||||
</Head>
|
||||
<div
|
||||
className="calendly-inline-widget"
|
||||
data-url="https://calendly.com/rankrunners-sales/30min"
|
||||
style={{ minWidth: "320px", height: "700px" }}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default CalendlyWidget;
|
23
components/custom/ScheduleChooser.js
Normal file
23
components/custom/ScheduleChooser.js
Normal file
@ -0,0 +1,23 @@
|
||||
"use client";
|
||||
import { useState, useEffect } from "react";
|
||||
import Schedule from "@/components/custom/Schedule";
|
||||
import ScheduleAfter from "@/components/custom/ScheduleAfter";
|
||||
import { getCookie, setCookie } from "cookies-next";
|
||||
|
||||
export default function ScheduleChooser() {
|
||||
const [showScheduleAfter, setShowScheduleAfter] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
const scheduleAfterCookie = getCookie("scheduleAfter");
|
||||
if (scheduleAfterCookie) {
|
||||
setShowScheduleAfter(true);
|
||||
}
|
||||
}, []);
|
||||
|
||||
const handleFormSubmit = () => {
|
||||
setShowScheduleAfter(true);
|
||||
setCookie("scheduleAfter", "true", { maxAge: 3600, path: "/schedule" });
|
||||
};
|
||||
|
||||
return <>{showScheduleAfter ? <ScheduleAfter /> : <Schedule onFormSubmit={handleFormSubmit} />}</>;
|
||||
}
|
26
components/custom/ScheduleSender.js
Normal file
26
components/custom/ScheduleSender.js
Normal file
@ -0,0 +1,26 @@
|
||||
import * as React from "react";
|
||||
|
||||
export const EmailTemplate = ({
|
||||
firstName = "",
|
||||
lastName = "",
|
||||
emailAddress = "",
|
||||
phoneNumber = "",
|
||||
companyName = "",
|
||||
websiteUrl = "",
|
||||
annualRevenue = "",
|
||||
learnFrom = "",
|
||||
additionalInfo = "",
|
||||
}) => (
|
||||
<div>
|
||||
<h3>
|
||||
Name: {firstName} {lastName}
|
||||
</h3>
|
||||
<h3>Email: {emailAddress}</h3>
|
||||
<h3>Phone: {phoneNumber}</h3>
|
||||
<h3>Company: {companyName}</h3>
|
||||
<h3>Website: {websiteUrl}</h3>
|
||||
<h3>Annual Revenue: {annualRevenue}</h3>
|
||||
<h3>Learn From: {learnFrom}</h3>
|
||||
<h3>Additional Info: {additionalInfo}</h3>
|
||||
</div>
|
||||
);
|
61
components/custom/ScrollHandler.js
Normal file
61
components/custom/ScrollHandler.js
Normal file
@ -0,0 +1,61 @@
|
||||
"use client";
|
||||
import { useEffect, useCallback, useState } from "react";
|
||||
import { usePathname, useSearchParams } from "next/navigation";
|
||||
import { Suspense } from "react";
|
||||
|
||||
const ScrollHandlerInner = () => {
|
||||
const pathname = usePathname();
|
||||
const searchParams = useSearchParams();
|
||||
|
||||
const scrollToHash = useCallback(() => {
|
||||
const hash = window.location.hash;
|
||||
if (hash) {
|
||||
const elementId = hash.substring(1);
|
||||
const element = document.getElementById(elementId);
|
||||
|
||||
if (element) {
|
||||
const yOffset = -200;
|
||||
setTimeout(() => {
|
||||
const y = element.getBoundingClientRect().top + window.scrollY + yOffset;
|
||||
window.scrollTo({
|
||||
top: y,
|
||||
behavior: "smooth",
|
||||
});
|
||||
}, 100);
|
||||
}
|
||||
}
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (window.location.hash) {
|
||||
scrollToHash();
|
||||
}
|
||||
}, [pathname, searchParams, scrollToHash]);
|
||||
|
||||
useEffect(() => {
|
||||
window.addEventListener("hashchange", scrollToHash);
|
||||
return () => window.removeEventListener("hashchange", scrollToHash);
|
||||
}, [scrollToHash]);
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
const ClientScrollHandler = () => {
|
||||
const [isMounted, setIsMounted] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
setIsMounted(true);
|
||||
}, []);
|
||||
|
||||
if (!isMounted) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<Suspense fallback={null}>
|
||||
<ScrollHandlerInner />
|
||||
</Suspense>
|
||||
);
|
||||
};
|
||||
|
||||
export default ClientScrollHandler;
|
34
components/custom/UseScrollToHash.js
Normal file
34
components/custom/UseScrollToHash.js
Normal file
@ -0,0 +1,34 @@
|
||||
"use client";
|
||||
|
||||
import { useEffect, useCallback } from "react";
|
||||
import { usePathname } from "next/navigation";
|
||||
|
||||
export function useScrollToHash() {
|
||||
const pathname = usePathname();
|
||||
|
||||
const scrollToHash = useCallback(() => {
|
||||
const hash = window.location.hash;
|
||||
if (hash) {
|
||||
setTimeout(() => {
|
||||
const elementId = hash.substring(1);
|
||||
const element = document.getElementById(elementId);
|
||||
if (element) {
|
||||
const yOffset = -100; // Adjust this value as needed
|
||||
const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
|
||||
window.scrollTo({ top: y, behavior: "smooth" });
|
||||
}
|
||||
}, 0);
|
||||
}
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (window.location.hash) {
|
||||
scrollToHash();
|
||||
}
|
||||
}, [pathname, scrollToHash]);
|
||||
|
||||
useEffect(() => {
|
||||
window.addEventListener("hashchange", scrollToHash);
|
||||
return () => window.removeEventListener("hashchange", scrollToHash);
|
||||
}, [scrollToHash]);
|
||||
}
|
25
components/dashboard/LogoutButton.js
Normal file
25
components/dashboard/LogoutButton.js
Normal file
@ -0,0 +1,25 @@
|
||||
"use client";
|
||||
|
||||
import { useRouter } from "next/navigation";
|
||||
|
||||
export default function LogoutButton() {
|
||||
const router = useRouter();
|
||||
|
||||
const handleLogout = async () => {
|
||||
try {
|
||||
// Add your custom logout logic here
|
||||
|
||||
router.push("/login");
|
||||
} catch (error) {
|
||||
console.error("Error logging out:", error.message);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="container pt-30">
|
||||
<button className="btn btn-no-arrow" onClick={handleLogout}>
|
||||
Log Out
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
}
|
46
components/dashboard/NocodbPaymentLog.js
Normal file
46
components/dashboard/NocodbPaymentLog.js
Normal file
@ -0,0 +1,46 @@
|
||||
import { useState, useEffect } from "react";
|
||||
|
||||
const NocodbPaymentLog = ({ paymentLog, userID }) => {
|
||||
const [results, setResults] = useState([]);
|
||||
|
||||
useEffect(() => {
|
||||
const updateTable = async () => {
|
||||
const updateResults = [];
|
||||
for (const payment of paymentLog) {
|
||||
try {
|
||||
// Placeholder logic for processing payment logs
|
||||
const isExisting = false; // Replace with actual check logic
|
||||
|
||||
if (!isExisting) {
|
||||
// Simulate adding a new payment record
|
||||
updateResults.push({
|
||||
id: payment.id,
|
||||
status: "success",
|
||||
result: payment,
|
||||
});
|
||||
} else {
|
||||
updateResults.push({
|
||||
id: payment.id,
|
||||
status: "skipped",
|
||||
reason: "Already exists",
|
||||
});
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(`Error processing payment ${payment.id}:`, err);
|
||||
updateResults.push({
|
||||
id: payment.id,
|
||||
status: "error",
|
||||
error: err.message,
|
||||
});
|
||||
}
|
||||
}
|
||||
setResults(updateResults);
|
||||
};
|
||||
|
||||
updateTable();
|
||||
}, [paymentLog, userID]);
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
export default NocodbPaymentLog;
|
43
components/dashboard/NocodbProjects.js
Normal file
43
components/dashboard/NocodbProjects.js
Normal file
@ -0,0 +1,43 @@
|
||||
import { useState, useEffect } from "react";
|
||||
|
||||
const ProjectInfo = (userId) => {
|
||||
const [projectData, setProjectData] = useState(null);
|
||||
const [error, setError] = useState(null);
|
||||
|
||||
useEffect(() => {
|
||||
const fetchData = async () => {
|
||||
try {
|
||||
// Placeholder for fetching project data
|
||||
const response = [
|
||||
{
|
||||
"Project ID": "1",
|
||||
Title: "Example Project",
|
||||
URL: "https://example.com",
|
||||
Services: "Service1, Service2",
|
||||
"Price Monthly": 100,
|
||||
"PDF Contract": null,
|
||||
},
|
||||
];
|
||||
|
||||
const formattedData = response.map((item) => ({
|
||||
"Project ID": item["Project ID"],
|
||||
Title: item.Title,
|
||||
URL: item.URL,
|
||||
Services: item.Services,
|
||||
"Price Monthly": item["Price Monthly"],
|
||||
"PDF Contract": item["PDF Contract"],
|
||||
}));
|
||||
|
||||
setProjectData(formattedData);
|
||||
} catch (err) {
|
||||
setError(err.message);
|
||||
}
|
||||
};
|
||||
|
||||
fetchData();
|
||||
}, [userId]);
|
||||
|
||||
return { projectData };
|
||||
};
|
||||
|
||||
export default ProjectInfo;
|
54
components/dashboard/NocodbUser.js
Normal file
54
components/dashboard/NocodbUser.js
Normal file
@ -0,0 +1,54 @@
|
||||
import { useState, useEffect } from "react";
|
||||
|
||||
const NocodbUser = (userId) => {
|
||||
const [identifier, setIdentifier] = useState(null);
|
||||
const [registered, setRegistered] = useState(false);
|
||||
const [error, setError] = useState(null);
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [userAccount, setUserAccount] = useState(null);
|
||||
|
||||
useEffect(() => {
|
||||
const fetchUserData = async () => {
|
||||
try {
|
||||
// Placeholder for user data fetching logic
|
||||
const mockData = [
|
||||
{
|
||||
"User ID": "123",
|
||||
Email: "user@example.com",
|
||||
},
|
||||
];
|
||||
|
||||
const user = mockData.find((item) => item["User ID"] === userId);
|
||||
|
||||
if (user) {
|
||||
if (user.Email) {
|
||||
setIdentifier(user.Email); // already registered
|
||||
setRegistered(true);
|
||||
setUserAccount(user);
|
||||
} else {
|
||||
setIdentifier(user["User ID"]); // ready for registration
|
||||
setRegistered(false);
|
||||
}
|
||||
} else {
|
||||
setIdentifier(null); // unauthorized user
|
||||
setRegistered(false);
|
||||
}
|
||||
} catch (err) {
|
||||
setError(err.message);
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
if (userId) {
|
||||
fetchUserData();
|
||||
} else {
|
||||
setLoading(false);
|
||||
setIdentifier(null);
|
||||
}
|
||||
}, [userId]);
|
||||
|
||||
return { identifier, registered, userAccount, error, loading };
|
||||
};
|
||||
|
||||
export default NocodbUser;
|
73
components/dashboard/NocodbUserRegister.js
Normal file
73
components/dashboard/NocodbUserRegister.js
Normal file
@ -0,0 +1,73 @@
|
||||
import { useState, useEffect } from "react";
|
||||
|
||||
const NocodbUserRegister = (userId) => {
|
||||
const [user, setUser] = useState(null);
|
||||
const [error, setError] = useState(null);
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [updateSuccess, setUpdateSuccess] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
const fetchUserData = async () => {
|
||||
try {
|
||||
// Placeholder for fetching user data
|
||||
const mockData = [
|
||||
{
|
||||
Id: "1",
|
||||
"User ID": "123",
|
||||
Name: "John Doe",
|
||||
Email: "john.doe@example.com",
|
||||
"Stripe Client ID": "cus_12345",
|
||||
},
|
||||
];
|
||||
|
||||
const user = mockData.find((item) => item["User ID"] === userId);
|
||||
|
||||
if (user) {
|
||||
setUser(user);
|
||||
} else {
|
||||
setError("User not found");
|
||||
}
|
||||
} catch (err) {
|
||||
setError(err.message);
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
if (userId) {
|
||||
fetchUserData();
|
||||
}
|
||||
}, [userId]);
|
||||
|
||||
const updateUser = async (newName, newEmail, newStripeClientID) => {
|
||||
if (!user) {
|
||||
return { error: "No user data to update" };
|
||||
}
|
||||
|
||||
setLoading(true);
|
||||
setUpdateSuccess(false);
|
||||
|
||||
try {
|
||||
// Simulate updating user data
|
||||
const updatedUser = {
|
||||
...user,
|
||||
Name: newName,
|
||||
Email: newEmail,
|
||||
"Stripe Client ID": newStripeClientID,
|
||||
};
|
||||
|
||||
setUser(updatedUser);
|
||||
setUpdateSuccess(true);
|
||||
return { success: true };
|
||||
} catch (err) {
|
||||
setError(err.message);
|
||||
return { error: err.message };
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
return { user, updateUser, error, loading, updateSuccess };
|
||||
};
|
||||
|
||||
export default NocodbUserRegister;
|
242
components/dashboard/PortalSelector.js
Normal file
242
components/dashboard/PortalSelector.js
Normal file
@ -0,0 +1,242 @@
|
||||
"use client";
|
||||
import React, { useEffect, useState } from "react";
|
||||
import Link from "next/link";
|
||||
|
||||
const formatCurrency = (amount, currency = "USD") => {
|
||||
return new Intl.NumberFormat("en-US", {
|
||||
style: "currency",
|
||||
currency: currency,
|
||||
}).format(amount);
|
||||
};
|
||||
|
||||
const urlFormatter = (url) => {
|
||||
if (!url.startsWith("http://") && !url.startsWith("https://")) {
|
||||
url = "https://" + url;
|
||||
}
|
||||
return url;
|
||||
};
|
||||
|
||||
const urlCleaner = (url) => {
|
||||
if (url.startsWith("http://")) {
|
||||
url = url.substr(7);
|
||||
} else if (url.startsWith("https://")) {
|
||||
url = url.substr(8);
|
||||
}
|
||||
return url;
|
||||
};
|
||||
|
||||
const formattedDate = (date) =>
|
||||
new Date(date).toLocaleDateString("en-US", {
|
||||
year: "numeric",
|
||||
month: "long",
|
||||
day: "numeric",
|
||||
});
|
||||
|
||||
function capitalizeFirstLetter(string) {
|
||||
return string.charAt(0).toUpperCase() + string.slice(1);
|
||||
}
|
||||
|
||||
export default function PortalSelector() {
|
||||
const name = "John Doe";
|
||||
const client_id = "12345";
|
||||
const email = "johndoe@example.com";
|
||||
|
||||
const [monthlyPayment, setMonthlyPayment] = useState(100);
|
||||
const [additionalPayment, setadditionalPayment] = useState(20);
|
||||
const [manager, setManager] = useState("Fausto Vasconez");
|
||||
const [managerEmail, setManagerEmail] = useState("support@rankrunners.net");
|
||||
const [managerPosition, setManagerPosition] = useState(
|
||||
"Technical Strategist"
|
||||
);
|
||||
const [projectArray, setProjectArray] = useState([]);
|
||||
const [paymentLogArray, setpaymentLogArray] = useState([]);
|
||||
const [totalPayment, setTotalPayment] = useState(0);
|
||||
|
||||
useEffect(() => {
|
||||
setTotalPayment(monthlyPayment + additionalPayment);
|
||||
// Simulate fetching project and payment log data
|
||||
setProjectArray([
|
||||
{
|
||||
Title: "Project 1",
|
||||
URL: "https://example.com",
|
||||
"Price Monthly": 100,
|
||||
Services: "Service1, Service2",
|
||||
"PDF Contract": [],
|
||||
},
|
||||
]);
|
||||
setpaymentLogArray([
|
||||
{
|
||||
id: "PAY123",
|
||||
created: "2025-01-01",
|
||||
amount_paid: 120,
|
||||
},
|
||||
]);
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div>
|
||||
<div className="row dashboard-hero">
|
||||
<div className="col dashboard-heading">
|
||||
<h2>Welcome, {name}</h2>
|
||||
<div className="dashboard-badge-group">
|
||||
<div className="dashboard-badge">{client_id}</div>
|
||||
<div className="dashboard-badge">{email}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col col-md-5 col-lg-4 col-xl-3">
|
||||
<div className="dashboard-hero-payment tg-heading-subheading">
|
||||
<h4 className="sub-title text-dark">Active</h4>
|
||||
<h2 className="text-start text-dark">
|
||||
{formatCurrency(totalPayment)}
|
||||
</h2>
|
||||
<h5 className="text-start">January 31, 2025</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="row justify-content-start portal-gap">
|
||||
<div className="col-12">
|
||||
<div className="portal-card">
|
||||
<h2 className="text-dark">Projects</h2>
|
||||
{projectArray &&
|
||||
projectArray.map((project, index) => (
|
||||
<React.Fragment key={project["Title"]}>
|
||||
<div className="table-responsive">
|
||||
<table className="table table-sm dashboard-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{project["Title"]}</th>
|
||||
<th>
|
||||
{project["URL"] && (
|
||||
<Link href={urlFormatter(project["URL"])}>
|
||||
{urlCleaner(project["URL"])}
|
||||
</Link>
|
||||
)}
|
||||
{!project["URL"] && "No URL"}
|
||||
</th>
|
||||
<th>${project["Price Monthly"]}/mo</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colSpan="2">
|
||||
{project["Services"].replace(/,/g, ", ")}
|
||||
</td>
|
||||
<td>
|
||||
{project["PDF Contract"] &&
|
||||
project["PDF Contract"].length > 0 ? (
|
||||
project["PDF Contract"].map((contract, index) => (
|
||||
<Link
|
||||
key={index}
|
||||
href={contract.signedUrl}
|
||||
target="_blank"
|
||||
>
|
||||
View PDF Contract
|
||||
</Link>
|
||||
))
|
||||
) : (
|
||||
<Link href="#">No PDF Attachment</Link>
|
||||
)}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{index < projectArray.length - 1 && (
|
||||
<div className="text-or"></div>
|
||||
)}
|
||||
</React.Fragment>
|
||||
))}
|
||||
|
||||
{!projectArray && (
|
||||
<div>
|
||||
<h3 className="text-center">No Projects</h3>
|
||||
<p className="text-center">
|
||||
You currently have no projects. Contact your account manager
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
<div className="col col-md-6 col-lg-6 col-xl-7">
|
||||
<div className="portal-card">
|
||||
<h2 className="text-dark">Account Manager</h2>
|
||||
<div className="d-flex justify-content-between">
|
||||
<div>Name</div>
|
||||
<div>{manager}</div>
|
||||
</div>
|
||||
<div className="d-flex justify-content-between">
|
||||
<div>Position</div>
|
||||
<div>{managerPosition}</div>
|
||||
</div>
|
||||
<div className="d-flex justify-content-between pb-15">
|
||||
<div>Email</div>
|
||||
<div>{managerEmail}</div>
|
||||
</div>
|
||||
<Link
|
||||
href={`mailto:${managerEmail}`}
|
||||
target="_blank"
|
||||
className="btn btn-no-arrow"
|
||||
>
|
||||
Email to Account Manager
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col col-md-6 col-lg-6 col-xl-5">
|
||||
<div className="portal-card">
|
||||
<h2 className="text-dark">Payment</h2>
|
||||
<div className="d-flex justify-content-between">
|
||||
<div>Amount Due</div>
|
||||
<div>{formatCurrency(totalPayment)}</div>
|
||||
</div>
|
||||
<div className="d-flex justify-content-between">
|
||||
<div>Due Date</div>
|
||||
<div className="dashboard-icon-parent">January 31, 2025</div>
|
||||
</div>
|
||||
<div className="d-flex justify-content-between pb-15">
|
||||
<div>Payment Method</div>
|
||||
<div>Stripe</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-12">
|
||||
<div className="portal-card">
|
||||
<h2 className="text-dark">Active Payment Log</h2>
|
||||
|
||||
{!paymentLogArray && (
|
||||
<div>
|
||||
<h3 className="text-center">No Payment History</h3>
|
||||
<p className="text-center">
|
||||
You don't have any payment history. If you have, please
|
||||
refresh the page or contact your account manager
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
{paymentLogArray && (
|
||||
<div className="table-responsive">
|
||||
<table className="table table-sm dashboard-table table-log">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Payment ID</th>
|
||||
<th>Date</th>
|
||||
<th>Amount Paid (USD)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{paymentLogArray &&
|
||||
paymentLogArray.map((payment) => (
|
||||
<tr key={payment.id}>
|
||||
<td>{payment["id"]}</td>
|
||||
<td>{formattedDate(payment["created"])}</td>
|
||||
<td>{payment["amount_paid"]}</td>
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
68
components/dashboard/StripeSubscribeButton.js
Normal file
68
components/dashboard/StripeSubscribeButton.js
Normal file
@ -0,0 +1,68 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import { useRouter } from "next/navigation";
|
||||
|
||||
const SubscriptionButton = ({ clientId, customerId, subscriptionStatus, subscriptionId }) => {
|
||||
const router = useRouter();
|
||||
const [buttonState, setButtonState] = useState("Subscribe");
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
if (subscriptionStatus === "active") {
|
||||
setButtonState("Cancel");
|
||||
} else if (subscriptionStatus === "canceled") {
|
||||
setButtonState("Activate");
|
||||
} else {
|
||||
setButtonState("Subscribe");
|
||||
}
|
||||
}, [subscriptionStatus]);
|
||||
|
||||
const handleClick = async () => {
|
||||
setIsLoading(true);
|
||||
try {
|
||||
if (buttonState === "Cancel") {
|
||||
// Show confirmation dialog
|
||||
if (
|
||||
window.confirm(
|
||||
"Are you sure you want to cancel your subscription? Canceling your subscription will remove your access to our services."
|
||||
)
|
||||
) {
|
||||
const response = await fetch("/api/stripe-cancel-subscription", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ subscriptionId }),
|
||||
});
|
||||
console.log(subscriptionId);
|
||||
const result = await response.json();
|
||||
if (result.success) {
|
||||
alert("Your subscription has been cancelled.");
|
||||
setButtonState("Activate");
|
||||
} else {
|
||||
alert("Failed to cancel subscription. Please try again or contact support.");
|
||||
console.log("Failed to cancel subscription:", result.error);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
const response = await fetch("/api/stripe-create-portal-session", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ clientId, customerId }),
|
||||
});
|
||||
const { url } = await response.json();
|
||||
window.location.href = url;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error handling subscription action:", error);
|
||||
alert("An error occurred. Please try again or contact support.");
|
||||
} finally {
|
||||
setIsLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<button className="btn btn-no-arrow" onClick={handleClick} disabled={isLoading}>
|
||||
{isLoading ? "Loading..." : buttonState}
|
||||
</button>
|
||||
);
|
||||
};
|
||||
|
||||
export default SubscriptionButton;
|
30
components/elements/BackToTop.js
Normal file
30
components/elements/BackToTop.js
Normal file
@ -0,0 +1,30 @@
|
||||
import { useEffect, useState } from "react"
|
||||
|
||||
export default function BackToTop() {
|
||||
const [hasScrolled, setHasScrolled] = useState("false")
|
||||
|
||||
useEffect(() => {
|
||||
window.addEventListener("scroll", onScroll)
|
||||
return () => {
|
||||
window.removeEventListener("scroll", onScroll)
|
||||
}
|
||||
})
|
||||
|
||||
const onScroll = () => {
|
||||
if (window.scrollY > 100 && !hasScrolled) {
|
||||
setHasScrolled(true)
|
||||
} else if (window.scrollY < 100 && hasScrolled) {
|
||||
setHasScrolled(false)
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
{hasScrolled && (
|
||||
<a className="scroll__top scroll-to-target open" href="#top" style={{ position: 'fixed', zIndex: 2147483647 }}>
|
||||
<i className="fas fa-angle-up"></i>
|
||||
</a>
|
||||
)}
|
||||
</>
|
||||
)
|
||||
}
|
55
components/elements/Counter.js
Normal file
55
components/elements/Counter.js
Normal file
@ -0,0 +1,55 @@
|
||||
import { useEffect, useRef, useState } from "react";
|
||||
|
||||
export default function Counter({ end, duration }) {
|
||||
const [count, setCount] = useState(0);
|
||||
const countRef = useRef(null);
|
||||
const increment = end / duration;
|
||||
|
||||
useEffect(() => {
|
||||
const observer = new IntersectionObserver(
|
||||
([entry]) => {
|
||||
if (entry.isIntersecting) {
|
||||
startCount();
|
||||
observer.disconnect();
|
||||
}
|
||||
},
|
||||
{ threshold: 0 }
|
||||
);
|
||||
|
||||
if (countRef.current) {
|
||||
observer.observe(countRef.current);
|
||||
}
|
||||
|
||||
return () => {
|
||||
observer.disconnect();
|
||||
};
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
const interval = setInterval(() => {
|
||||
setCount((prevCount) => {
|
||||
const newCount = prevCount + increment;
|
||||
if (newCount >= end) {
|
||||
clearInterval(interval);
|
||||
return end;
|
||||
} else {
|
||||
return newCount;
|
||||
}
|
||||
});
|
||||
}, 1000 / duration);
|
||||
|
||||
return () => {
|
||||
clearInterval(interval);
|
||||
};
|
||||
}, [end, increment]);
|
||||
|
||||
const startCount = () => {
|
||||
setCount(0);
|
||||
};
|
||||
|
||||
return (
|
||||
<span ref={countRef}>
|
||||
<span>{Math.round(count)}</span>
|
||||
</span>
|
||||
);
|
||||
}
|
31
components/elements/CounterUp.js
Normal file
31
components/elements/CounterUp.js
Normal file
@ -0,0 +1,31 @@
|
||||
'use client'
|
||||
import { useEffect, useState } from 'react'
|
||||
import Counter from './Counter'
|
||||
|
||||
export default function CounterUp({ count }) {
|
||||
const [inViewport, setInViewport] = useState(false)
|
||||
|
||||
const handleScroll = () => {
|
||||
const elements = document.getElementsByClassName('odometer')
|
||||
if (elements.length > 0) {
|
||||
const element = elements[0]
|
||||
const rect = element.getBoundingClientRect()
|
||||
const isInViewport = rect.top >= 0 && rect.bottom <= window.innerHeight
|
||||
if (isInViewport && !inViewport) {
|
||||
setInViewport(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
window.addEventListener('scroll', handleScroll)
|
||||
return () => {
|
||||
window.removeEventListener('scroll', handleScroll)
|
||||
}
|
||||
}, [])
|
||||
return (
|
||||
<>
|
||||
<span className="odometer">{inViewport && <Counter end={count} duration={20} />}</span>
|
||||
</>
|
||||
)
|
||||
}
|
26
components/elements/CounterUpDirectly.js
Normal file
26
components/elements/CounterUpDirectly.js
Normal file
@ -0,0 +1,26 @@
|
||||
"use client";
|
||||
import { useEffect, useState } from "react";
|
||||
import Counter from "./Counter";
|
||||
|
||||
export default function CounterUp({ count }) {
|
||||
const [isMounted, setIsMounted] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
const observer = new IntersectionObserver(
|
||||
([entry]) => {
|
||||
if (entry.isIntersecting) {
|
||||
setIsMounted(true);
|
||||
observer.disconnect();
|
||||
}
|
||||
},
|
||||
{ threshold: 0.1 }
|
||||
);
|
||||
|
||||
const element = document.querySelector(".odometer");
|
||||
if (element) observer.observe(element);
|
||||
|
||||
return () => observer.disconnect();
|
||||
}, []);
|
||||
|
||||
return <span className="odometer">{isMounted && <Counter end={count} duration={20} />}</span>;
|
||||
}
|
11
components/elements/DataBg.js
Normal file
11
components/elements/DataBg.js
Normal file
@ -0,0 +1,11 @@
|
||||
import { useEffect } from 'react'
|
||||
|
||||
export default function DataBg() {
|
||||
useEffect(() => {
|
||||
const elements = document.querySelectorAll('[data-background]')
|
||||
|
||||
elements.forEach((element) => {
|
||||
element.style.backgroundImage = `url(${element.getAttribute('data-background')})`
|
||||
})
|
||||
}, [])
|
||||
}
|
16
components/elements/PopupVideo.js
Normal file
16
components/elements/PopupVideo.js
Normal file
@ -0,0 +1,16 @@
|
||||
'use client'
|
||||
import { useState } from 'react'
|
||||
import ModalVideo from 'react-modal-video'
|
||||
import "../../node_modules/react-modal-video/css/modal-video.css"
|
||||
|
||||
export default function VideoPopup({ style }) {
|
||||
const [isOpen, setOpen] = useState(false)
|
||||
return (
|
||||
<>
|
||||
{!style && <a onClick={() => setOpen(true)} className="play-btn popup-video"><i className="fas fa-play" /></a>}
|
||||
{style === 1 && <a onClick={() => setOpen(true)} className="popup-youtube bnt-play"><img src="/assets/img/home6/play.svg" /></a>}
|
||||
{style === 2 && <a onClick={() => setOpen(true)} className="btn-play"><img src="/assets/img/home8/play.svg" /></a>}
|
||||
<ModalVideo channel='youtube' autoplay isOpen={isOpen} videoId="SZEflIVnhH8" onClose={() => setOpen(false)} />
|
||||
</>
|
||||
)
|
||||
}
|
13
components/elements/Preloader.js
Normal file
13
components/elements/Preloader.js
Normal file
@ -0,0 +1,13 @@
|
||||
export default function Preloader() {
|
||||
return (
|
||||
<>
|
||||
<div id="preloader">
|
||||
<div id="loader" className="loader">
|
||||
<div className="loader-container">
|
||||
<div className="loader-icon"><img src="/assets/img/logo/preloader.png" alt="Preloader" /></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
}
|
133
components/elements/PricingTable.js
Normal file
133
components/elements/PricingTable.js
Normal file
@ -0,0 +1,133 @@
|
||||
'use client'
|
||||
import Link from 'next/link'
|
||||
import { useState } from 'react'
|
||||
|
||||
export default function PricingTable() {
|
||||
const [isToggled, setToggled] = useState(false)
|
||||
const handleToggle = () => setToggled(!isToggled)
|
||||
return (
|
||||
<>
|
||||
<div className={isToggled ? "pricing__tab selected" : " pricing__tab"}>
|
||||
<span className={`pricing__tab-btn monthly_tab_title ${isToggled ? "active" : ""}`}>Monthly</span>
|
||||
<span className={`pricing__tab-switcher ${isToggled ? "active" : ""}`} onClick={handleToggle} />
|
||||
<span className={`pricing__tab-btn annual_tab_title ${isToggled ? "active" : ""}`}>Yearly</span>
|
||||
</div>
|
||||
<div className="row justify-content-center">
|
||||
<div className="col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="pricing__box">
|
||||
<div className="pricing__head">
|
||||
<h5 className="title">Basic Plan</h5>
|
||||
</div>
|
||||
<div className={`pricing__price ${isToggled ? "change-subs-duration" : ""}`}>
|
||||
<h2 className="price monthly_price"><strong>$</strong> 15.00 <span>/ Month</span></h2>
|
||||
<h2 className="price annual_price"><strong>$</strong> 149.00 <span>/ Month</span></h2>
|
||||
</div>
|
||||
<div className="pricing__list">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
5000 User Activities
|
||||
</li>
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
Unlimited Access
|
||||
</li>
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
No Hidden Charge
|
||||
</li>
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
03 Time Updates
|
||||
</li>
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
Figma Source File
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="pricing__btn">
|
||||
<Link href="#" className="btn">Get this plan Now</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="pricing__box">
|
||||
<div className="pricing__head">
|
||||
<h5 className="title">Standard Plan</h5>
|
||||
</div>
|
||||
<div className={`pricing__price ${isToggled ? "change-subs-duration" : ""}`}>
|
||||
<h2 className="price monthly_price"><strong>$</strong> 29.00 <span>/ Month</span></h2>
|
||||
<h2 className="price annual_price"><strong>$</strong> 229.00 <span>/ Month</span></h2>
|
||||
</div>
|
||||
<div className="pricing__list">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
5000 User Activities
|
||||
</li>
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
Unlimited Access
|
||||
</li>
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
No Hidden Charge
|
||||
</li>
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
03 Time Updates
|
||||
</li>
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
Figma Source File
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="pricing__btn">
|
||||
<Link href="#" className="btn">Get this plan Now</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-4 col-md-6 col-sm-8">
|
||||
<div className="pricing__box">
|
||||
<div className="pricing__head">
|
||||
<h5 className="title">Corporate Plan</h5>
|
||||
</div>
|
||||
<div className={`pricing__price ${isToggled ? "change-subs-duration" : ""}`}>
|
||||
<h2 className="price monthly_price"><strong>$</strong> 89.00 <span>/ Month</span></h2>
|
||||
<h2 className="price annual_price"><strong>$</strong> 889.00 <span>/ Month</span></h2>
|
||||
</div>
|
||||
<div className="pricing__list">
|
||||
<ul className="list-wrap">
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
5000 User Activities
|
||||
</li>
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
Unlimited Access
|
||||
</li>
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
No Hidden Charge
|
||||
</li>
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
03 Time Updates
|
||||
</li>
|
||||
<li>
|
||||
<img src="/assets/img/icon/check_icon.svg" alt="" />
|
||||
Figma Source File
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="pricing__btn">
|
||||
<Link href="#" className="btn">Get this plan Now</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
}
|
26
components/elements/RangeSliderInput.js
Normal file
26
components/elements/RangeSliderInput.js
Normal file
@ -0,0 +1,26 @@
|
||||
'use client'
|
||||
import { useState } from 'react'
|
||||
|
||||
export default function RangeSliderInput() {
|
||||
const [value, setValue] = useState(25000)
|
||||
|
||||
const handleChange = e => {
|
||||
setValue(Math.ceil(e.target.value / 5) * 5)
|
||||
}
|
||||
return (
|
||||
<>
|
||||
<div className="range-top">
|
||||
<p>Limits of balance:</p>
|
||||
<span>$<strong id="rangeValue">{value}</strong></span>
|
||||
</div>
|
||||
<input
|
||||
type="range"
|
||||
min="1"
|
||||
max="50000"
|
||||
value={value}
|
||||
className="range"
|
||||
onChange={e => handleChange(e)}
|
||||
/>
|
||||
</ >
|
||||
)
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user