diff --git a/app/(landing)/layout.tsx b/app/(landing)/layout.tsx new file mode 100644 index 0000000..b76986f --- /dev/null +++ b/app/(landing)/layout.tsx @@ -0,0 +1,14 @@ +import type { Metadata } from 'next' + +export const metadata: Metadata = { + title: 'hackerspace.sh — Operational Software for Makerspaces', + description: 'Member management, dues tracking, task coordination, and project visibility. Built by people who have actually run these spaces.', +} + +export default function LandingLayout({ + children, +}: { + children: React.ReactNode +}) { + return children +} diff --git a/app/(landing)/page.tsx b/app/(landing)/page.tsx new file mode 100644 index 0000000..d3b4bac --- /dev/null +++ b/app/(landing)/page.tsx @@ -0,0 +1,502 @@ +'use client' + +import { useState, useEffect } from 'react' +import Link from 'next/link' + +// Icons +function IcoUsers({ className }: { className?: string }) { + return +} +function IcoTask({ className }: { className?: string }) { + return +} +function IcoFolder({ className }: { className?: string }) { + return +} +function IcoCreditCard({ className }: { className?: string }) { + return +} +function IcoKey({ className }: { className?: string }) { + return +} +function IcoChart({ className }: { className?: string }) { + return +} +function IcoArrow({ className }: { className?: string }) { + return +} +function IcoTerminal({ className }: { className?: string }) { + return +} + +// Mini UI Components with animations +function MiniMemberTable() { + const [activeRow, setActiveRow] = useState(0) + const members = [ + { name: 'Alex Chen', tier: 'PLUS', status: 'current' }, + { name: 'Jordan Mills', tier: 'BASIC', status: 'current' }, + { name: 'Sam Rivera', tier: 'PLUS', status: 'late' }, + { name: 'Casey Wong', tier: 'BASIC', status: 'current' }, + ] + + useEffect(() => { + const interval = setInterval(() => { + setActiveRow((prev) => (prev + 1) % members.length) + }, 2000) + return () => clearInterval(interval) + }, [members.length]) + + return ( +
CNC Upgrade
+Placeholder
+{count}
+12
++ Operational Software for Makerspaces +
++ Member management, dues tracking, task coordination, and project visibility. Built by people who have actually run these spaces. +
+{stat.value}
+{stat.label}
+Features
++ No bloated enterprise features. No learning curve. Just tools that match how hackerspaces actually operate. +
++ {feature.description} +
+How it works
+{item.step}
+{item.description}
++ "We went from a shared Google Sheet that nobody updated to actually knowing who was current on dues. Game changer for our monthly board meetings." ++
Marcus Webb
+Treasurer, FreeGeek Chicago
++ Free for spaces under 25 members. No credit card required. Set up in minutes. +
+