Skip to content

Latest commit

Β 

History

292 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TechTank TO β€” Website Redesign

A Next.js (App Router) implementation of techtankto.com, Toronto's volunteer-run tech community website. The redesign moves away from a flat "link-tree" layout toward a conversion-oriented onboarding hub that funnels visitors into specific roles β€” attendee, speaker, host, sponsor, or organizer.

Specs live in docs/prd/; application code lives in app/. The initial UI scaffold was generated from the PRD via v0 β€” original prompt and generation.

House standards (process, writing, nextjs, components, data, testing, performance, accessibility, seo, git) are supplied by the harness-skills library, vendored at .agents/skills/ (.claude/skills/ symlinks to it) and loaded automatically by any skill-aware coding agent.

Stack

Getting started

Requirements: Node.js 20+ and pnpm 10.

pnpm install
pnpm dev

Then open http://localhost:3000.

Environment Variables

Some features require environment variables to function correctly. Copy .env.example to .env.local and populate the values:

Variable What it is
LUMA_CALENDAR_ID The Luma calendar ID (e.g. cal-...) used to fetch upcoming and past events on the /events page.

See scripts/instagram/README.md for Instagram-specific environment variables.

Scripts

Command What it does
pnpm dev Start the dev server with Turbopack
pnpm build Production build
pnpm start Serve the production build
pnpm lint Run Next.js' linter
pnpm format Format the repo with oxfmt
pnpm format:check Check formatting without writing

Project structure

The tree below doubles as a route map β€” each directory under app/ is a route, annotated with its purpose.

.
β”œβ”€β”€ app/                            # Next.js App Router routes
β”‚   β”œβ”€β”€ layout.tsx                  # Root layout (header, footer, fonts, SEO)
β”‚   β”œβ”€β”€ page.tsx                    # /                    Social-proof-driven home
β”‚   β”œβ”€β”€ about/                      # /about               Values & community manifesto
β”‚   β”œβ”€β”€ events/                     # /events              Upcoming (Luma) + past event timeline
β”‚   β”œβ”€β”€ get-involved/               # /get-involved        Onboarding hub (shared layout)
β”‚   β”‚   β”œβ”€β”€ speak-or-facilitate/    #   /speak-or-facilitate  Speaker/facilitator intake
β”‚   β”‚   β”œβ”€β”€ host/                   #   /host              Host intake
β”‚   β”‚   β”œβ”€β”€ sponsor/                #   /sponsor           Sponsor intake
β”‚   β”‚   β”œβ”€β”€ organizer/              #   /organizer         Organizer intake
β”‚   β”‚   └── donate/                 #   /donate            (via next.config rewrites) Interac e-transfer donation info
β”‚   β”œβ”€β”€ legal/                      # /legal               Legal documents (shared layout)
β”‚   β”‚   β”œβ”€β”€ terms-of-service/       #   /terms-of-service
β”‚   β”‚   β”œβ”€β”€ privacy-policy/         #   /privacy-policy
β”‚   β”‚   └── code-of-conduct/        #   /code-of-conduct
β”‚   β”œβ”€β”€ resources/                  # /resources
β”‚   β”‚   β”œβ”€β”€ media-kit/              #   /resources/media-kit     Brand assets + fast facts
β”‚   β”‚   └── design-system/          #   /resources/design-system  Brand guidelines β€” design tokens & component reference
β”‚   └── globals.css
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ layout/                     # Header, Footer
β”‚   └── ui/                         # Reusable UI (buttons, cards, sections, etc.)
β”œβ”€β”€ constants/                      # Structured data (events, sponsors, social links)
β”œβ”€β”€ docs/prd/                       # Product requirements pipeline (01-brief β†’ 06-plan)
β”œβ”€β”€ .agents/skills/                 # Vendored house-standard skills (copied, portable)
β”œβ”€β”€ .claude/skills/                 # Same skills (symlinked to .agents/skills/)
β”œβ”€β”€ public/                         # Static assets (images, downloads, social media dumps)
β”œβ”€β”€ next.config.ts
β”œβ”€β”€ vercel.json                     # Vercel deployment config (noindex header)
└── tsconfig.json

See docs/prd/03-solution.md for the full route map and shared-layout conventions, and the rest of docs/prd/ for product intent, design tokens, architecture, and the delivery plan.

Deployment

The site deploys to Vercel. Search engine indexing is enabled site-wide via the robots metadata in app/layout.tsx.

Contributing

See CONTRIBUTING.md for contribution guidelines, team onboarding, and the roadmap.

Contributors

This redesign was built by TechTank TO volunteers who gave their time to a community they believe in. Thank you to everyone who shipped it πŸ’™

And a heartfelt thank you to everyone who built and stewarded earlier versions of techtankto.com. This redesign stands on the foundation, inspiration, and lessons you left behind.

License

MIT β€” see the file for details.

About

🐠 TechTank Toronto - Modern Website Redesign

Resources

Contributing

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages