Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌱 Wellspring

A modern, fully-responsive NGO website prototype β€” built to show, not just tell.

React Vite Tailwind CSS React Router License


πŸ“– Project Overview

Wellspring is a polished, 5-page website prototype built for NGOs and nonprofit organizations. It was designed as a client-pitch template β€” a way to demonstrate, in a single running demo, exactly what a modern nonprofit web presence can look and feel like: donation flows, volunteer sign-ups, campaign tracking, and a transparent "About" story β€” all wrapped in a clean, accessible UI.

The problem it solves: Most NGOs either have outdated, static websites or no online donation/volunteer infrastructure at all. Wellspring provides a realistic, ready-to-demo front-end that developers and agencies can use as a starting point or sales asset β€” without needing a backend to show real functionality.

The entire app runs client-side only. A custom useLocalStorage hook and a simulated mockApiCall utility handle "persistence" for donations, volunteer applications, and contact messages β€” meaning the whole experience feels real, with zero server setup required.


✨ Key Features

  • 🏠 Home Page β€” animated impact counters, hero section, core pillars, and story previews
  • πŸ“œ About Page β€” mission/vision split, organizational timeline, team grid, and fund transparency bars
  • 🎯 Campaigns Page β€” filterable project grid with a donation modal that updates funding progress live
  • πŸ™‹ Get Involved Page β€” a 3-step validated volunteer application form, an openings accordion, and masonry-style testimonials
  • πŸ’³ Contact & Donate Page β€” validated contact form, location/map placeholder, and a one-time/monthly donation checkout with a mock confirmation screen
  • πŸ’Ύ Mock Backend β€” simulated async API calls + localStorage persistence, so donations, applications, and messages "save" realistically in the browser
  • πŸ“± Fully Responsive β€” built mobile-first with Tailwind's utility classes
  • 🎨 Easily Re-skinnable β€” swap colors, fonts, and copy via config files to reuse for any client pitch

πŸ› οΈ Tech Stack & Tools

Category Technology
Frontend Library React 18
Build Tool Vite
Styling Tailwind CSS (custom design tokens)
Routing React Router
Icons Lucide React
State/Persistence Custom useLocalStorage hook + mock async API layer
Images Unsplash (free-to-use, via direct URLs)

πŸ“ Project Structure

wellspring/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/       # Reusable UI components (navbar, cards, modals, etc.)
β”‚   β”œβ”€β”€ pages/             # Route-level pages (Home, About, Campaigns, GetInvolved, Contact)
β”‚   β”œβ”€β”€ hooks/              # Custom hooks (e.g. useLocalStorage)
β”‚   β”œβ”€β”€ data/                # Mock data (mockData.js) β€” campaigns, team, testimonials
β”‚   β”œβ”€β”€ utils/                # Helper functions (mockApiCall, formatters, etc.)
β”‚   └── main.jsx               # App entry point
β”œβ”€β”€ index.html               # HTML entry template
β”œβ”€β”€ tailwind.config.js        # Custom design tokens (colors, fonts, spacing)
β”œβ”€β”€ postcss.config.js         # PostCSS configuration
β”œβ”€β”€ vite.config.js            # Vite build configuration
β”œβ”€β”€ package.json               # Project dependencies & scripts
└── README.md                   # You are here

Note: Exact file names within src/ may vary slightly β€” check the live file tree for the most current layout.


πŸš€ Installation & Setup

Follow these steps to get Wellspring running locally:

1. Clone the repository

git clone https://github.com/smritiesharma/wellspring.git
cd wellspring

2. Install dependencies

npm install

3. Run the development server

npm run dev

Then open the printed local URL in your browser (usually http://localhost:5173).

4. Build for production

npm run build
npm run preview

πŸ’‘ Tip: No environment variables, API keys, or database setup are needed β€” the entire demo runs in-browser.


🧭 Usage / Example

Once running, you can explore the app just like a real visitor would:

  • Navigate to /campaigns and click "Donate" on any project card β€” watch the funding progress bar update live.
  • Go to /get-involved and fill out the multi-step volunteer form β€” your submission is saved to localStorage.
  • Visit /contact to submit a message or simulate a one-time/monthly donation checkout.

To re-skin the demo for a specific client pitch, edit:

// tailwind.config.js β€” update brand colors & fonts
theme: {
  extend: {
    colors: {
      primary: '#YOUR_BRAND_COLOR',
    },
  },
}
// src/data/mockData.js β€” update campaigns, team members, and testimonials
export const campaigns = [
  { title: "Clean Water Initiative", goal: 10000, raised: 4200 },
  // add your own campaigns here
];

Note: All "backend" data resets if you clear your browser's site data β€” this is intentional, since Wellspring has no real server or database.


πŸ—ΊοΈ Future Roadmap

  • Connect a real backend (Node/Express or Firebase) for persistent donations & applications
  • Integrate a real payment gateway (Stripe/Razorpay) for live donation testing
  • Add automated tests (Vitest + React Testing Library)
  • Add dark mode support
  • Deploy a live demo link (Vercel/Netlify) for instant preview
  • Add i18n support for multi-language NGO outreach

🀝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page or open a pull request.

πŸ“„ License

This project is open source.


Made with πŸ’š to help NGOs tell their story online.

About

Wellspring 🌱 β€” A polished, 5-page NGO website template built with React, Vite & Tailwind CSS, featuring live donation flows and volunteer forms.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages