A modern, responsive website for NayePankh Foundation built with Astro, Vue.js, and Tailwind CSS.
NayePankh Foundation is a student-led NGO dedicated to uplifting underprivileged communities through education, healthcare, and sustainable development. This website showcases our mission, impact, and ways to get involved.
Live Site: https://nayepankh.com
- Framework: Astro - Fast, static site generation with island architecture
- Components: Vue.js 3 - Interactive components for forms, modals, etc.
- Styling: Tailwind CSS - Utility-first CSS framework
- Language: TypeScript - Type-safe development
- Hosting: Hostinger with CDN
nayepankh/
βββ src/
β βββ pages/ # Auto-routed Astro pages
β β βββ index.astro # Home page
β β βββ about-us.astro # About page
β β βββ donate.astro # Donation page
β β βββ contact-us.astro # Contact page
β β βββ team.astro # Team page
β β βββ our-certificates.astro # Certificates page
β βββ layouts/ # Astro layout templates
β β βββ BaseLayout.astro # Main layout wrapper
β βββ components/ # Vue.js components
β β βββ Button.vue # Reusable button component
β β βββ Card.vue # Card component
β β βββ CTABlock.vue # Call-to-action section
β β βββ NavBar.vue # Navigation bar
β β βββ Footer.vue # Footer
β β βββ ContactForm.vue # Contact form
β βββ config/ # Configuration files
β β βββ design.ts # Design system tokens
β β βββ site.ts # Site configuration
β βββ data/ # Content data files (JSON/MDX)
β βββ assets/ # Images and static assets
β β βββ images/
β βββ styles/ # Global styles
βββ public/ # Static files (favicon, etc.)
βββ dist/ # Build output (generated)
βββ package.json
βββ astro.config.mjs
βββ tsconfig.json
βββ tailwind.config.js
βββ postcss.config.js
βββ README.md
- Node.js >= 18.0.0
- npm or yarn package manager
-
Clone or navigate to the project:
cd nayepankh -
Install dependencies:
npm install
-
Start the development server:
npm run dev
Open http://localhost:3000 in your browser.
-
Build for production:
npm run build
The static site will be generated in the
dist/folder. -
Preview production build:
npm run preview
| Command | Purpose |
|---|---|
npm run dev |
Start development server with hot reload |
npm run build |
Build optimized static site for production |
npm run preview |
Preview production build locally |
npm run astro |
Run Astro CLI commands |
npm run lint |
Lint TypeScript and Vue files |
npm run format |
Format code with Prettier |
All design tokens are centralized in src/config/design.ts:
- Colors: Primary (Sky Blue), Secondary (Pink), Accent (Amber), Neutral palette
- Typography: Heading hierarchy (H1-H6), body text, captions
- Spacing: 8px base unit scale
- Shadows: xs to 2xl elevation levels
- Transitions: Fast (150ms), Base (200ms), Slow (300ms)
Tailwind is configured with:
- Custom color extensions
- Typography plugin for content styling
- Forms plugin for form controls
- Responsive breakpoints: xs, sm, md, lg, xl, 2xl
- Hero section with CTA buttons
- About section (mission, vision, values)
- Impact metrics display
- Key initiatives cards
- Founder message
- Join/Donate CTA
- Organization story
- Focus areas (Education, Healthcare, Community, Youth)
- Why support section
- Join/Donate CTA
- Donation amount selector
- Payment method options
- Impact visualization (what your donation does)
- Recurring donation option
- Contact form with validation
- Contact information (email, phone, address)
- Social media links
- Map integration placeholder
- Leadership team profiles
- Join our team CTA
- Government registration info
- 80G certification details
- 12A certification details
- Verification instructions
Reusable button component with variants and sizes.
Props:
variant: 'primary' | 'secondary' | 'outline' | 'ghost'size: 'sm' | 'md' | 'lg'disabled: boolean
Flexible card component for displaying content with image, icon, and badge.
Props:
title: stringdescription: stringimage: string (optional)icon: string (optional)badge: string (optional)meta: Record<string, string | number> (optional)
Call-to-action section with headline, subheadline, and buttons.
Props:
headline: stringsubheadline: string (optional)buttons: Array of button config
Form with validation for contact inquiries.
Features:
- Email validation
- Success/error messages
- Accessible form fields
- GDPR consent checkbox
-
Build the project:
npm run build
-
Upload
dist/folder to Hostinger:- Use File Manager or SFTP
- Set public root to the
dist/folder
-
Configure DNS:
- Point domain to Hostinger nameservers
- Enable HTTP/3 in Hostinger control panel
-
Enable CDN (optional):
- Activate Hostinger CDN for faster delivery
- Configure caching headers
Copy .env.example to .env.local and configure:
PUBLIC_SITE_URL=https://nayepankh.com
PUBLIC_GOOGLE_ANALYTICS_ID=
PUBLIC_HOTJAR_ID=- Blog/Impact Stories section
- Dark mode support
- Email notification backend for contact form
- Payment processor integration (Razorpay/PayPal)
- Newsletter signup
- Analytics dashboard
- Donation impact tracking
- Testimonials carousel
- Multi-language support
For questions, issues, or suggestions:
- Email: contact@nayepankh.com
- Phone: +91-8318500748
- Address: Kanpur, UP, India
This project is created for NayePankh Foundation. All rights reserved.
Built with β€οΈ for NayePankh Foundation