'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 IcoLock({ className }: { className?: string }) { return } function IcoDoc({ className }: { className?: string }) { return } function IcoArrow({ className }: { className?: string }) { return } function IcoTerminal({ className }: { className?: string }) { return } function IcoEye({ className }: { className?: string }) { return } function IcoPin({ className }: { className?: string }) { return } function IcoGithub({ className }: { className?: string }) { return ( ) } // ─── Mini UI Previews ────────────────────────────────────────────────────────── 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 t = setInterval(() => setActiveRow(p => (p + 1) % members.length), 2000) return () => clearInterval(t) }, [members.length]) return (
CNC Upgrade
Network rack
{members}
12
hackerspace management
Track who is in your space, what they owe, what needs doing, and where to find the WiFi password.
What it does
{feature.description}
Setup
{item.step}
{item.description}
Not running a space? Read the{' '} hackerspace research and games →