Skip to content

GitHub README Generator is a web-based tool that lets you build custom, professional GitHub profile READMEs with live preview, drag-and-drop sections, skill badges, GitHub stats, and easy export—no coding required.

Notifications You must be signed in to change notification settings

niladri-1/README_Generator

Repository files navigation

🚀 GitHub README Generator

Sparkles

Create stunning GitHub profile READMEs in minutes

Live Demo Next.js TypeScript Tailwind CSS


📋 Table of Contents


🌟 Overview

The GitHub README Generator is a modern, intuitive web application that helps developers create professional and visually appealing GitHub profile READMEs without any coding knowledge. Built with Next.js 13, TypeScript, and Tailwind CSS, it offers a seamless experience with real-time preview and extensive customization options.

🎯 Purpose

  • Simplify README creation for developers of all skill levels
  • Provide professional templates with modern design aesthetics
  • Offer real-time preview to see changes instantly
  • Generate clean markdown ready for GitHub profiles
  • Save time with pre-built components and sections

✨ Features

🎨 Visual Editor

  • Tabbed Interface: Organized sections for easy navigation
  • Real-time Preview: See your README as you build it
  • Dark Theme: Modern, eye-friendly interface
  • Responsive Design: Works perfectly on all devices

📝 Content Sections

  • Header Section: Name, title, subtitle, and typing animations
  • About Section: Personal information and current activities
  • Contact Section: Social links and contact information
  • Skills Section: Technology badges with visual icons
  • GitHub Stats: Automated statistics and charts
  • Projects Section: Showcase your best work
  • Additional Links: Blog, YouTube, Medium, and more

🛠 Advanced Features

  • Skill Database: 50+ pre-configured technology badges
  • Typing Animation: Dynamic text effects for headers
  • Profile Image Support: Custom profile pictures
  • GitHub Integration: Automatic stats and language charts
  • Export Options: Copy to clipboard or download as file
  • Profile Views Counter: Track README engagement

🎯 User Experience

  • Intuitive Interface: Clean, organized layout
  • Visual Feedback: Hover effects and smooth transitions
  • Error Prevention: Form validation and helpful hints
  • Accessibility: Keyboard navigation and screen reader support

🛠 Tech Stack

Frontend Framework

Styling & UI

State Management

  • React Hooks - useState, useEffect, useCallback, useMemo
  • Local State - Component-level state management

Development Tools

Deployment

  • Netlify - Static site hosting
  • Static Export - Optimized for CDN delivery

🚀 Getting Started

Prerequisites

  • Node.js 16.8 or later
  • npm or yarn package manager
  • Git for version control

Installation

  1. Clone the repository

    git clone https://github.com/niladri-1/README_Generator.git
    cd README_Generator.git
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Start development server

    npm run dev
    # or
    yarn dev
  4. Open in browser

    http://localhost:3000
    

Build for Production

npm run build
# or
yarn build

Start Production Server

npm start
# or
yarn start

📁 Project Structure

github-readme-generator/
├── 📁 app/                    # Next.js App Router
│   ├── 📄 globals.css         # Global styles and CSS variables
│   ├── 📄 layout.tsx          # Root layout component
│   └── 📄 page.tsx            # Main page component
├── 📁 components/             # React components
│   ├── 📁 sections/           # Form sections
│   │   ├── 📄 HeaderSection.tsx
│   │   ├── 📄 AboutSection.tsx
│   │   ├── 📄 ContactSection.tsx
│   │   ├── 📄 SkillsSection.tsx
│   │   ├── 📄 StatsSection.tsx
│   │   ├── 📄 ProjectsSection.tsx
│   │   └── 📄 AdditionalSection.tsx
│   ├── 📁 ui/                 # shadcn/ui components
│   ├── 📄 EditorPanel.tsx     # Left panel with form
│   ├── 📄 PreviewPanel.tsx    # Right panel with preview
│   ├── 📄 ExportDialog.tsx    # Export modal
│   └── 📄 Header.tsx          # App header
├── 📁 lib/                    # Utility functions
│   ├── 📄 generateReadme.ts   # README markdown generator
│   └── 📄 utils.ts            # Helper utilities
├── 📄 components.json         # shadcn/ui configuration
├── 📄 next.config.js          # Next.js configuration
├── 📄 tailwind.config.ts      # Tailwind CSS configuration
├── 📄 tsconfig.json           # TypeScript configuration
└── 📄 package.json            # Dependencies and scripts

🧩 Components

Core Components

EditorPanel (components/EditorPanel.tsx)

  • Purpose: Main form interface with tabbed sections
  • Features: Tab navigation, scroll area, responsive design
  • State: Manages active tab and form data

PreviewPanel (components/PreviewPanel.tsx)

  • Purpose: Real-time markdown preview
  • Features: Live updates, copy functionality, syntax highlighting
  • Performance: Memoized rendering for optimal performance

ExportDialog (components/ExportDialog.tsx)

  • Purpose: Export README as file or clipboard
  • Features: Copy to clipboard, download file, toast notifications
  • UX: Modal interface with clear actions

Section Components

HeaderSection (components/sections/HeaderSection.tsx)

  • Fields: Name, title, subtitle, profile image, typing texts
  • Features: Dynamic typing text management, image preview
  • Validation: Required field indicators

SkillsSection (components/sections/SkillsSection.tsx)

  • Features: Skill database browser, category filtering, search
  • Database: 50+ pre-configured technology badges
  • UX: Visual skill selection with instant feedback

ProjectsSection (components/sections/ProjectsSection.tsx)

  • Features: Dynamic project addition, tech stack tags
  • Fields: Name, description, technologies, GitHub, demo links
  • Management: Add/remove projects with validation

