Overview
Community Voices is a storytelling platform that amplifies the lived experiences, hopes, challenges, and triumphs of individuals in Dzaleka Refugee Camp. Through personal narratives, the platform humanizes refugee experiences, challenges stereotypes, and creates a digital archive of community history.Community Voices focuses on first-person narratives that give agency to refugees to tell their own stories in their own words, countering mainstream media portrayals.
Purpose & Impact
Why Community Voices Matters
Dignity & Agency
Refugees control their own narratives instead of being subjects of others’ stories
Historical Archive
Preserves community memories and experiences for future generations
Advocacy Tool
Personal stories influence policy, challenge misconceptions, drive social change
Community Connection
Shared experiences build solidarity and mutual understanding within the camp
Story Categories
- Journey - Migration stories, fleeing conflict, arriving in Malawi
- Daily Life - Experiences of camp life, challenges, routines
- Education - Pursuing learning despite obstacles
- Entrepreneurship - Starting businesses, economic resilience
- Art & Culture - Preserving heritage, creative expression
- Advocacy - Speaking out for refugee rights and dignity
- Hope & Dreams - Aspirations, future goals, resilience
- Stories - General personal narratives
User Experience
Reading Stories
Discover Stories
Browse featured stories on homepage or navigate to dedicated section (if implemented)
Story Page Elements
Each story (/community-voices/[slug]) features:
- Hero section: Large featured image with gradient overlay
- Title & excerpt: Compelling headline and summary
- Author byline: Name and date published
- Category badge: Story classification
- Full narrative: Long-form content with rich formatting
- Tags: Keywords for discovery (#journey, #hope, #resilience)
- Related stories: 3 similar narratives from same category
Content Schema
Stories stored insrc/content/community-voices/ as Markdown:
Real Example from Source
Fromdivineirakoze.md:
Read Divine's Full Story
Read Divine's Full Story
Divine’s story (24 lines total) discusses:
- Challenges of refugee life in Dzaleka
- Restrictions on work and movement
- Impact on youth unemployment and mental health
- Food insecurity and basic needs
- Her advocacy dreams and hope for the future
src/content/community-voices/divineirakoze.mdHow to Submit a Story
Story Development
- Identify willing storyteller (must give informed consent)
- Conduct interview or have person write their own story
- Ensure storyteller understands how story will be used
- Get explicit permission for any photos
Review with Storyteller
CRITICAL: Show the final story to the author BEFORE publishing.
- Read it aloud together
- Verify accuracy of facts and quotes
- Check that tone and message match their intent
- Get written/recorded approval to publish
Technical Implementation
Story Detail Page
Dynamic routing with static generation:src/pages/community-voices/[slug].astro
Related Stories Logic
Shows 3 stories from same category:Related Stories Algorithm
Hero Section with Image
Conditional rendering based on image availability:Hero Layout
SEO & Social Sharing
Comprehensive metadata for social platforms:OpenGraph & Twitter Metadata
Schema.org Article Markup
Structured Data
Storytelling Best Practices
Center the Narrator
Use first-person voice. Let the person tell THEIR story, not your interpretation.
Respect & Dignity
Never sensationalize suffering. Focus on resilience, agency, and humanity.
Informed Consent
Explain how the story will be used. Get written permission. Allow opt-out anytime.
Safety First
Don’t publish details that could endanger the storyteller or their family.
Ethical Guidelines
Do No Harm Principle
Do No Harm Principle
Before publishing, ask:
- Could this story put the narrator or others at risk?
- Does it reveal sensitive personal information?
- Could it be used against them by authorities or others?
- Does it perpetuate stereotypes or pity narratives?
Avoiding Exploitation
Avoiding Exploitation
Stories are not commodities. Don’t:
- Pay people for “sad stories”
- Pressure vulnerable people to share trauma
- Edit stories to make them more “dramatic”
- Use stories without compensating the storyteller (if applicable)
- Offer honorarium if budget allows
- Give storyteller co-author credit
- Share any revenue from story republishing
Representation & Balance
Representation & Balance
Ensure diversity in voices:
- Different countries of origin
- Various age groups (youth, elders)
- Gender balance
- Range of experiences (not just trauma)
- Success stories alongside challenges
Image Guidelines
Photo Requirements
- Size: Minimum 1200x630px (recommended 1920x1080px)
- Format: JPG or PNG
- Quality: High resolution, not blurry or pixelated
- Composition: Subject clearly visible, good lighting
- Consent: Explicit permission from everyone in photo
Where to Get Images
- Personal photos from storyteller (with permission)
- Community photographers (credit them!)
- Free stock photos (Unsplash, Pexels) as fallback
- Commissioned photography (hire local photographers)
Placeholder Images
If no image available, system uses:/images/placeholder-voice.jpg(default)- Category-specific placeholders (if configured)
Content Quality Checklist
Before publishing, verify:- Story is in first-person voice
- Title is compelling and descriptive (not clickbait)
- Excerpt captures the essence in 1-2 sentences
- Category accurately reflects content
- Tags are relevant and searchable
- Image is high-quality with proper consent
- Markdown formatting is clean (headings, paragraphs)
- No spelling or grammar errors
- Facts are accurate and verified
- Storyteller has approved final version
- No sensitive information that could cause harm
Troubleshooting
Story not displaying on website
Story not displaying on website
Check:
- File is in
src/content/community-voices/directory - Filename uses lowercase and hyphens (no spaces)
- YAML frontmatter is valid (proper indentation, quotes)
- Required fields are filled: title, author, date, category, excerpt
- Dev server restarted:
npm run dev
Image not loading
Image not loading
Images can be:
- Local:
/images/stories/photo.jpg(inpublic/images/stories/) - External: Full HTTPS URL
- URL is correct and accessible
- Image file exists at specified path
- Image is not too large (< 5MB recommended)
Related stories not showing
Related stories not showing
Future Enhancements
Planned features:- Audio stories: Voice recordings for those who prefer oral storytelling
- Video testimonials: Short documentary-style clips
- Translation: Stories in multiple languages (French, Swahili, Kirundi)
- Comments: Allow community dialogue (moderated)
- Search: Full-text search across all stories
- Collections: Curated story series on themes
- Author pages: Profile pages for prolific storytellers
Related Features
Events
Share event experiences
Services
Organizations’ impact stories
E-Learning
Educational journey narratives
Remember: Every story is a person’s lived experience. Handle with care, respect, and dignity. These are not just content - they are human beings trusting us with their truth.