-
Notifications
You must be signed in to change notification settings - Fork 260
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Feat(www): shuttle beta signup (#421)
* feat(www): add beta signup form * feat: add formspree endpoint * feat: remove socials footer from beta page * feat: add dummy text above sign up form * feat: placeholder gif * feat: align dummy text left * feat: remove gif, add text * feat: update beta page text * feat: update the rest of the site
- Loading branch information
Showing
13 changed files
with
348 additions
and
187 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
import { useRouter } from "next/router"; | ||
import SignupForm from "./SignupForm"; | ||
|
||
const BetaHero = () => { | ||
const { basePath } = useRouter(); | ||
return ( | ||
<div className="-mt-8 flex min-h-screen w-full flex-col justify-center dark:bg-dark-700"> | ||
<div className="mx-auto py-5 xl:px-12"> | ||
<div className="p-6 sm:py-5"> | ||
<div className="m-auto flex max-w-3xl flex-col gap-4 text-center sm:gap-10"> | ||
<div className="relative m-auto flex"> | ||
<img | ||
className="h-20 w-auto" | ||
src={`${basePath}/images/logo.png`} | ||
alt="Shuttle" | ||
/> | ||
<span className="absolute bottom-[-26px] right-[-5px] scale-[.8] rounded bg-brand-orange1 px-[10px] py-[2px] text-base font-bold text-slate-100 dark:text-dark-700"> | ||
BETA | ||
</span> | ||
</div> | ||
<SignupForm /> | ||
</div> | ||
</div> | ||
</div> | ||
</div> | ||
); | ||
}; | ||
|
||
export default BetaHero; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
import { useForm, ValidationError } from "@formspree/react"; | ||
import { | ||
CONTRIBUTING_URL, | ||
DISCORD_URL, | ||
FORMSPREE_ENDPOINT, | ||
GITHUB_URL, | ||
TWITTER_URL, | ||
} from "../lib/constants"; | ||
import ExternalLink from "./ExternalLink"; | ||
import Image from "next/image"; | ||
const links = [ | ||
{ name: "💻 contributing to shuttle", href: CONTRIBUTING_URL }, | ||
{ name: "⭐️ starring the repository", href: GITHUB_URL }, | ||
{ name: "👾 joining our discord community", href: DISCORD_URL }, | ||
{ name: "🐦 following us on twitter", href: TWITTER_URL }, | ||
]; | ||
export default function SignupForm() { | ||
const [state, handleSubmit] = useForm(FORMSPREE_ENDPOINT); | ||
|
||
if (state.succeeded) { | ||
return ( | ||
<div className="mb-4 lg:col-span-5"> | ||
<p className="mt-3 text-lg text-slate-500 dark:text-gray-300 sm:mt-4"> | ||
Thank you for registering your interest in the next iteration of | ||
shuttle. | ||
</p> | ||
<p className="text-lg text-slate-500 dark:text-gray-300"> | ||
If you are looking for a way to support shuttle in the meantime, you | ||
can do so by: | ||
</p> | ||
<div className="mt-3 flex flex-col"> | ||
{links.map((link) => ( | ||
<ExternalLink | ||
key={link.name} | ||
href={link.href} | ||
className="mt-3 text-lg text-slate-600 hover:text-slate-900 dark:text-gray-200 hover:dark:text-white" | ||
> | ||
{link.name} | ||
</ExternalLink> | ||
))} | ||
</div> | ||
</div> | ||
); | ||
} | ||
return ( | ||
<> | ||
<div className="mt-5"> | ||
<div className="mb-7 text-4xl font-bold dark:text-gray-200 sm:text-5xl md:text-6xl"> | ||
Build Backends. Fast. | ||
</div> | ||
<div className="mt-4 px-10 text-xl text-slate-500 dark:text-gray-300"> | ||
Sign up to our closed beta and get updated on the{" "} | ||
{ | ||
<ExternalLink | ||
key="shuttle-next" | ||
href="https://shuttle.rs/blog/2022/10/21/shuttle-beta" | ||
className="text-brand-orange1 hover:text-brand-orange2" | ||
> | ||
next iteration of shuttle | ||
</ExternalLink> | ||
} | ||
, a serverless backend framework with the fastest build, test and | ||
deploy times ever. | ||
</div> | ||
</div> | ||
<form onSubmit={handleSubmit} className="align-center flex flex-col"> | ||
<input | ||
id="email" | ||
type="email" | ||
name="email" | ||
placeholder={`[email protected]`} | ||
className="text-m mt-2 block w-full max-w-sm self-center rounded border border-gray-300 bg-slate-300 p-4 text-slate-700 hover:border-brand-orange1 focus:border-brand-orange1 focus:ring-brand-orange1 dark:border-gray-600 dark:bg-gray-500 dark:text-white dark:placeholder-gray-400 dark:focus:border-brand-orange1 dark:focus:ring-brand-orange1" | ||
/> | ||
<ValidationError prefix="Email" field="email" errors={state.errors} /> | ||
<button | ||
type="submit" | ||
className="mt-6 self-center rounded bg-brand-900 py-3 px-8 font-bold text-white transition hover:bg-brand-700" | ||
disabled={state.submitting} | ||
> | ||
Sign Up | ||
</button> | ||
</form> | ||
</> | ||
); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
import { | ||
faDiscord, | ||
faGithub, | ||
faTwitter, | ||
} from "@fortawesome/free-brands-svg-icons"; | ||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; | ||
import { DISCORD_URL, GITHUB_URL, TWITTER_URL } from "../lib/constants"; | ||
import ExternalLink from "./ExternalLink"; | ||
|
||
const communities = [ | ||
{ | ||
name: "Github", | ||
href: GITHUB_URL, | ||
icon: faGithub, | ||
}, | ||
{ | ||
name: "Discord", | ||
href: DISCORD_URL, | ||
icon: faDiscord, | ||
}, | ||
{ | ||
name: "Twitter", | ||
href: TWITTER_URL, | ||
icon: faTwitter, | ||
}, | ||
]; | ||
|
||
export default function Socials() { | ||
return ( | ||
<div className="mx-auto max-w-2xl py-20 px-4 text-center sm:py-28 sm:px-6 lg:px-8"> | ||
<h2 className="text-3xl font-extrabold tracking-tight dark:text-gray-200 sm:text-4xl"> | ||
Let's Build the Future of Backend Development Together | ||
</h2> | ||
|
||
<div className="mt-8 flex justify-center gap-3"> | ||
{communities.map((community, index) => ( | ||
<ExternalLink | ||
key={index} | ||
href={community.href} | ||
className="inline-block rounded border border-current py-3 px-5 text-base font-medium text-slate-600 hover:text-slate-900 dark:text-gray-200 hover:dark:text-white" | ||
> | ||
<FontAwesomeIcon | ||
className="-ml-1 mr-3 text-current transition" | ||
icon={community.icon} | ||
/> | ||
{community.name} | ||
</ExternalLink> | ||
))} | ||
</div> | ||
</div> | ||
); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,20 @@ | ||
export const APP_NAME = "shuttle"; | ||
|
||
export const SITE_TITLE = "Stateful Serverless for Rust"; | ||
export const SITE_TITLE = "Build Backends. Fast."; | ||
|
||
export const SITE_DESCRIPTION = | ||
"Shuttle is a web application platform that uses traits and annotations to configure your backend deployment - including databases."; | ||
"Stop worrying about the infrastructure. Focus on writing code, shuttle will do the rest."; | ||
|
||
export const SITE_URL = "https://shuttle.rs/"; | ||
|
||
export const TWITTER_HANDLE = "@shuttle_dev"; | ||
|
||
export const GA_MEASUREMENT_ID = process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID; | ||
export const FORMSPREE_ENDPOINT = process.env.NEXT_PUBLIC_FORMSPREE_ENDPOINT; | ||
|
||
export const GITHUB_URL = "https://github.com/shuttle-hq/shuttle"; | ||
export const DISCORD_URL = "https://discord.gg/shuttle"; | ||
export const TWITTER_URL = "https://twitter.com/shuttle_dev"; | ||
export const SHUTTLE_DOCS_URL = | ||
"https://docs.shuttle.rs/"; | ||
export const SHUTTLE_DOCS_URL = "https://docs.shuttle.rs/"; | ||
export const CONTRIBUTING_URL = | ||
"https://github.com/shuttle-hq/shuttle/blob/main/CONTRIBUTING.md"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
import React from "react"; | ||
|
||
import BetaHero from "../components/BetaHero"; | ||
|
||
export default function ShuttleNext() { | ||
return ( | ||
<> | ||
<BetaHero /> | ||
</> | ||
); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.