Utility Functions

generateReadme (lib/generateReadme.ts)

  • Purpose: Convert form data to markdown
  • Features: Template generation, badge creation, URL encoding
  • Output: Clean, formatted markdown ready for GitHub

📖 Usage Guide

Step 1: Header Information

  1. Navigate to the Header tab
  2. Enter your name (required)
  3. Add your title (e.g., "Full Stack Developer")
  4. Write a subtitle describing yourself
  5. Add profile image URL (optional)
  6. Configure typing animation texts

Step 2: About Section

  1. Switch to the About tab
  2. Fill in current work and collaboration interests
  3. Mention what you're learning
  4. Add topics people can ask you about
  5. Include a fun fact and location

Step 3: Contact Information

  1. Go to the Contact tab
  2. Add email, phone, and social media links
  3. Include portfolio and professional profiles
  4. Configure messaging platforms (Telegram, WhatsApp)

Step 4: Skills & Technologies

  1. Open the Skills tab
  2. Browse categories: Languages, Frameworks, Databases, Tools, Design
  3. Search for specific technologies
  4. Click to add skills (visual badges will appear)
  5. Remove skills by clicking the X button

Step 5: GitHub Statistics

  1. Navigate to Stats tab
  2. Enter your GitHub username
  3. Toggle desired statistics:
    • GitHub Stats
    • Top Languages
    • Streak Stats
    • Profile Views Counter

Step 6: Projects Showcase

  1. Go to Projects tab
  2. Add project details:
    • Name and description
    • Technologies used
    • GitHub repository link
    • Live demo URL
  3. Manage multiple projects

Step 7: Additional Links

  1. Visit Additional tab
  2. Add links to:
    • Resume/CV
    • Blog
    • YouTube channel
    • Medium profile
    • Dev.to profile

Step 8: Export README

  1. Review your README in the Live Preview
  2. Click Export README button
  3. Choose to copy to clipboard or download file
  4. Paste into your GitHub profile repository

🎨 Customization

Styling Customization

Color Scheme

/* app/globals.css */
:root {
  --primary: 0 0% 9%;
  --secondary: 0 0% 96.1%;
  --accent: 0 0% 96.1%;
  /* Modify these values for custom colors */
}

Component Styling

// Modify Tailwind classes in components
<Card className="bg-gray-800/50 border-gray-700">
  {/* Custom styling */}
</Card>

Adding New Skills

// components/sections/SkillsSection.tsx
const skillsDatabase = {
  languages: [
    // Add new language
    {
      name: 'Dart',
      icon: 'https://img.shields.io/badge/Dart-%230175C2.svg?style=for-the-badge&logo=dart&logoColor=white'
    },
  ],
  // Add to other categories...
};

Custom Badge Generation

// lib/generateReadme.ts
function generateSkillBadge(skill: string): string {
  const skillBadges: { [key: string]: string } = {
    // Add custom badge mappings
    'your-tech': 'https://img.shields.io/badge/YourTech-%23COLOR.svg?style=for-the-badge&logo=yourlogo&logoColor=white',
  };

  return skillBadges[skill.toLowerCase()] || defaultBadge;
}

Adding New Sections

  1. Create Section Component

    // components/sections/NewSection.tsx
    export function NewSection({ readmeData, setReadmeData }) {
      // Implementation
    }
  2. Update Data Interface

    // app/page.tsx
    export interface ReadmeData {
      // Add new section
      newSection: {
        field1: string;
        field2: string;
      };
    }
  3. Add to Editor Panel

    // components/EditorPanel.tsx
    const tabs = [
      // Add new tab
      { id: 'new', label: 'New Section', icon: YourIcon },
    ];

🚀 Deployment

Netlify Deployment (Recommended)

  1. Build the project

    npm run build
  2. Deploy to Netlify

    • Connect your GitHub repository to Netlify
    • Set build command: npm run build
    • Set publish directory: out
    • Deploy automatically on push

Vercel Deployment

  1. Install Vercel CLI

    npm i -g vercel
  2. Deploy

    vercel --prod

Manual Static Hosting

  1. Build static files

    npm run build
  2. Upload out folder to any static hosting service

Environment Variables

No environment variables required for basic functionality.


🤝 Contributing

We welcome contributions! Here's how you can help:

Getting Started

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
  4. Commit your changes
    git commit -m 'Add amazing feature'
  5. Push to the branch
    git push origin feature/amazing-feature
  6. Open a Pull Request

Contribution Guidelines

  • Code Style: Follow existing TypeScript and React patterns
  • Components: Use functional components with hooks
  • Styling: Use Tailwind CSS classes
  • Testing: Ensure components render without errors
  • Documentation: Update README for new features

Areas for Contribution

  • 🎨 UI/UX Improvements: Better animations, responsive design
  • 🛠 New Features: Additional sections, export formats
  • 🐛 Bug Fixes: Report and fix issues
  • 📚 Documentation: Improve guides and examples
  • 🌐 Internationalization: Multi-language support
  • Performance: Optimization and caching

📄 License

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

MIT License Summary

  • ✅ Commercial use
  • ✅ Modification
  • ✅ Distribution
  • ✅ Private use
  • ❌ Liability
  • ❌ Warranty

🙏 Acknowledgments


📞 Support


Made with ❤️ by Niladri Chatterjee, for developers

Star this repo if you found it helpful!

About

GitHub README Generator is a web-based tool that lets you build custom, professional GitHub profile READMEs with live preview, drag-and-drop sections, skill badges, GitHub stats, and easy export—no coding required.

Topics

Resources

Stars

Watchers

Forks

Languages