A Next.js application for previewing and analyzing Open Graph metadata and SEO information from any URL. This tool helps developers and marketers ensure their websites have proper social media previews.
- Real-time Open Graph metadata preview
- SEO analysis and recommendations
- Support for Twitter Cards
- Mobile and desktop preview modes
- URL validation and metadata extraction
- Production-ready Docker deployment
First, install dependencies:
npm installCreate a .env file:
cp .env.example .envRun the development server:
npm run devOpen http://localhost:3000 with your browser to see the application.
The easiest way to deploy this application is using Docker:
# Quick start with deployment script
./deploy.sh
# Or manually
docker-compose up -d --buildFor detailed deployment instructions, see:
# Build the application
npm run build
# Start production server
npm startCreate .env.production for production deployment:
NEXT_PUBLIC_BASE_URL=https://your-domain.comSee .env.production.example for all available options.
GET /api/meta?url=<url>- Fetch metadata from a URLGET /api/health- Health check endpoint
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ ├── layout.tsx # Root layout
│ └── page.tsx # Home page
├── components/ # React components
├── lib/ # Utility functions
├── public/ # Static assets
├── Dockerfile # Production Docker image
├── docker-compose.yml # Docker Compose configuration
└── deploy.sh # Deployment helper script
- Framework: Next.js 15
- Runtime: Node.js 20
- Styling: Tailwind CSS 4
- UI Components: Radix UI
- Language: TypeScript
- Containerization: Docker
- Multi-stage builds for optimized image size (~150-200MB)
- Non-root user for enhanced security
- Built-in health checks
- Resource limits and monitoring
- Production-ready configuration
- Docker Compose - Recommended for simple deployments
- Docker Swarm - For scalable deployments
- Kubernetes - For enterprise-grade deployments
- Traditional VPS - Standard Node.js deployment
See DEPLOYMENT.md for detailed instructions.
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
# Start production server
npm start
# Run linter
npm run lintMIT