Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

It's a modern tech blog platform built with Next.js, Firebase, and Vercel, designed for fast, clean, and engaging content sharing.

Notifications You must be signed in to change notification settings

RanitDERIA/means-blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GitHub repo size GitHub stars GitHub forks

Twitter Follow LinkedIn



Modern Tech Blog Platform

MEANS is a cutting-edge tech blogging platform built with Next.js and Firebase that enables developers and tech enthusiasts to share their knowledge and insights. The platform features a sleek modern design with dark/light theme support, Google authentication, real-time data synchronization, and an intuitive content management system for creating and publishing technical articles across various programming topics.

βž₯ Live Demo


Table of Contents

Prerequisites:

Before running the application on your local machine, ensure you have the following installed:

You will also need to set up the required environment variables and Firebase configuration as mentioned in the documentation.

Technologies and Services Utilized:

  • Frontend Framework: Next.js Next.js
  • UI Library: React.js React.js
  • Programming Language: JavaScript JavaScript
  • CSS Framework: Tailwind Tailwind CSS
  • Backend Services: Firebase Firebase
  • Authentication: Google Auth Google Authentication
  • Database: Firestore Cloud Firestore
  • Deployment Platform: Vercel Vercel
  • Package Manager: npm npm
  • State Management: Redux Redux
  • Theme Management: Next Themes next-themes
  • Icons: React Icons React Icons

Features:

  • πŸ” Google Authentication: Secure user authentication using Firebase Auth with Google Sign-In
  • πŸ“ Content Management: Create, edit, and manage blog posts with markdown support
  • 🎨 Theme Support: Dynamic dark/light theme switching with next-themes
  • πŸ“± Responsive Design: Mobile-first responsive design that works on all devices
  • πŸ” Topic Filtering: Browse blog posts by categories and topics
  • ⚑ Fast Performance: Optimized with Next.js for lightning-fast page loads
  • πŸ”₯ Real-time Data: Real-time data synchronization with Cloud Firestore
  • πŸ“Š Reading Time: Automatic reading time calculation for each blog post
  • 🏷️ Tag System: Organize content with tags and categories
  • 🎯 SEO Optimized: Built-in SEO optimization with meta tags and Open Graph support
  • πŸ’¨ Static Generation: Pre-rendered pages for better performance and SEO
  • πŸŽͺ Interactive UI: Smooth animations and hover effects for better UX

Run Locally:

To run MEANS locally, follow the steps below:

Linux, macOS, and Windows:

  1. Clone the repository:

    git clone https://github.com/RanitDERIA/means-blog.git
  2. Navigate to project directory:

    cd means-blog
  3. Install dependencies:

    npm install
    # or
    yarn install
  4. Set up Firebase:

    • Create a new Firebase project at Firebase Console
    • Enable Authentication and Firestore Database
    • Enable Google Sign-In provider in Authentication
    • Add your domain to authorized domains in Firebase Auth settings
  5. Configure environment variables: Create a .env.local file in the root directory and add your Firebase configuration:

    NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
    NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
    NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
    NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project_id.appspot.com
    NEXT_PUBLIC_FIREBASE_SENDER_ID=your_sender_id
    NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
    NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=your_measurement_id
    FIREBASE_CLIENT_EMAIL=your_service_account_email
    FIREBASE_PRIVATE_KEY=your_private_key
    FIREBASE_PROJECT_ID=your_project_id
    FIREBASE_DATABASE_URL=your_database_url
  6. Start the development server:

    npm run dev
    # or
    yarn dev
  7. Open your browser: Navigate to http://localhost:3000 to see the application running.

Installation:

Clone the repository from GitHub:

Get it on GitHub

Usage:

  • 🏠 Home Page: Browse the latest tech blog posts and articles
  • πŸ“š Topic Navigation: Filter posts by programming languages and tech topics
  • πŸ” Authentication: Sign in with Google to access personalized features
  • πŸ“– Reading Experience: Enjoy clean, readable blog posts with estimated reading time
  • πŸŒ™ Theme Toggle: Switch between light and dark modes for comfortable reading
  • πŸ“± Mobile Friendly: Access the platform seamlessly on any device
  • πŸ” Content Discovery: Explore diverse tech topics and programming tutorials

Deployment:

The application is optimized for deployment on Vercel, but can also be deployed to other platforms that support Next.js:

Deploy to Vercel:

  1. Push your code to GitHub
  2. Connect your repository to Vercel
  3. Add environment variables in Vercel dashboard
  4. Deploy automatically

Other deployment options:

  • Netlify
  • Firebase Hosting
  • AWS Amplify
  • Railway

Environment Variables:

You will need the following environment variables:

Firebase Configuration (.env.local):

NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
NEXT_PUBLIC_FIREBASE_SENDER_ID=your_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=your_measurement_id

Firebase Admin (for server-side operations):

FIREBASE_CLIENT_EMAIL=your_service_account_email
FIREBASE_PRIVATE_KEY=your_private_key_with_newlines
FIREBASE_PROJECT_ID=your_project_id
FIREBASE_DATABASE_URL=your_database_url

Project Structure:

means-blog/
β”œβ”€β”€ Components/           # React components
β”‚   β”œβ”€β”€ Alert.js         # Alert notifications
β”‚   β”œβ”€β”€ BlogHeader.js    # Blog post preview cards
β”‚   β”œβ”€β”€ Footer.js        # Footer component
β”‚   β”œβ”€β”€ Header.js        # Page header
β”‚   └── Navbar.js        # Navigation bar
β”œβ”€β”€ Firebase/            # Firebase configuration
β”‚   β”œβ”€β”€ Firebase.js      # Client-side config
β”‚   └── Firebase-admin.js # Admin SDK config
β”œβ”€β”€ Lib/                 # Utility functions
β”‚   └── Data.js          # Data processing utilities
β”œβ”€β”€ pages/               # Next.js pages
β”‚   β”œβ”€β”€ _app.js          # App wrapper
β”‚   β”œβ”€β”€ index.js         # Home page
β”‚   β”œβ”€β”€ about.js         # About page
β”‚   └── topic/           # Dynamic topic pages
β”œβ”€β”€ posts/               # Markdown blog posts
β”œβ”€β”€ public/              # Static assets
β”‚   └── Extra/           # Images and icons
β”œβ”€β”€ styles/              # CSS styles
└── Store/               # Redux store configuration

Contributing:

Contributions are always welcome! πŸŽ‰

If you'd like to contribute to this project, please follow these guidelines:

  1. Fork the repository 🍴
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes and commit: git commit -m 'Add some amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request πŸš€

Types of contributions we welcome:

  • πŸ› Bug fixes
  • ✨ New features
  • πŸ“š Documentation improvements
  • 🎨 UI/UX enhancements
  • ⚑ Performance optimizations
  • πŸ§ͺ Tests

License:

This project is licensed under the MIT License - see the LICENSE file for details.

Contact:

If you want to get in touch or have any questions regarding this project, feel free to reach out:

πŸ’Ό LinkedIn: Ranit Deria 🐦 Twitter: @DeriaRanit πŸ’» GitHub: @RanitDERIA

For any inquiries, suggestions, or bug reports, you can also:

  • πŸ› Open an issue on GitHub
  • πŸ’¬ Start a discussion in the repository
  • πŸ“© Send a direct message via social media

⭐ Star this repository if you find it helpful!

Made with ❀️ by Ranit Deria

About

It's a modern tech blog platform built with Next.js, Firebase, and Vercel, designed for fast, clean, and engaging content sharing.

Topics

Resources

Stars

Watchers

Forks