Navigate typography with precision. An intelligent, AI-powered font pairing assistant designed for modern designers, developers, and creators who want to elevate their typography game without spending hours on experimentation.
- AI-Powered Navigation: Navigate typography with precision using intelligent algorithms that understand your design needs
- Live Previews: Experience your font choices in real-time with live previews of headers, blog titles, and landing pages
- Export CSS: Get production-ready CSS code with Google Fonts links and optimized font-family declarations
- Share & Save: Build your typography library by saving favorite combinations and sharing them with your team
- Instant Results: Navigate to perfect typography in seconds, not hours. Get beautiful font pairings instantly
- Google Fonts Integration: Access the complete Google Fonts library with expertly curated pairings that harmonize perfectly
- Node.js 18+ (for Next.js 14 features)
- npm or yarn (package manager)
- Git (for version control)
- Clone the repository:
git clone https://github.com/NitinSemwal2605/fontpilot-io.git
cd fontpilot-io- Install dependencies:
npm install
# or
yarn install- Set up environment variables:
# Create .env.local file
cp .env.example .env.local
# Edit .env.local with your API keys
NEXT_PUBLIC_GOOGLE_FONTS_API_KEY=your_google_fonts_api_key
NEXT_PUBLIC_GOOGLE_GEMINI_API_KEY=your_google_gemini_api_key- Run the development server:
npm run dev
# or
yarn dev- Open your browser: Navigate to http://localhost:3000
Create a .env.local file in the root directory with the following variables:
# Google Fonts API Key
NEXT_PUBLIC_GOOGLE_FONTS_API_KEY=your_google_fonts_api_key_here
# Google Gemini AI API Key
NEXT_PUBLIC_GOOGLE_GEMINI_API_KEY=your_google_gemini_api_key_here-
Google Fonts API:
- Go to Google Cloud Console
- Enable the Google Fonts API
- Create credentials and get your API key
-
Google Gemini AI API:
- Go to Google AI Studio
- Create a new API key for Gemini Pro
- Framework: Next.js 14 with App Router
- Styling: Tailwind CSS with custom animations
- UI Components: shadcn/ui with Radix UI primitives
- Animations: Framer Motion
- Icons: Lucide React
- TypeScript: Full type safety
- Toast Notifications: react-hot-toast
- SEO: Structured data, sitemap, robots.txt
- PWA: Web app manifest for mobile experience
- AI Integration: Google Gemini Pro for intelligent recommendations
- Font Management: Google Fonts API integration
- AI-Powered Search: Describe your project like "Building a SaaS landing page" or "Creating a wedding website"
- Browse Categories: Explore curated collections by style (Professional, Creative, Modern, etc.)
- Live Previews: See font combinations in real UI components
- Export CSS: Copy production-ready CSS with Google Fonts links
- Save Favorites: Build your typography library with saved combinations
The application uses a modern design system with:
- Gradient text effects
- Smooth animations and transitions
- Glass morphism effects
- Responsive design
- Dark mode support (coming soon)
FontPair.ai is fully responsive and works beautifully on:
- Desktop (1200px+)
- Tablet (768px - 1199px)
- Mobile (320px - 767px)
Create a .env.local file in the root directory with the following variables:
# Google Fonts API Key
NEXT_PUBLIC_GOOGLE_FONTS_API_KEY=your_google_fonts_api_key_here
# Google Gemini AI API Key
NEXT_PUBLIC_GOOGLE_GEMINI_API_KEY=your_google_gemini_api_key_here-
Google Fonts API:
- Go to Google Cloud Console
- Enable the Google Fonts API
- Create credentials and get your API key
-
Google Gemini AI API:
- Go to Google AI Studio
- Create a new API key for Gemini Pro
fontpilot-io/
βββ app/ # Next.js 14 App Router
β βββ components/ # Shared components
β β βββ structured-data.tsx # SEO structured data
β βββ favorites/ # Favorites page
β β βββ page.tsx
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout with metadata
β βββ manifest.ts # PWA manifest
β βββ page.tsx # Home page
β βββ robots.ts # SEO robots.txt
β βββ sitemap.ts # SEO sitemap
βββ components/ # Reusable components
β βββ ui/ # shadcn/ui components
β β βββ button.tsx
β β βββ card.tsx
β β βββ input.tsx
β βββ features.tsx # Features section
β βββ footer.tsx # Footer component
β βββ font-card.tsx # Font pair card
β βββ font-preview.tsx # Font loading component
β βββ navigation.tsx # Navigation bar
β βββ ai-reasoning.tsx # AI reasoning display
βββ lib/ # Utility libraries
β βββ ai-recommendations.ts # AI integration
β βββ favorites.ts # Local storage management
β βββ fonts.ts # Google Fonts integration
β βββ font-styles.ts # Font categorization
β βββ utils.ts # Utility functions
βββ public/ # Static assets
βββ package.json # Dependencies
-
AI Integration (
lib/ai-recommendations.ts)- Google Gemini Pro integration
- Context-aware font recommendations
- Fallback recommendations for different use cases
-
Font Management (
lib/fonts.ts)- Google Fonts API integration
- Dynamic font loading
- Font categorization and filtering
-
State Management
- React hooks for local state
- Local storage for favorites
- Session storage for font previews
-
UI Components
- Modular component architecture
- Reusable shadcn/ui components
- Responsive design with Tailwind CSS
// lib/ai-recommendations.ts
export async function getAIRecommendations(userNeed: string): Promise<AIRecommendation[]>- Analyzes user input for context
- Generates 10 tailored font combinations
- Provides reasoning and use cases
// lib/fonts.ts
export function loadFontsForPair(headingFont: string, bodyFont: string): Promise<void>- Dynamic Google Fonts loading
- Prevents duplicate font requests
- Handles loading states
// lib/favorites.ts
export function addToFavorites(fontPair: FontPair): boolean- Local storage persistence
- Add/remove functionality
- Dedicated favorites page
- TypeScript: Strict type checking enabled
- ESLint: Code quality and consistency
- Prettier: Automatic code formatting
- Component Structure: Functional components with hooks
-
New Font Categories
// Add to lib/font-styles.ts export const fontStyles = { 'New Category': { icon: 'π¨', color: 'text-blue-500', description: 'Description here' } }
-
New AI Recommendations
// Add to lib/ai-recommendations.ts const newRecommendations = [ { heading: 'Font Name', body: 'Font Name', category: 'Category', description: 'Description', reasoning: 'Why this works', useCase: 'Specific use case' } ]
-
New UI Components
// Create in components/ export default function NewComponent() { return ( <div className="your-styles"> {/* Component content */} </div> ) }
-
Development
npm run dev
-
Build for Production
npm run build npm start
-
Type Checking
npm run type-check
-
Linting
npm run lint
- AI recommendations work for different inputs
- Font loading and preview functionality
- Favorites system (add/remove/save)
- CSS export functionality
- Responsive design on different screen sizes
- SEO metadata and structured data
- PWA functionality
- Font loading performance
- AI response times
- Bundle size optimization
- Lighthouse scores
- Connect your GitHub repository
- Set environment variables in Vercel dashboard
- Deploy automatically on push to main branch
- Netlify: Similar to Vercel setup
- Railway: Container-based deployment
- AWS/GCP: Custom server setup
- 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
- Follow TypeScript best practices
- Add proper error handling
- Include loading states for async operations
- Test on multiple browsers
- Update documentation for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Fonts API for font data
- Google Gemini Pro for AI recommendations
- shadcn/ui for beautiful components
- Framer Motion for smooth animations
- Tailwind CSS for utility-first styling
- GitHub Issues: Report bugs or request features
- Email: 55semwalnitin@gmail.com
- Twitter: @nitintweetz
Made with β€οΈ by Nitin Semwal
.animate-gradient-shift: Animated gradient background
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Fonts for the font library
- shadcn/ui for the component library
- Framer Motion for animations
- Tailwind CSS for styling
- π Report bugs: GitHub Issues
- π‘ Feature requests: GitHub Discussions
- π§ Email: hello@fontpair.ai
Made with β€οΈ for designers and developers