import Link, { LinkProps } from "../components/Link"; import { styled, keyframes, darkTheme } from "../lib/styles/stitches.config"; const ColorfulLink = ({ lightColor, darkColor, css, ...rest }: LinkProps & { lightColor: string; darkColor: string; }) => { return ( ); }; const H1 = styled("h1", { margin: "0 0 0.5em -1px", // misaligned left margin, super nitpicky fontSize: "1.8em", fontWeight: 500, lineHeight: 1.1, color: "$text", "@medium": { fontSize: "1.6em", }, }); const H2 = styled("h2", { margin: "0.5em 0 0.5em -1px", // misaligned left margin, super nitpicky fontSize: "1.35em", fontWeight: 400, lineHeight: 1.4, color: "$text", "@medium": { fontSize: "1.25em", }, }); const Paragraph = styled("p", { margin: "0.85em 0", lineHeight: 1.7, color: "$text", "&:last-of-type": { marginBottom: 0, }, "@medium": { fontSize: "0.95em", lineHeight: 1.825, }, }); const Wave = styled("span", { display: "inline-block", marginLeft: "0.1em", fontSize: "1.2em", "@media (prefers-reduced-motion: no-preference)": { animation: `${keyframes({ "0%": { transform: "rotate(0deg)" }, "5%": { transform: "rotate(14deg)" }, "10%": { transform: "rotate(-8deg)" }, "15%": { transform: "rotate(14deg)" }, "20%": { transform: "rotate(-4deg)" }, "25%": { transform: "rotate(10deg)" }, "30%": { transform: "rotate(0deg)" }, // pause for ~9 out of 10 seconds "100%": { transform: "rotate(0deg)" }, })} 5s ease 1s infinite`, transformOrigin: "65% 80%", willChange: "transform", }, }); const Sup = styled("sup", { margin: "0 0.15em", fontSize: "0.65em", }); const PGPKey = styled("code", { marginLeft: "0.15em", wordSpacing: "-0.4em", }); const Quiet = styled("span", { color: "$mediumLight", }); const EasterEgg = styled(ColorfulLink, { // rotated 🪄 emoji on hover "&:hover": { cursor: `url("data:image/svg+xml;utf8,🪄") 5 5, auto`, }, }); const Index = () => ( <>

Hi there! I'm Jake. 👋

I'm a frontend web developer based in{" "} Boston .

I specialize in{" "} React {" "} and{" "} vanilla JavaScript {" "} to make nifty{" "} Jamstack sites {" "} with dynamic{" "} Node.js {" "} services. But I still know my way around less buzzwordy stacks like{" "} LAMP , too. Whenever possible, I also apply my experience in{" "} application security ,{" "} serverless stacks , and{" "} DevOps automation . I fell in love with{" "} frontend web design {" "} and{" "} backend programming {" "} back when my only source of income was{" "} the Tooth Fairy . I've improved a bit since then, I think? 🤷 Over the years, some of my side projects{" "} have {" "} been {" "} featured {" "} by {" "} various {" "} media {" "} outlets . You can find more of my work on{" "} GitHub {" "} and{" "} LinkedIn . I'm always available to connect over{" "} email {" "} 🔐 2B0C 9CF2 51E6 9A39 ,{" "} Twitter , or{" "} SMS {" "} as well! ); export default Index;