Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -61,5 +61,8 @@ RUN set -eu; \
} > /srv/build-info.json

EXPOSE 3000
RUN mkdir -p /config/caddy /data/caddy \
&& chown -R caddy:caddy /config /data \
&& setcap -r /usr/bin/caddy
USER caddy
ENTRYPOINT ["caddy", "run", "--config=/etc/caddy/Caddyfile"]
47 changes: 33 additions & 14 deletions app/components/Navbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import Image from "next/image"
import Link from "next/link"
import { usePathname } from "next/navigation"
import DevshLogo from "@/public/devsh_transparent_1920.png"
import DevshLogo from "@/public/brand/devsh-logo-glow.png"
import { ReactNode, useEffect, useState } from "react"
import { motion } from "framer-motion"

Expand All @@ -30,10 +30,25 @@ function DropdownIcon() {
)
}

function NavbarLink({children, href, onClick}: {children: ReactNode, href: string, onClick?: () => void}) {
function NavbarLink({children, href, active, onClick}: {children: ReactNode, href: string, active?: boolean, onClick?: () => void}) {
return (
<li className="text-sm text-neutral-400 transition-colors duration-200 hover:text-white">
<Link className="block rounded px-2 py-1" href={href} onClick={onClick}>{children}</Link>
<li>
<Link
className={`group relative block rounded-md px-2.5 py-1.5 text-sm transition-colors duration-200 ${
active ? "text-white" : "text-neutral-400 hover:text-white"
}`}
href={href}
aria-current={active ? "page" : undefined}
onClick={onClick}
>
{children}
<span
aria-hidden="true"
className={`absolute inset-x-2 bottom-0 h-px origin-center bg-[var(--brand-accent-bright)] transition-transform duration-200 ${
active ? "scale-x-100" : "scale-x-0 group-hover:scale-x-100"
}`}
/>
</Link>
</li>
)
}
Expand All @@ -46,20 +61,24 @@ export default function Navbar() {
setIsDropdownEnabled(false)
}, [pathname])

const isActive = (href: string) => (
href === "/" ? pathname === "/" : pathname === href
)

return (
<nav className="sticky top-0 z-40 border-b border-white/10 bg-black/90 backdrop-blur">
<nav className="sticky top-0 z-40 border-b border-[rgba(125,205,185,0.18)] bg-black/90 shadow-[0_1rem_3rem_rgba(0,0,0,0.35)] backdrop-blur-xl">
<div className="site-container flex min-h-16 flex-row items-center justify-between gap-4 py-3">
<Link className="flex min-w-0 flex-row items-center gap-2.5" href="/">
<Image src={DevshLogo} alt="Company Logo" className="h-8 w-8 flex-shrink-0"/>
<span className="min-w-0 truncate text-base font-semibold leading-none sm:text-xl">
<span className="">DevSH Graphics Programming</span>
<Link className="group flex min-w-0 flex-row items-center gap-3" href="/">
<Image src={DevshLogo} alt="Company Logo" className="h-9 w-9 flex-shrink-0 object-contain"/>
<span className="min-w-0 truncate bg-[linear-gradient(135deg,#fff_20%,#f4fffb_72%,var(--brand-accent-bright)_100%)] bg-clip-text text-base font-semibold leading-none text-transparent transition-opacity duration-200 group-hover:opacity-95 sm:text-xl">
DevSH Graphics Programming
</span>
</Link>
<ul className="hidden shrink-0 flex-row items-center gap-1 md:flex">
{links.map((link, index) => <NavbarLink href={link.url} key={index}>{link.name}</NavbarLink>)}
<ul className="hidden shrink-0 flex-row items-center gap-1.5 md:flex">
{links.map((link, index) => <NavbarLink href={link.url} active={isActive(link.url)} key={index}>{link.name}</NavbarLink>)}
</ul>
<button
className={`flex h-10 w-10 flex-shrink-0 items-center justify-center rounded border border-white/10 text-neutral-200 transition-transform duration-300 md:hidden ${isDropdownEnabled ? "rotate-180" : "rotate-0"}`}
className={`flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-md border border-[rgba(125,205,185,0.25)] bg-white/[0.02] text-neutral-200 transition duration-300 hover:border-[rgba(125,205,185,0.5)] hover:text-white md:hidden ${isDropdownEnabled ? "rotate-180" : "rotate-0"}`}
aria-label="Toggle navigation"
aria-expanded={isDropdownEnabled}
onClick={() => setIsDropdownEnabled(!isDropdownEnabled)}
Expand All @@ -73,9 +92,9 @@ export default function Navbar() {
animate={{ opacity: 1 }}
exit={{ opacity: 0 }}
transition={{ duration: 0.5 }}
className="flex w-full flex-col gap-1 border-b border-white/10 bg-black px-5 py-4 text-center md:hidden"
className="flex w-full flex-col gap-1 border-b border-[rgba(125,205,185,0.18)] bg-black/95 px-5 py-4 text-center backdrop-blur-xl md:hidden"
>
{links.map((link, index) => <NavbarLink href={link.url} key={index}>{link.name}</NavbarLink>)}
{links.map((link, index) => <NavbarLink href={link.url} active={isActive(link.url)} key={index}>{link.name}</NavbarLink>)}
</motion.ul>
)}
</nav>
Expand Down
4 changes: 3 additions & 1 deletion app/data/aboutContent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
*/

