Add /contact shortcut to the contact form; reorder + relabel bento

- /contact redirects straight to the home contact form; product CTAs that
  pointed at the broken /about#contact now use /contact.
- Bento: custom e-commerce (Occupy Wallets) top-left, Smirk Wallet top-right,
  Wownerogue + Neroswap in the middle row; 'art brand' -> 'artist'.
This commit is contained in:
jwinterm
2026-06-06 14:09:36 -04:00
parent a11f436502
commit 62a68f5fd9
4 changed files with 11 additions and 5 deletions
+6
View File
@@ -0,0 +1,6 @@
import { redirect } from "next/navigation";
// /contact is a shortcut straight to the contact form on the home page.
export default function ContactPage() {
redirect("/#contact");
}
@@ -97,7 +97,7 @@ export default function CustomWebsitesPage() {
</div>
<div className="text-center">
<Link href="/about#contact">
<Link href="/contact">
<Button size="lg">Start a Project</Button>
</Link>
</div>
+1 -1
View File
@@ -110,7 +110,7 @@ export default function WebshopsPage() {
</div>
<div className="text-center">
<Link href="/about#contact">
<Link href="/contact">
<Button size="lg">Get in Touch</Button>
</Link>
<p className="text-sm text-muted-foreground mt-6">
@@ -46,10 +46,10 @@ type Item = {
// Order matters: spans 2,1,1,2,2,1 tile a 3-column grid with no gaps while alternating the
// wide side row to row for a balanced bento look.
const items: Item[] = [
{ name: "Wownerogue", tagline: "Provably-fair roguelike, synced to crypto block times.", color: "orange", span: 2, image: "/images/products/privacy-labs.png", alt: "Screenshot of the Wownerogue roguelike dungeon-crawler", href: "/products/wownerogue" },
{ name: "Neroswap", tagline: "DEX & CEX orderbook aggregator.", color: "yellow", span: 1, image: "/images/products/neroswap.png", alt: "Screenshot of the Neroswap orderbook aggregator", href: "https://neroswap.com", external: true },
{ name: "Occupy Wallets", tagline: "Custom e-commerce storefront we build and host for an artist.", color: "emerald", span: 2, image: "/images/products/occupy-wallets.png", alt: "Occupy Wallets online store and gallery", href: "https://occupywallets.art", external: true },
{ name: "Smirk Wallet", tagline: "Non-custodial browser wallet with social tipping.", color: "amber", span: 1, image: "/images/products/smirk-wallet.png", alt: "Smirk Wallet browser extension", href: "https://smirk.cash", external: true },
{ name: "Occupy Wallets", tagline: "Custom e-commerce storefront we build and host for an art brand.", color: "emerald", span: 2, image: "/images/products/occupy-wallets.png", alt: "Occupy Wallets online store and gallery", href: "https://occupywallets.art", external: true },
{ name: "Neroswap", tagline: "DEX & CEX orderbook aggregator.", color: "yellow", span: 1, image: "/images/products/neroswap.png", alt: "Screenshot of the Neroswap orderbook aggregator", href: "https://neroswap.com", external: true },
{ name: "Wownerogue", tagline: "Provably-fair roguelike, synced to crypto block times.", color: "orange", span: 2, image: "/images/products/privacy-labs.png", alt: "Screenshot of the Wownerogue roguelike dungeon-crawler", href: "/products/wownerogue" },
{ name: "Bauhaus Echo", tagline: "Visual memory puzzle game.", color: "blue", span: 2, image: "/images/products/bauhaus-echo.png", alt: "Bauhaus Echo visual memory puzzle game", href: "/products/bauhaus-echo" },
{ name: "Vegan IQ", tagline: "Plant-based trivia game.", color: "green", span: 1, image: "/images/products/vegan-iq.png", alt: "Vegan IQ plant-based trivia game", href: "/products/vegan-iq" },
];