The official landing page for On-Chain Disc Golf - the future of disc golf powered by Bitcoin, Lightning Network, Cashu, and Nostr.
This is a Next.js-based landing page that serves as the primary entry point for On-Chain Disc Golf, educating users about the platform and driving them to the progressive web app at app.onchaindiscgolf.com.
- SEO Optimized: Comprehensive meta tags, Open Graph, Twitter Cards, and structured data
- PWA Ready: Web app manifest and icons for easy installation
- Performance Focused: Image optimization, compression, and caching strategies
- Responsive Design: Mobile-first design that works on all devices
- Modern Stack: Built with Next.js 16, React 19, and Tailwind CSS 4
- Framework: Next.js 16 (App Router)
- UI Library: React 19
- Styling: Tailwind CSS 4
- Animations: Framer Motion
- Icons: Lucide React
- Language: TypeScript
- Deployment: Vercel
- Node.js 20+ installed
- npm or yarn package manager
- Clone the repository:
git clone https://github.com/OnChainDiscGolf/website.git
cd website- Install dependencies:
npm install- Run the development server:
npm run dev- Open http://localhost:3000 in your browser
npm run dev- Start development servernpm run build- Build for productionnpm start- Start production servernpm run lint- Run ESLintnpm run lint:fix- Fix ESLint errors automaticallynpm run type-check- Check TypeScript types
├── public/ # Static assets
│ ├── manifest.json # PWA manifest
│ ├── robots.txt # Search engine crawler rules
│ ├── icon-192.png # PWA icon (192x192)
│ ├── icon-512.png # PWA icon (512x512)
│ └── og-image.png # Open Graph social sharing image
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── layout.tsx # Root layout with metadata
│ │ ├── page.tsx # Home page
│ │ ├── globals.css # Global styles
│ │ └── sitemap.ts # Dynamic sitemap
│ └── components/ # React components
│ ├── Hero.tsx
│ ├── Features.tsx
│ ├── InstallGuide.tsx
│ ├── LearnMore.tsx
│ ├── Nip05Teaser.tsx
│ └── Footer.tsx
└── ...config files
The landing page uses a custom design system with brand colors matched to the PWA:
- Brand Primary (Emerald):
#10b981- Primary CTAs and accents - Brand Secondary (Blue):
#3b82f6- Secondary accents - Brand Accent (Amber):
#f59e0b- Highlights - Brand Dark:
#0f172a- Background - Brand Surface:
#1e293b- Card backgrounds
Fonts:
- Sans-serif: Inter (body text)
- Heading: Outfit (headings)
This landing page is designed to drive users to the main PWA:
- Primary CTA: "Launch App" button →
app.onchaindiscgolf.com - QR Code: Desktop users can scan to open PWA on mobile
- Install Guide: Instructions for adding PWA to home screen
- URL Redirect:
/appredirects to the PWA
This project is configured for seamless deployment on Vercel:
- Push your changes to GitHub
- Import the repository in Vercel
- Vercel will automatically detect Next.js and deploy
Currently, no environment variables are required for the landing page. If you add analytics or other integrations, document them here.
- Sitemap: Auto-generated at
/sitemap.xml - Robots.txt: Located at
/robots.txt - Open Graph: Configured for rich social media previews
- Twitter Cards: Optimized for Twitter sharing
- Structured Data: JSON-LD for search engines
- ARIA labels on interactive elements
- Semantic HTML structure
- Keyboard navigation support
- Color contrast meets WCAG standards
- Alt text on all images
Security headers configured in vercel.json:
- X-Content-Type-Options: nosniff
- X-Frame-Options: DENY
- X-XSS-Protection: 1; mode=block
- Referrer-Policy: origin-when-cross-origin
- Permissions-Policy (camera, microphone, geolocation blocked)
© 2025 On-Chain Disc Golf. All rights reserved.
This is a public-facing landing page. For contribution guidelines, please contact the maintainers.
- Main PWA: app.onchaindiscgolf.com — GitHub
- Help Center: help.onchaindiscgolf.com — GitHub
- Website: onchaindiscgolf.com
- GitHub: OnChainDiscGolf
- Twitter: @OnChainDiscGolf
Built with ⚡ by the On-Chain Disc Golf team