export const aboutParagraphs = [
"DevSH Graphics Programming Sp. z O.O is a specialized collective of graphics engineers and mathematicians focused entirely on GPU architecture, rendering, and High-Performance Computing. We are not a traditional software house. We don't build CRUD apps, and we don't do repetitive contract work. Instead, our consultants integrate directly alongside our clients' engineering teams to architect renderers, simulations, and compilers at the frontier of what hardware can do.",
"DevSH Graphics Programming Sp. z O.O is a specialized collective of graphics engineers and mathematicians focused entirely on GPU architecture, rendering, and High-Performance Computing. We are not a traditional software house.",

"We don't build CRUD apps, and we don't do repetitive contract work. Instead, our consultants integrate directly alongside our clients' engineering teams to architect renderers, simulations, and compilers at the frontier of what hardware can do.",

"DevSH has been a remote-first company since its inception, while building unparalleled credibility amongst GPU engineers thanks to how we innovate on every project, resulting in a constant backlog of applications to our company even when it involves a pay cut. We capture top-tier engineering talent, including PhDs, ex-IHV driver developers, and AAA rendering architects, who wouldn't even consider applying for a FAANG/MANGO job posting if it required relocation. Becoming our client lets you tap this pool of otherwise unreachable talent, sending a signal to everyone else that real engineering gets done at your company.",

Expand Down
8 changes: 8 additions & 0 deletions app/data/pricing-rates.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,14 @@
{
"role": "CEO & Principal Engineer",
"rate": 220
},
{
"role": "Corporate training",
"rate": 669,
"note": [
"Includes preparation for up to 4 participants.",
"Travel and accommodation are billed separately for on-site sessions."
]
}
]
}
Binary file added app/fonts/FuturaPT/pdf/FuturaCyrillicBook.ttf
Binary file not shown.
Binary file added app/fonts/FuturaPT/pdf/FuturaCyrillicDemi.ttf
Binary file not shown.
Binary file added app/fonts/FuturaPT/pdf/FuturaCyrillicMedium.ttf
Binary file not shown.
2 changes: 1 addition & 1 deletion app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,7 @@ body {
--service-column-gap: clamp(3rem, 6vw, 5rem);
--service-axis-offset: clamp(1.5rem, 3vw, 2.5rem);
position: relative;
margin-top: clamp(1.5rem, 3.5vw, 3rem);
margin-top: clamp(2.75rem, 5vw, 4.25rem);
border-top: 1px solid rgba(255, 255, 255, 0.12);
border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
Expand Down
Binary file added public/brand/devsh-logo-glow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading