Welcome to my personal portfolio website, a showcase of my professional journey, technical skills, and creative endeavors. Built with cutting-edge web technologies, this site offers an immersive experience into my world of development and design.
- Personal Blog: In-depth technical insights and personal experiences
- Interactive Project Portfolio: Showcasing development and design work
- Photography Gallery: Visual storytelling through photography
- "Uses" Page: Detailed breakdown of my daily tools and software
- Guestbook: Interactive visitor messaging system
- Newsletter Subscription: Stay updated with weekly tech news and blog posts
- Protected Dashboard: Personalized stats and insights
- Spotify Integration: Real-time music listening tracker
- WakaTime Coding Stats: Transparent view of coding activities
- Responsive Dark/Light Themes
- MDX-Powered Blog Posts: Rich, interactive content
- SEO Optimized: Enhanced search engine visibility
Stay up-to-date with the latest hot tech topics, coding tips, and project updates by subscribing to the newsletter! Powered by a custom subscription form (see app/newsletter/page.tsx), subscribers receive weekly updates directly to their inbox. No spam, just value.
Features:
- Simple subscription form (First Name, Last Name, Email)
- Real-time subscriber count
- Toast notifications for feedback
- Latest blog posts preview
- Responsive and accessible UI
How to Subscribe:
- Visit the Newsletter page or
/newsletterroute in your local/dev environment. - Fill in your details and submit the form.
- Receive a confirmation and start getting weekly updates!
Tech Stack:
- React (Next.js client component)
- Sanity CMS for blog content
- Custom API endpoints for subscription management
- Toast notifications for user feedback
- Frontend Framework: Next.js
- Language: TypeScript
- Styling: Tailwind CSS
- Content Management: Sanity CMS
- Authentication: NextAuth.js, Firebase
- Deployment: Vercel
- Additional Libraries:
- Framer Motion
- Recharts
- Shadcn/ui
- Lucide React
- Node.js (v18+)
- npm or Yarn
- Sanity CLI
- Firebase Project
- Spotify Developer Account
- WakaTime Account
-
Clone the repository:
git clone https://github.com/Manish-Tamang/portfolio.git cd portfolio -
Install dependencies:
npm install
Create a .env.local file with the following variables:
# Sanity Configuration
NEXT_PUBLIC_SANITY_PROJECT_ID=
NEXT_PUBLIC_SANITY_DATASET=production
SANITY_API_READ_TOKEN=
# Firebase Configuration
NEXT_PUBLIC_FIREBASE_API_KEY=
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
# ... (other Firebase configs)
# Spotify Integration
SPOTIFY_CLIENT_ID=
SPOTIFY_CLIENT_SECRET=
SPOTIFY_REFRESH_TOKEN=
# WakaTime Integration
WAKATIME_ACCESS_TOKEN=
WAKATIME_CLIENT_ID=
# Authentication
NEXTAUTH_SECRET=
NEXTAUTH_URL=http://localhost:3000
# Analytics
UMAMI_API_KEY=
WEBSITE_ID=npm run devVisit http://localhost:3000 in your browser.
portfolio/
├── app/ # Next.js app directory
├── components/ # Reusable React components
├── lib/ # Utility functions
├── public/ # Static assets
├── sanity/ # Sanity CMS configuration
├── styles/ # Global and module CSS
└── types/ # TypeScript type definitions
Manage content through /studio route. Configure CORS settings in Sanity management.
Handles:
- View counting
- User authentication
- Guestbook messages
Real-time tracking of music and coding activities.
- Fork the repository
- Create a feature branch
- Commit changes
- Push and open a pull request
Distributed under the MIT License. See LICENSE for more information.
- Next.js Community
- Sanity.io
- Vercel
- Open-source contributors
