SEO performance, remove fading effect and messenger

This commit is contained in:
Moris Zen
2018-09-12 15:16:28 +02:00
parent 313ea8b03c
commit 83663ea5c0
7 changed files with 256 additions and 301 deletions

View File

@@ -25,9 +25,7 @@
"prismjs": "^1.15.0",
"react-headroom": "^2.2.2",
"react-helmet": "^5.2.0",
"react-messenger-customer-chat": "^0.6.2",
"react-responsive-mixin": "^0.4.0",
"react-reveal": "^1.2.2",
"react-typed": "^1.0.9",
"serve": "^10.0.0",
"slideout": "^1.0.1",

View File

@@ -5,7 +5,6 @@ import Helmet from 'react-helmet'
import Header from '../components/Header'
import Footer from '../components/Footer'
import SideMenu from '../components/SideMenu'
import MessengerCustomerChat from 'react-messenger-customer-chat'
require('typeface-montserrat')
require('typeface-pt-serif')
@@ -20,11 +19,6 @@ const Layout = ({ children, data }) => (
<Helmet
link={[{ rel: 'shortcut icon', type: 'image/png', href: `${favicon32}` }]}
/>
<MessengerCustomerChat
pageId="715686642152482"
appId="1896398823783343"
htmlRef="layout"
/>
<main className="side-panel panel">
<Header />
{children()}

View File

@@ -2,7 +2,6 @@ import React from 'react'
import SectionIntro from '../components/SectionIntro'
import PageIntro from '../components/PageIntro'
import Fade from 'react-reveal/Fade'
import Card from '../components/Card'
import SEO from '../components/SEO'
@@ -15,7 +14,12 @@ import PageTransition from 'gatsby-plugin-page-transitions'
const ContactPage = () => (
<PageTransition>
<SEO siteTitle="Saburly - Contact Us" siteDescription="We are always on a lookout for exciting challenges. Feel free to contact us if you want to start something great or just have any questions" siteImage={ContactImage} siteUrl="https://saburly.com/contact" />
<SEO
siteTitle="Saburly - Contact Us"
siteDescription="We are always on a lookout for exciting challenges. Feel free to contact us if you want to start something great or just have any questions"
siteImage={ContactImage}
siteUrl="https://saburly.com/contact"
/>
<PageIntro
tiltImage
headline="Let's connect"
@@ -27,136 +31,130 @@ const ContactPage = () => (
<section className="my-20 container mx-auto w-full md:flex w-full">
<div className="p-2">
<Fade left>
<Card team teamMember={Stockholm} title="OFFICE IN STOCKHOLM">
<div className="xsm:flex text-left justify-around text-black text-base p-4">
<div className="py-2">
<h4 className="text-black">Adress</h4>
<p className="text-black-light font-serif">
Saburly AB <br />
Vretenvägen 13 <br />
171 54 Solna <br />
Sweden <br />
</p>
</div>
<div className="py-2">
<h4 className="text-black">Contact</h4>
<p className="font-serif text-black-light">
Phone:{' '}
<a
className="saburly-color hover:text-purple-light no-underline"
href="tel:+46760477717"
>
+46760477717
</a>
<br />
E-mail:{' '}
<a
className="saburly-color hover:text-purple-light no-underline"
href="mailto:sweden@saburly.com"
>
sweden@saburly.com
</a>{' '}
</p>
</div>
<Card team teamMember={Stockholm} title="OFFICE IN STOCKHOLM">
<div className="xsm:flex text-left justify-around text-black text-base p-4">
<div className="py-2">
<h4 className="text-black">Adress</h4>
<p className="text-black-light font-serif">
Saburly AB <br />
Vretenvägen 13 <br />
171 54 Solna <br />
Sweden <br />
</p>
</div>
</Card>
</Fade>
<div className="py-2">
<h4 className="text-black">Contact</h4>
<p className="font-serif text-black-light">
Phone:{' '}
<a
className="saburly-color hover:text-purple-light no-underline"
href="tel:+46760477717"
>
+46760477717
</a>
<br />
E-mail:{' '}
<a
className="saburly-color hover:text-purple-light no-underline"
href="mailto:sweden@saburly.com"
>
sweden@saburly.com
</a>{' '}
</p>
</div>
</div>
</Card>
</div>
<div className="p-2">
<Fade right>
<Card team teamMember={Sarajevo} title="OFFICE IN SARAJEVO">
<div className="xsm:flex text-left justify-around text-base p-4">
<div className="py-2">
<h4 className="text-black">Adress</h4>
<p className="font-serif text-black-light">
Saburly d.o.o <br />
Hakije Turajlica 2 <br />
71 000 Sarajevo <br />
Bosnia & Herzegovina <br />
</p>
</div>
<div className="py-2">
<h4 className="text-black">Contact</h4>
<p className="font-serif text-black-light">
Phone:{' '}
<a
className="saburly-color hover:text-purple-light no-underline"
href="tel:+38761909238"
>
+38761909238
</a>{' '}
<br />
E-mail:{' '}
<a
className="saburly-color hover:text-purple-light no-underline"
href="mailto:bosnia@saburly.com"
>
bosnia@saburly.com
</a>{' '}
</p>
</div>
<Card team teamMember={Sarajevo} title="OFFICE IN SARAJEVO">
<div className="xsm:flex text-left justify-around text-base p-4">
<div className="py-2">
<h4 className="text-black">Adress</h4>
<p className="font-serif text-black-light">
Saburly d.o.o <br />
Hakije Turajlica 2 <br />
71 000 Sarajevo <br />
Bosnia & Herzegovina <br />
</p>
</div>
</Card>
</Fade>
<div className="py-2">
<h4 className="text-black">Contact</h4>
<p className="font-serif text-black-light">
Phone:{' '}
<a
className="saburly-color hover:text-purple-light no-underline"
href="tel:+38761909238"
>
+38761909238
</a>{' '}
<br />
E-mail:{' '}
<a
className="saburly-color hover:text-purple-light no-underline"
href="mailto:bosnia@saburly.com"
>
bosnia@saburly.com
</a>{' '}
</p>
</div>
</div>
</Card>
</div>
</section>
<div className="bg-saburly-lighter p-8">
<Fade>
<section className="container lg:flex justify-between mx-auto">
<form
action="https://formspree.io/info@saburly.com"
className="w-full max-w-sm mx-auto pt-16 p-6"
method="POST"
>
<SectionIntro headline="We'd love to hear from you" />
<div className="md:flex flex-wrap">
<input
className="appearance-none bg-transparent border-contact block w-full typed-cursor py-2"
id="grid-first-name"
type="text"
placeholder="Name"
name="name"
required
/>
<section className="container lg:flex justify-between mx-auto">
<form
action="https://formspree.io/info@saburly.com"
className="w-full max-w-sm mx-auto pt-16 p-6"
method="POST"
>
<SectionIntro headline="We'd love to hear from you" />
<div className="md:flex flex-wrap">
<input
className="appearance-none bg-transparent border-contact block w-full typed-cursor py-2"
id="grid-first-name"
type="text"
placeholder="Name"
name="name"
required
/>
<input
className="appearance-none bg-transparent border-contact block w-full typed-cursor py-2"
id="grid-first-name"
type="text"
placeholder="Email"
name="_replyto"
required
/>
<input
className="appearance-none bg-transparent border-contact block w-full typed-cursor py-2"
id="grid-first-name"
type="text"
placeholder="Email"
name="_replyto"
required
/>
<textarea
className="appearance-none bg-transparent border-contact block w-full typed-cursor py-2 border-grey-light"
id="grid-last-name"
type="text"
name="message"
placeholder="Message"
required
/>
</div>
<button
className="mt-4 w-full shadow bg-teal hover:bg-teal-light text-white py-2 px-4 rounded"
value="Send"
type="submit"
>
SEND
</button>
</form>
<div>
<img
src={FormImage}
alt="Contact Form Image"
className="p-10 w-full text-center block md:max-w-lg mx-auto"
<textarea
className="appearance-none bg-transparent border-contact block w-full typed-cursor py-2 border-grey-light"
id="grid-last-name"
type="text"
name="message"
placeholder="Message"
required
/>
</div>
</section>
</Fade>
<button
className="mt-4 w-full shadow bg-teal hover:bg-teal-light text-white py-2 px-4 rounded"
value="Send"
type="submit"
>
SEND
</button>
</form>
<div>
<img
src={FormImage}
alt="Contact Form Image"
className="p-10 w-full text-center block md:max-w-lg mx-auto"
/>
</div>
</section>
</div>
</PageTransition>
)

View File

@@ -9,7 +9,6 @@ import PageIntro from '../components/PageIntro'
import InfoBox from '../components/InfoBox'
import Technologies from '../components/Technologies'
import Typed from 'react-typed'
import Fade from 'react-reveal/Fade'
import SEO from '../components/SEO'
import ImgIntro from '../images/web-development-company.svg'
@@ -30,7 +29,12 @@ import PageTransition from 'gatsby-plugin-page-transitions'
const IndexPage = ({ ...props }) => (
<PageTransition>
<SEO siteTitle="Saburly - App Development & Mobile Design agency that makes you stand out" siteDescription="We're in the business of solving real-world problems with digital solutions. Our mission is to make you stand out with the help of modern technologies" siteImage={ImgIntro} siteUrl="https://saburly.com" />
<SEO
siteTitle="Saburly - App Development & Mobile Design agency that makes you stand out"
siteDescription="We're in the business of solving real-world problems with digital solutions. Our mission is to make you stand out with the help of modern technologies"
siteImage={ImgIntro}
siteUrl="https://saburly.com"
/>
<PageIntro
text="We're in the business of solving real-world problems with digital solutions. Our mission is to make you stand out and gain competitive advantages with the help of modern technologies."
image={ImgIntro}
@@ -51,164 +55,146 @@ const IndexPage = ({ ...props }) => (
<main>
<section className="container mx-auto max-w-lg text-center mt-16 p-4">
<Fade>
<SectionIntro
classes="my-10"
h2Classes="text-2xl sm:text-5xl"
headline="Because beautiful code makes our heart pound"
text="What gets us going is our passion for cutting edge technologies and incredible user experiences. We transform frustrations into features and headaches into highlights. And we do it all through our UX design and development process, by coupling form and function to develop world-class websites and apps for businesses of all sizes and sectors."
/>
</Fade>
<SectionIntro
classes="my-10"
h2Classes="text-2xl sm:text-5xl"
headline="Because beautiful code makes our heart pound"
text="What gets us going is our passion for cutting edge technologies and incredible user experiences. We transform frustrations into features and headaches into highlights. And we do it all through our UX design and development process, by coupling form and function to develop world-class websites and apps for businesses of all sizes and sectors."
/>
</section>
<section className="relative">
<Fade>
<Service
classes="py-8"
h2Classes="text-2xl xsm:text-3xl font-medium saburly-color"
img={ImgDesign}
title="User Experience Design"
text="Our approach is simple: focus on how users might use the product in the best ways possible. We offer UX and UI design services for all screens and devices. The solutions are usually shaped through iterative processes of research, prototyping and testing."
/>
</Fade>
<Service
classes="py-8"
h2Classes="text-2xl xsm:text-3xl font-medium saburly-color"
img={ImgDesign}
title="User Experience Design"
text="Our approach is simple: focus on how users might use the product in the best ways possible. We offer UX and UI design services for all screens and devices. The solutions are usually shaped through iterative processes of research, prototyping and testing."
/>
<Fade>
<Service
reversed
classes="py-8"
h2Classes="text-2xl xsm:text-3xl font-medium saburly-color"
img={ImgFullstack}
title="Full-Stack Development"
text="We love modern web development. Our talented developers work with both client-side and server-side technologies are always up to speed with cutting edge trends. We deliver high-quality, maintainable code on time and know how to balance between cost, time and quality."
imgClasses=""
/>
</Fade>
<Service
reversed
classes="py-8"
h2Classes="text-2xl xsm:text-3xl font-medium saburly-color"
img={ImgFullstack}
title="Full-Stack Development"
text="We love modern web development. Our talented developers work with both client-side and server-side technologies are always up to speed with cutting edge trends. We deliver high-quality, maintainable code on time and know how to balance between cost, time and quality."
imgClasses=""
/>
<Fade>
<Service
img={ImgMobile}
classes="py-8"
h2Classes="text-2xl xsm:text-3xl font-medium saburly-color"
imgClasses="max-h-sm"
title="Mobile App Development"
text="We have what it takes to develop competitive iOS and Android applications using both native languages and hybrid solutions. Solutions for iOS are built with Swift & Objective-C and Android solutions are built with Java & Kotlin. We love using technologies like React Native to build cross-platform native apps."
/>
</Fade>
<Service
img={ImgMobile}
classes="py-8"
h2Classes="text-2xl xsm:text-3xl font-medium saburly-color"
imgClasses="max-h-sm"
title="Mobile App Development"
text="We have what it takes to develop competitive iOS and Android applications using both native languages and hybrid solutions. Solutions for iOS are built with Swift & Objective-C and Android solutions are built with Java & Kotlin. We love using technologies like React Native to build cross-platform native apps."
/>
</section>
<section className="bg-saburly-lighter text-center p-4 my-12">
<div className="my-8 py-8 container mx-auto max-w-lg">
<Fade>
<SectionIntro
h2Classes="text-2xl md:text-5xl"
headline="You'll be in great company"
text="By thinking big, designing smart and developing fast, we're helping organizations of various sizes bring life to ideas. We're now eager to hear what challenges you have for us."
/>
<div className="p-4 sm:flex flex-wrap items-center max-w-full justify-around">
<div className="sm:w-1/2 md:w-1/6 p-2">
<img
src={LogoColounge}
className="opacity-50 hover:opacity-100 client-logo p-2"
alt="Colounge Logo"
/>
</div>
<div className="sm:w-1/2 md:w-1/6 p-2">
<img
src={LogoRicoh}
className="opacity-50 hover:opacity-100 client-logo p-2"
alt="Ricoh Logo"
/>
</div>
<div className="sm:w-1/3 md:w-1/6 p-2">
<img
src={LogoCoor}
className="opacity-50 hover:opacity-100 client-logo p-2"
alt="Coor Logo"
/>
</div>
<div className="sm:w-1/3 md:w-1/6 p-2">
<img
src={LogoKinnarps}
className="opacity-50 hover:opacity-100 client-logo p-2"
alt="Kinnarps Logo"
/>
</div>
<div className="sm:w-1/3 md:w-1/6 p-2">
<img
src={LogoIMCG}
className="opacity-50 hover:opacity-100 client-logo p-2"
alt="IMCG Logo"
/>
</div>
<div className="sm:w-1/3 md:w-1/6 p-2">
<img
src={LogoHyrma}
className="opacity-50 hover:opacity-100 client-logo p-2"
alt="Hyrma Logo"
/>
</div>
<SectionIntro
h2Classes="text-2xl md:text-5xl"
headline="You'll be in great company"
text="By thinking big, designing smart and developing fast, we're helping organizations of various sizes bring life to ideas. We're now eager to hear what challenges you have for us."
/>
<div className="p-4 sm:flex flex-wrap items-center max-w-full justify-around">
<div className="sm:w-1/2 md:w-1/6 p-2">
<img
src={LogoColounge}
className="opacity-50 hover:opacity-100 client-logo p-2"
alt="Colounge Logo"
/>
</div>
</Fade>
<div className="sm:w-1/2 md:w-1/6 p-2">
<img
src={LogoRicoh}
className="opacity-50 hover:opacity-100 client-logo p-2"
alt="Ricoh Logo"
/>
</div>
<div className="sm:w-1/3 md:w-1/6 p-2">
<img
src={LogoCoor}
className="opacity-50 hover:opacity-100 client-logo p-2"
alt="Coor Logo"
/>
</div>
<div className="sm:w-1/3 md:w-1/6 p-2">
<img
src={LogoKinnarps}
className="opacity-50 hover:opacity-100 client-logo p-2"
alt="Kinnarps Logo"
/>
</div>
<div className="sm:w-1/3 md:w-1/6 p-2">
<img
src={LogoIMCG}
className="opacity-50 hover:opacity-100 client-logo p-2"
alt="IMCG Logo"
/>
</div>
<div className="sm:w-1/3 md:w-1/6 p-2">
<img
src={LogoHyrma}
className="opacity-50 hover:opacity-100 client-logo p-2"
alt="Hyrma Logo"
/>
</div>
</div>
<Fade>
<div className="text-center lg:flex justify-center">
<Button
standard
text="More About What We Do"
url="/services"
classes="rounded-full m-2 hover:shadow-md text-grey-darker hover:shadow"
/>
<Button
filled
text="Let's Get In Touch"
url="/contact"
classes="text-white shadow hover:shadow-md rounded-full m-2 font-light bg-teal hover:bg-teal-dark"
/>
</div>
</Fade>
<div className="text-center lg:flex justify-center">
<Button
standard
text="More About What We Do"
url="/services"
classes="rounded-full m-2 hover:shadow-md text-grey-darker hover:shadow"
/>
<Button
filled
text="Let's Get In Touch"
url="/contact"
classes="text-white shadow hover:shadow-md rounded-full m-2 font-light bg-teal hover:bg-teal-dark"
/>
</div>
</div>
</section>
<section className="text-center p-4 relative">
<Fade>
<SectionIntro
h2Classes="py-8 text-2xl md:text-5xl"
headline="Sometimes we have fun & publish"
/>
</Fade>
<Fade>
<div className="container mx-auto w-full md:flex md:flex-wrap items-stretch w-full">
{props.data.allWordpressPost.edges.map(({ node }) => (
<div key={node.id} className="md:w-1/2 p-2">
<Link
to={`blog/${node.slug}`}
className="pointer no-underline saburly-transition hover:opacity-50"
>
<Card
url={`blog/${node.slug}`}
title={node.title}
date={node.date}
excerpt={node.excerpt}
image={
node.featured_media
? node.featured_media.localFile.childImageSharp
.resolutions
: undefined
}
/>
</Link>
</div>
))}
</div>
</Fade>
<Fade>
<Button
standard
text="More Posts"
url="/blog"
classes="mt-2 mb-8 hover:shadow-md rounded-full text-grey-darker"
/>
</Fade>
<SectionIntro
h2Classes="py-8 text-2xl md:text-5xl"
headline="Sometimes we have fun & publish"
/>
<div className="container mx-auto w-full md:flex md:flex-wrap items-stretch w-full">
{props.data.allWordpressPost.edges.map(({ node }) => (
<div key={node.id} className="md:w-1/2 p-2">
<Link
to={`blog/${node.slug}`}
className="pointer no-underline saburly-transition hover:opacity-50"
>
<Card
url={`blog/${node.slug}`}
title={node.title}
date={node.date}
excerpt={node.excerpt}
image={
node.featured_media
? node.featured_media.localFile.childImageSharp
.resolutions
: undefined
}
/>
</Link>
</div>
))}
</div>
<Button
standard
text="More Posts"
url="/blog"
classes="mt-2 mb-8 hover:shadow-md rounded-full text-grey-darker"
/>
</section>
</main>
</PageTransition>

View File

@@ -5,7 +5,6 @@ import PageIntro from '../components/PageIntro'
import SectionIntro from '../components/SectionIntro'
import WorkStyle from '../components/WorkStyle'
import Technologies from '../components/Technologies'
import Fade from 'react-reveal/Fade'
import SEO from '../components/SEO'
import IntroImage from '../images/agile-practitioners.jpg'
@@ -31,7 +30,6 @@ const ServicesPage = () => (
imgClasses="-mb-12 border-white rounded-lg"
/>
<section className="px-4 py-16">
<Fade>
<div className="container mx-auto">
<div className="lg:flex">
<img
@@ -85,12 +83,10 @@ const ServicesPage = () => (
</SectionIntro>
</div>
</div>
</Fade>
</section>
<section className="bg-saburly relative bg-saburly-lighter px-4 p-16 ">
<div className="container mx-auto">
<Fade>
<div className="lg:flex">
<div>
<SectionIntro
@@ -143,8 +139,6 @@ const ServicesPage = () => (
alt="Fullstack Web Development Agency"
/>
</div>
</Fade>
<Fade>
<div className="p-8 my-4 bg-white border-bottom-saburly">
<h3 className={headerClasses}>Emerging Technologies</h3>
<p className={textClasses}>
@@ -161,11 +155,9 @@ const ServicesPage = () => (
</p>
<Technologies />
</div>
</Fade>
</div>
</section>
<Fade>
<div className="px-4 py-16 bg-saburly-fadeout">
<div className="container mx-auto xl:flex justify-center items-center">
<SectionIntro
@@ -179,7 +171,6 @@ const ServicesPage = () => (
</div>
<WorkStyle />
</div>
</Fade>
</PageTransition>
)

View File

@@ -6,7 +6,6 @@ import SEO from '../components/SEO'
require('prismjs/themes/prism-tomorrow.css')
import PageTransition from 'gatsby-plugin-page-transitions'
import MessengerCustomerChat from 'react-messenger-customer-chat'
import favicon32 from '../images/favicon32.png'
class PostDefault extends Component {
@@ -20,7 +19,13 @@ class PostDefault extends Component {
const { data } = this.props
return (
<PageTransition>
<SEO postSEO siteTitle={data.wordpressPost.title} siteDescription="We are always on a lookout for exciting challenges. Feel free to contact us if you want to start something great or just have any questions" siteImage={data.wordpressPost.featured_media.source_url} siteUrl={`https://www.saburly.com/blog/${data.wordpressPost.slug}`} />
<SEO
postSEO
siteTitle={data.wordpressPost.title}
siteDescription="We are always on a lookout for exciting challenges. Feel free to contact us if you want to start something great or just have any questions"
siteImage={data.wordpressPost.featured_media.source_url}
siteUrl={`https://www.saburly.com/blog/${data.wordpressPost.slug}`}
/>
<Helmet
link={[
{ rel: 'shortcut icon', type: 'image/png', href: `${favicon32}` },
@@ -42,11 +47,6 @@ class PostDefault extends Component {
__html: data.wordpressPost.content,
}}
/>
<MessengerCustomerChat
pageId="715686642152482"
appId="1896398823783343"
htmlRef="blogpost"
/>
</main>
</PageTransition>
)

View File

@@ -8327,12 +8327,6 @@ react-lifecycles-compat@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
react-messenger-customer-chat@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/react-messenger-customer-chat/-/react-messenger-customer-chat-0.6.2.tgz#39462c90a951b06fa01d33e37547c47ca715aa63"
dependencies:
prop-types "^15.6.0"
react-proxy@^3.0.0-alpha.0:
version "3.0.0-alpha.1"
resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz#4400426bcfa80caa6724c7755695315209fa4b07"
@@ -8347,12 +8341,6 @@ react-responsive-mixin@^0.4.0:
enquire.js "^2.1.1"
json2mq "^0.2.0"
react-reveal@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/react-reveal/-/react-reveal-1.2.2.tgz#f47fbc44debc4c185ae2163a215a9e822c7adfef"
dependencies:
prop-types "^15.5.10"
react-router-dom@^4.1.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-4.3.1.tgz#4c2619fc24c4fa87c9fd18f4fb4a43fe63fbd5c6"