Feature: Contact Page (/contact)
Purpose
- Feature name: Contact page (
/contact)
- Why this feature exists: Provide safe, static contact paths without introducing a backend form.
Scope
In scope
- contact cards for LinkedIn, GitHub, and email
- fallbacks when no contact links are configured
Out of scope
- contact form handling or inbound data processing
- authentication or identity verification
NEXT_PUBLIC_LINKEDIN_URL or NEXT_PUBLIC_GITHUB_URL or NEXT_PUBLIC_CONTACT_EMAIL
Procedure / Content
Feature summary
- Feature name: Contact page (
/contact)
- Feature group: Core pages and reviewer journey
- Technical summary: Renders static contact cards based on configured public environment variables.
- Low-tech summary: A safe contact page that avoids forms and uses simple links.
Feature in action
- Where to see it working:
/contact in the deployed app or http://localhost:3000/contact during pnpm dev.
Confirmation Process
Manual
- Steps: Open
/contact, verify that configured contact cards appear.
- What to look for: Mailto links open a mail client, external links resolve correctly, and fallback text appears if nothing is set.
- Artifacts or reports to inspect: Optional E2E route coverage in CI.
Tests
- Contact links missing because env vars are unset.
- Mailto formatting incorrect due to invalid email values.
Long-term maintenance notes
- Keep contact endpoints current and remove stale links.
- Re-validate after changing environment variables.
- Next.js App Router
- React
- Tailwind CSS
Source code references (GitHub URLs)
ADRs
Runbooks
Additional internal references
External reference links
Validation / Expected outcomes
- Contact page renders with at least one configured contact method.
- No form or backend processing is required.
Failure modes / Troubleshooting
- No contact cards shown: set at least one public contact env var.
- Incorrect links: validate env values and redeploy.
References