A modern web application for Turkmen poetry built with Next.js 15, Tailwind CSS v4, and MongoDB.
A digital turkmen poetry archive library. A Penjire.com project
Project link: serpay.penjire.com
- Frontend: Next.js 15 (App Router)
- Styling: Tailwind CSS v4
- Database: MongoDB with Mongoose
- Authentication: NextAuth.js
- UI Components: shadcn/ui
- Language: TypeScript
- Node.js 18+
- MongoDB (local or MongoDB Atlas)
- Clone the repository:
git clone <repository-url>
cd serpay
- Install dependencies:
npm install
- Set up environment variables:
cp .env.example .env.local
Edit .env.local
with your configuration:
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_secure_jwt_secret_here
Important: Generate a secure JWT secret for production use. You can use:
openssl rand -base64 32
- Run the development server:
npm run dev
Open http://localhost:3000 to view the application.
npm run dev
- Start development servernpm run build
- Build for productionnpm run start
- Start production servernpm run lint
- Run ESLintnpm run scrape:all
- Scrape all poems from the original sitenpm run seed
- Seed database with scraped datanpm run update:avatars
- Update poet avatars in database
serpay/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ ├── admin/ # Admin panel pages
│ └── p/ # Poet and poem pages
├── components/ # React components
│ └── ui/ # shadcn/ui components
├── lib/ # Utility functions and database
│ └── db/ # Database models and connection
├── scripts/ # Data scraping and seeding scripts
└── public/ # Static assets
- Browse poets and their poems
- Admin panel for content management
- Responsive design
- Light mode only (optimized for readability)
- Server-side rendering for SEO
- API endpoints for data access
- Apple-like UI design
- Environment Variables: Never commit
.env.local
or any file containing secrets - JWT Secret: Always use a strong, randomly generated JWT secret in production
- Database Credentials: Use environment variables for database connection strings
- Admin Credentials: Change default admin passwords immediately after deployment
- Session Security: Sessions are stored in HTTP-only cookies
The application is deployed on Vercel. To deploy your own instance:
- Push your code to GitHub
- Connect your repository to Vercel
- Set up environment variables in Vercel dashboard
- Deploy
Help us for a new UI design. Contact