From b6e50c0950d389020f0173a122ad3f8dbc3faa75 Mon Sep 17 00:00:00 2001
From: Moheeb Zara
Date: Tue, 28 Jul 2026 23:18:50 -0700
Subject: [PATCH] Add talk to resources, public-site nav, and homepage link
- Resources: 7th project card linking the 'Hacking Your Hackerspace' talk
(hack.build), with a PlayIcon; bump the section count to 07.
- Sidebar: NavLink now supports external targets; add a 'Public Site' section
linking the homepage and the public resources page.
- Login: a back-to-homepage link.
---
app/(resources)/resources/page.tsx | 13 ++++++++-
app/login/page.tsx | 5 ++++
components/app-sidebar.tsx | 42 ++++++++++++++++++++----------
components/resources/icons.tsx | 9 +++++++
4 files changed, 54 insertions(+), 15 deletions(-)
diff --git a/app/(resources)/resources/page.tsx b/app/(resources)/resources/page.tsx
index 75ca01f..27b37d9 100644
--- a/app/(resources)/resources/page.tsx
+++ b/app/(resources)/resources/page.tsx
@@ -8,6 +8,7 @@ import {
CubeIcon,
KeyIcon,
GridIcon,
+ PlayIcon,
} from '@/components/resources/icons'
import { AtlasLogo } from '@/components/resources/atlas-logo'
@@ -55,7 +56,7 @@ export default function ResourcesLandingPage() {
Projects
- 06 tools
+ 07 tools
@@ -115,6 +116,16 @@ export default function ResourcesLandingPage() {
featured
visual={
}
/>
+
+
}
+ />
diff --git a/app/login/page.tsx b/app/login/page.tsx
index c6f7b2f..158983e 100644
--- a/app/login/page.tsx
+++ b/app/login/page.tsx
@@ -176,6 +176,11 @@ export default function LoginPage() {
create or join a space โ
+
+
+ โ Back to homepage
+
+
diff --git a/components/app-sidebar.tsx b/components/app-sidebar.tsx
index ddb9b89..0b9f9fc 100644
--- a/components/app-sidebar.tsx
+++ b/components/app-sidebar.tsx
@@ -15,7 +15,7 @@ import {
MessageSquare, Users, CreditCard, BookUser, Download, LogOut,
Vote, ShieldAlert, ScrollText, LineChart, UserSearch,
MessagesSquare, SlidersHorizontal, ClipboardList, FileText, Award, BadgeCheck, GraduationCap, Hammer,
- ChevronDown, DoorClosed, CalendarCheck, Zap,
+ ChevronDown, DoorClosed, CalendarCheck, Zap, Home, Compass,
} from 'lucide-react'
interface NavLinkProps {
@@ -24,22 +24,19 @@ interface NavLinkProps {
icon: React.ElementType
badge?: number
active: boolean
+ external?: boolean
onClick?: () => void
}
-function NavLink({ href, label, icon: Icon, badge, active, onClick }: NavLinkProps) {
- return (
-
+function NavLink({ href, label, icon: Icon, badge, active, external, onClick }: NavLinkProps) {
+ const className = cn(
+ 'flex items-center justify-between mx-2 px-3 py-2 rounded-md text-sm transition-colors',
+ active
+ ? 'bg-[var(--sidebar-primary)]/15 text-[var(--sidebar-primary)]'
+ : 'text-[var(--sidebar-foreground)]/70 hover:bg-[var(--sidebar-accent)] hover:text-[var(--sidebar-foreground)]',
+ )
+ const inner = (
+ <>
{label}
@@ -49,6 +46,18 @@ function NavLink({ href, label, icon: Icon, badge, active, onClick }: NavLinkPro
{badge}
) : null}
+ >
+ )
+ if (external) {
+ return (
+
+ {inner}
+
+ )
+ }
+ return (
+
+ {inner}
)
}
@@ -222,6 +231,11 @@ export function AppSidebar({ member, roleName, taskBadge = 0, commsBadge = 0, pa
+
+
+
+
+
{showAdminSection && (
{isAdmin && }
diff --git a/components/resources/icons.tsx b/components/resources/icons.tsx
index ea2caee..27aae9c 100644
--- a/components/resources/icons.tsx
+++ b/components/resources/icons.tsx
@@ -114,3 +114,12 @@ export function PromptIcon(props: IconProps) {
)
}
+
+export function PlayIcon(props: IconProps) {
+ return (
+
+ )
+}