# ๐ŸŒ OurWorld Web (Salient Template) **OurWorld Web** is a statically-exported site built using the [Salient](https://tailwindcss.com/plus) template with **Next.js**, **Tailwind CSS v4**, and **TypeScript**. It showcases people and ventures in a modular and scalable frontend. --- ## ๐Ÿ“ Project Structure ``` www_ourworld_new/ โ”œโ”€โ”€ .env.local # Local environment variables โ”œโ”€โ”€ public/ # Public static assets (images, videos) โ”œโ”€โ”€ scripts/ # Utility scripts (generate people) โ”œโ”€โ”€ src/ โ”‚ โ”œโ”€โ”€ app/ # App routes (people, ventures, pages) โ”‚ โ”‚ โ”œโ”€โ”€ people/ # Page routes per person โ”‚ โ”‚ โ””โ”€โ”€ ventures/ # Venture route pages โ”‚ โ”œโ”€โ”€ components/ โ”‚ โ”‚ โ””โ”€โ”€ people/ # Individual people components โ”‚ โ”œโ”€โ”€ data/ # Temporary or pre-generated data โ”‚ โ”œโ”€โ”€ lib/ # People data registry (auto-generated) โ”‚ โ”œโ”€โ”€ styles/ # Tailwind & global CSS โ”‚ โ””โ”€โ”€ videos/ # Local videos โ”œโ”€โ”€ docs/ # Markdown docs for onboarding โ”œโ”€โ”€ out/ # Static export folder after build โ”œโ”€โ”€ package.json # Scripts and dependencies โ””โ”€โ”€ README.md # You are here. ``` --- ## โš™๏ธ Technologies * [Next.js](https://nextjs.org/) * [Tailwind CSS](https://tailwindcss.com/) * [React](https://reactjs.org/) * [TypeScript](https://www.typescriptlang.org/) * [Headless UI](https://headlessui.dev/) * [Heroicons](https://heroicons.com/) * [Nodemailer](https://nodemailer.com/) (optional for contact form) --- ## ๐Ÿš€ Getting Started ```bash git clone https://github.com/your-org/www_ourworld_new.git cd www_ourworld_new npm install npm run dev ``` Visit `http://localhost:3000` to view the site. --- ## โš™๏ธ Building the Site ```bash npm run build ``` This will: * Run `scripts/generate-people-data.js` to update the people registry * Build a static export into `/out` To preview production: ```bash npm run start ``` --- ## โœจ Adding a Person 1. Create a folder: `public/images/people/jane_doe/` 2. Inside it, place: * `index.md` (frontmatter + bio) * `jane_doe.jpg` (image) 3. Run: ```bash node scripts/generate-all-people.js npm run generate-people-data npm run build ``` **Frontmatter example:** ```md --- title: Jane Doe description: Community Architect extra: socialLinks: LinkedIn: https://linkedin.com/in/janedoe --- Jane builds regenerative systems that empower local communities... ``` The script will: * Generate a component in `src/components/people/People_Jane_Doe.tsx` * Create or update `src/app/people/jane_doe/page.tsx` * Add them to the dynamic people registry --- ## ๐Ÿง  Anatomy of a Person ### Component (`People_Jane_Doe.tsx`) ```tsx export const data = [{ name: 'Jane Doe', role: 'Community Architect', imageUrl: '/images/people/jane_doe/jane_doe.jpg', xUrl: '#', linkedinUrl: 'https://linkedin.com/in/janedoe', }] const biography = `

Jane builds regenerative systems...

` export function People_Jane_Doe() { return } ``` ### Page (`/people/jane_doe/page.tsx`) ```tsx export default function JaneDoePage() { return ( <>