A modern, fully responsive website for the Polkadot Hub CodeCamp featuring workshop materials, coding challenges, and comprehensive educational resources.
- π Workshop Topics: 5 comprehensive workshops with detailed slide presentations
- π» Coding Challenges: 4 hands-on challenges with GitHub integration
- β FAQ Section: Comprehensive Q&A for participants
- π¨ Modern UI: Polkadot-branded design with smooth animations
- π± Fully Responsive: Works perfectly on mobile, tablet, and desktop
- β‘ Fast Performance: Built with Next.js 14 for optimal speed
- π¬ Smooth Animations: Powered by Framer Motion
- Node.js 18.x or higher
- npm or yarn package manager
- Clone the repository
git clone https://github.com/your-username/polkadot-codecamp.git
cd polkadot-codecamp- Install dependencies
npm install
# or
yarn install- Run development server
npm run dev
# or
yarn dev- Open your browser
Navigate to http://localhost:3000
polkadot-codecamp/
βββ app/ # Next.js app directory
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ page.tsx # Home page
β βββ workshops/
β βββ [slug]/
β βββ page.tsx # Dynamic workshop pages
β
βββ components/ # React components
β βββ layout/ # Layout components
β β βββ Header.tsx
β β βββ Footer.tsx
β βββ sections/ # Page sections
β β βββ Hero.tsx
β β βββ Workshops.tsx
β β βββ Challenges.tsx
β β βββ FAQ.tsx
β βββ ui/ # Reusable UI components
β β βββ Button.tsx
β β βββ Card.tsx
β β βββ Container.tsx
β β βββ Section.tsx
β βββ MarkdownViewer.tsx # Markdown slide renderer
β
βββ data/ # Data and content
β βββ workshops.ts # Workshop metadata
β βββ challenges.ts # Challenge metadata
β βββ faq.ts # FAQ content
β
βββ slides/ # Workshop slide content (Markdown)
β βββ introduction-to-polkadot-hub.md
β βββ build-on-polkadot-narratives.md
β βββ evm-tooling-development-setup.md
β βββ cross-chain-defi-primitives.md
β βββ polkadot-grant-ecosystem.md
β
βββ public/ # Static assets
β βββ images/
β
βββ tailwind.config.ts # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
βββ next.config.mjs # Next.js configuration
βββ package.json # Dependencies and scripts
The website features 5 comprehensive workshops:
- Understanding the Polkadot ecosystem
- Developer resources and guidance
- Hackathon process walkthrough
- Presenter: Tin
- Current Polkadot narratives
- Leveraging community resources
- Growth strategies for projects
- Presenter: Tin
- Dual VM architecture
- Development environment setup
- Foundry, Hardhat, and Scaffold DOT
- Presenter: Tin
- XCM (Cross-Consensus Messaging)
- Hyperbridge SDK integration
- Building cross-chain applications
- Presenter: Tin (with Bifrost Team)
- Understanding grant programs
- Writing winning proposals
- Application process and tips
- Presenter: Tin
Difficulty: Advanced
PIC: Dustin
Build cross-chain smart contracts using XCM and Hyperbridge. Deploy on Polkadot testnet.
Difficulty: Intermediate
PIC: Dustin
Create AI-powered applications using the polkadot-agent-kit. Deploy a functional agent.
Difficulty: Beginner
PIC: Scaffold-DOT Team
Build a complete full-stack Polkadot application using Scaffold-DOT framework.
Difficulty: Advanced
PIC: Dustin
Implement a Uniswap V2 style DEX with smart contracts and UI on Polkadot.
- Framework: Next.js 14 (React 18)
- Language: TypeScript
- Styling: Tailwind CSS
- Animations: Framer Motion
- Markdown: react-markdown, gray-matter
- Icons: Lucide React
- Deployment: Vercel (recommended)
# Development server with hot reload
npm run dev
# Build for production
npm run build
# Start production server
npm run start
# Run ESLint
npm run lint- Create slide content
Create a new markdown file in /slides/:
touch slides/my-new-workshop.md- Add workshop data
Edit /data/workshops.ts:
export const workshops: Workshop[] = [
// ... existing workshops
{
id: "6",
title: "My New Workshop",
description: "Description of the workshop",
pic: "Presenter Name",
deliverables: "What participants will learn",
slug: "my-new-workshop",
slidePath: "/slides/my-new-workshop.md",
},
];- Workshop page is auto-generated!
The dynamic route at /workshops/[slug] will automatically create a page for your new workshop.
Edit /data/challenges.ts:
export const challenges: Challenge[] = [
// ... existing challenges
{
id: "5",
title: "My New Challenge",
description: "Challenge description",
pic: "Your Name",
deliverables: "What needs to be built",
githubUrl: "https://github.com/your-repo",
difficulty: "Intermediate",
},
];The website uses Polkadot's brand colors defined in tailwind.config.ts:
colors: {
polkadot: {
pink: "#E6007A", // Primary brand color
purple: "#552BBF", // Secondary color
cyan: "#00B2FF", // Accent color
dark: "#0D0D0D", // Background
darker: "#000000", // Darker background
},
}The website is fully responsive with breakpoints:
- Mobile: < 768px
- Tablet: 768px - 1024px
- Desktop: > 1024px
All components use Tailwind's responsive utilities (sm:, md:, lg:, xl:) for optimal display on all devices.
Powered by Framer Motion, the website features:
- Scroll animations: Elements fade in as you scroll
- Hover effects: Interactive cards and buttons
- Page transitions: Smooth navigation between pages
- Stagger animations: Sequential element animations
- Push to GitHub
git add .
git commit -m "Initial commit"
git push origin main- Connect to Vercel
- Visit vercel.com
- Import your GitHub repository
- Vercel auto-detects Next.js configuration
- Deploy!
- Custom Domain (Optional)
Add your custom domain in Vercel project settings.
The site can also be deployed to:
- Netlify: Connect GitHub repo, configure build settings
- AWS Amplify: Use the Amplify Console
- Cloudflare Pages: Connect repository and deploy
- Self-hosted: Run
npm run build && npm run start
Create .env.local for any environment-specific configuration:
# Example (currently none required)
NEXT_PUBLIC_API_URL=https://api.example.comEdit next.config.mjs for Next.js-specific settings:
/** @type {import('next').NextConfig} */
const nextConfig = {
// Add your configuration here
};
export default nextConfig;Workshop slides are written in Markdown with frontmatter:
---
title: Workshop Title
presenter: Presenter Name
duration: 60 minutes
---
# Workshop Title
Your content here...
## Section
More content...- Headings (h1-h6)
- Lists (ordered and unordered)
- Code blocks with syntax highlighting
- Links and images
- Tables
- Blockquotes
- Horizontal rules
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style
- Write clear commit messages
- Add comments for complex logic
- Test your changes locally
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- Polkadot: For the amazing ecosystem
- OpenGuild: For education resources and inspiration (learn.openguild.wtf)
- Base Batches: For design inspiration (basebatches.xyz)
- Web3 Foundation: For grant support
- All Workshop Presenters: For their expertise and time
- Discord: Join our Discord server
- Email: support@polkadotcodec amp.com
- GitHub Issues: Report bugs or request features
- Forum: Polkadot Forum
- Polkadot Network: https://polkadot.network
- Polkadot Wiki: https://wiki.polkadot.network
- Polkadot Education Hub: https://learn.openguild.wtf
- Substrate Documentation: https://docs.substrate.io
- Polkadot.js: https://polkadot.js.org
- β Website Design Complete
- β Workshop Slides Created
- β Challenge Content Ready
- β Responsive Design Implemented
- β Animations Added
- π§ Video Integration (Pending workshop recordings)
- π§ User Testing
- π Launch: TBD
- Explore Workshops: Browse all 5 workshops on the home page
- Read Slides: Click any workshop to view detailed slides
- Take Challenges: Pick a challenge that matches your skill level
- Join Community: Connect with other participants
- Ask Questions: Use the FAQ or reach out for help
- Workshop slides are available for download
- Challenge repositories include starter code
- Join Discord for real-time help
- Check FAQ for common questions
- Video integration for workshop recordings
- Interactive slide presentations
- User progress tracking
- Certificate generation
- Community showcase
- Live chat support
We'd love to hear from you! Please share:
- What you liked
- What could be improved
- Feature requests
- Bug reports
- General suggestions
Built with β€οΈ for the Polkadot Community
Empowering developers to build the decentralized future