A modern, multilingual poetry platform showcasing Urdu, Hindi, and English literature with comprehensive social features and user interaction capabilities.
- Multilingual Support: Urdu (RTL), Hindi, and English content
- Poetry Categories: Ashaar, Ghazal, Nazm, Rubai collections
- Social Features: Like, comment, and share functionality
- User Authentication: Secure user management with Clerk
- Responsive Design: Mobile-first, accessible interface
- Modern Architecture: Next.js 15 with TypeScript and modular organization
- Node.js 18+
- pnpm (recommended)
- Git
# Clone the repository
git clone https://github.com/lfgraphics/jahannuma.git
cd jahannuma
# Install dependencies
pnpm install
# Set up environment variables
cp .env.example .env.local
# Add your Clerk and Airtable credentials
# Start development server
pnpm devOpen http://localhost:3000 to view the application.
This project follows a modern, modular architecture with feature-based organization:
src/
├── types/ # Type definitions by feature
├── hooks/ # Custom React hooks
├── lib/ # Server-side utilities
├── components/ # UI components by domain
└── utils/ # Client-side utilities
app/
├── api/ # Next.js API routes
├── (pages)/ # Page components
└── globals.css # Global styles
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Authentication: Clerk
- Database: Airtable
- Styling: Tailwind CSS + shadcn/ui
- State Management: SWR for server state
- Deployment: Vercel
- Architecture Guide - Detailed architecture overview
- Development Guide - Development workflow and guidelines
- SEO Guide - SEO optimization strategies
- Migration Guide - Upgrade and migration procedures
- Component Guidelines - Component development standards
# Development
pnpm dev # Start development server
pnpm build # Build for production
pnpm start # Start production server
# Code Quality
pnpm lint # Run ESLint
pnpm type-check # TypeScript type checking
pnpm test # Run tests
# Utilities
pnpm clean # Clean build artifacts# Required
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
AIRTABLE_API_KEY=
AIRTABLE_BASE_ID=
# Optional
NEXT_PUBLIC_ANALYTICS_ID=Note: AIRTABLE_API_KEY and AIRTABLE_BASE_ID are server-only environment variables required by API routes using getAirtableConfig().
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes following our Development Guide
- Add tests for new functionality
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Poetry content contributors and curators
- Open source community for tools and libraries
- Design inspiration from classical poetry platforms
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@jahannuma.com
Made with ❤️ for poetry lovers worldwide
Check out our Next.js deployment documentation for more details.