This link-in-bio protfolio tempalate is featuring your social links with blog carousel powered by Blogverse API. It includes a verified badge, dark/light theme toggle, and glassmorphism effects for a sleek, modern look.
This project is licensed under a Custom License.
- β Free to use, modify, and distribute
- β Personal and non-commercial use allowed
- β Commercial use or resale requires authorβs permission
- β Do not remove author credits from the source code
- β Do not claim original authorship or misrepresent attribution
Full license terms are available in the LICENSE file.
Nayan Das
- GitHub: @nayandas69
- YouTube: @dasnayan69
- Email: [email protected]
- Glassmorphism UI with backdrop blur effects
- Dark/Light mode toggle with system preference detection
- Smooth animations powered by Framer Motion
- Responsive design optimized for all devices
- Gradient backgrounds with animated elements
- 6 Active social platforms in a single row layout
- 18+ Extended social icons available (Facebook, Instagram, X, LinkedIn, TikTok, WhatsApp, Telegram, Snapchat, Bluesky, Mastodon, Tumblr, Messenger)
- Custom SVG icons with platform-specific colors
- Verified Badge with tooltip for authenticity
- Easy activation - simply uncomment desired social platforms
- Hover tooltips with smooth animations
- Direct links to all your social profiles
- Accessibility support with proper ARIA labels
- Auto-playing carousel with manual navigation
- Live blog integration fetched from Blogverse API
- Touch gestures touch/swipe navigation for blog carousel on mobile devices
- Category and duration badges
- Smooth transitions between slides
- Dynamic thumbnails - displays real blog cover images when available
- Vercel Analytics integration for visitor tracking
- Vercel Speed Insights for performance monitoring
- Real-time performance metrics
- Core Web Vitals tracking
- Zero configuration analytics setup
- Environment variables support with
.env.local - Google Search Console verification setup
- Secure configuration management
- Development/Production environment separation
- Example configuration file included
- Next.js 14 with App Router
- Image optimization with Next.js Image component
- Font optimization with Google Fonts
- SEO optimized with proper metadata
- TypeScript for type safety
- Node.js 18.0 or higher
- npm 8.0 or higher
-
Clone the repository
git clone https://github.com/nayandas69/linkinbio-nextjs.git cd linkinbio-nextjs -
Install dependencies
npm install
-
Set up environment variables
# Copy the example environment file cp .env.example .env.local # Edit .env.local with your actual values # Add your Google Search Console verification code
-
Add your images Place your images in the
public/images/folder:profile.jpg- Your profile picturefavicon.jpg- Website faviconblog1.png,blog2.png,blog3.png- Blog thumbnails
-
Start development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
This version includes minor fixes and improvements over v0.2.0:
- Fixes & Enhancements:
- Improved blog API handling, reading time format, and thumbnail URLs
- Added
metadataBaseto ensure correct SEO and social image URLs - Allows proper rendering of blog thumbnails across all environments
Other features such as live API integration, automatic display of latest 5 posts, and setup remain the same as v0.2.0.
This version uses a live API to fetch blog posts dynamically from Blogverse:
- Blog API Endpoint:
https://blogverse-five-omega.vercel.app/api/v1/posts/recent?limit=5 - Blogverse Repository: blogverse
- Features: Automatically displays your latest 5 blog posts with real-time updates
- Setup: No additional configuration needed - works out of the box!
If you want to use hardcoded blog data instead of the API:
- Checkout the tag:
git checkout v0.1.0 - Or view the release: https://github.com/nayandas69/linkinbio-nextjs/releases/tag/v0.1.0
- Update blogData: Modify the
blogDataarray inapp/page.tsx
| Technology | Version | Purpose |
|---|---|---|
| Next.js | 16.0+ | React framework with App Router |
| React | 18.0+ | UI library |
| TypeScript | 5.0+ | Type safety |
| Tailwind CSS | 3.3+ | Utility-first CSS framework |
| Framer Motion | 10.16+ | Animation library |
| Lucide React | 0.294+ | Icon library |
| Vercel Analytics | Latest | Visitor tracking |
| Vercel Speed Insights | Latest | Performance monitoring |
Create a .env.local file in your project root:
# Google Search Console Verification Code
# Get this from Google Search Console -> Settings -> Ownership verification
GOOGLE_VERIFICATION_CODE=your-google-verification-code-here
# Optional: Additional configuration
# NEXT_PUBLIC_SITE_URL=https://yourdomain.com
# NEXT_PUBLIC_AUTHOR_NAME=Your Name- Go to Google Search Console
- Add your website property
- Go to Settings β Ownership verification
- Choose HTML tag method
- Copy the
contentvalue from the meta tag - Add it to your
.env.localfile
Edit app/page.tsx to update:
- Name and bio text
- Social media links and URLs
- Blog post data and YouTube video IDs
Update the socialLinks array in app/page.tsx:
const socialLinks = [
{
name: "GitHub",
url: "https://github.com/yourusername",
icon: GitHubIcon,
bgColor: "bg-gray-800",
},
// Add more platforms...
]To activate additional social platforms:
-
Uncomment desired icons in
components/social-icons.tsx:// Remove /* */ around the icons you want to use export const InstagramIcon: React.FC<IconProps> = ({ size = 24, className = "" }) => ( // Icon SVG code )
-
Uncomment imports in
app/page.tsx:import { InstagramIcon, FacebookIcon, // Add other icons you uncommented } from "@/components/social-icons"
-
Use extended social links array by replacing
socialLinkswithextendedSocialLinks
- Facebook, Instagram, X (Twitter), LinkedIn
- TikTok, WhatsApp, Telegram, Snapchat
- Bluesky, Mastodon, Tumblr, Messenger
Note: This version uses the Blogverse API to fetch blog posts automatically.
If you want to use hardcoded blog data:
- Checkout the v0.1.0 release
- Update the
blogDataarray inapp/page.tsx:
const blogData = [
{
id: 1,
title: "Your Blog Post Title",
description: "Your blog post description...",
videoId: "YouTube_VIDEO_ID",
thumbnail: "/images/your-thumbnail.png",
category: "Your Category",
duration: "10:30",
},
// Add more posts...
]- Colors: Modify
tailwind.config.tsfor custom color schemes - Animations: Adjust Framer Motion settings in components
- Layout: Update responsive breakpoints and spacing
The application is fully responsive with optimized layouts for:
- Desktop (1024px+): Full layout with all features
- Tablet (768px-1023px): Adapted spacing and sizing
- Mobile (320px-767px): Touch-optimized interface
Automatic dark mode support with:
- System preference detection
- Manual toggle with persistent storage
- Smooth transitions between themes
- Optimized colors for both modes
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run start |
Start production server |
npm run lint |
Run ESLint |
npm run type-check |
Run TypeScript checks |
npm run format:check |
Run Prettier checks |
npm run format |
Format code with Prettier |
- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically with zero configuration
- Analytics and Speed Insights are automatically enabled
- Netlify: Build command:
npm run build, Publish directory:.next - Railway: Supports Next.js out of the box
- DigitalOcean: Use App Platform with Node.js
- Lighthouse Score: 95+ across all metrics
- Core Web Vitals: Optimized for excellent user experience
- Image Optimization: Automatic WebP/AVIF conversion
- Code Splitting: Automatic with Next.js App Router
- Real-time Monitoring: Vercel Speed Insights integration
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Next.js Team for the amazing framework
- Vercel for hosting and deployment
- Tailwind CSS for the utility-first approach
- Framer Motion for smooth animations
- Lucide for beautiful icons
β Star this repository if you found it helpful!
π Found a bug/suggestion? Open an issue
If you find this project helpful and want to support its ongoing development:
π Buy the project or support me on Patreon to help keep it alive and maintained.
π― Patreon: https://www.patreon.com/nayandas69 π§ Or contact me directly: [email protected]
Your support means a lot! π

