Skip to content

arinadi/NewsGeneratorV2

Repository files navigation

Kuli Tinta AI

Deploy with Vercel

Professional News Generator PWA for Indonesian Journalists. Powered by Google Gemini 3 Pro (Preview) with resilient multi-model fallback.

Kuli Tinta AI

✨ Core Features

🤖 Resilient AI Engine

  • Multi-Model Intelligence: Automatically switches between Gemini 3 Pro, Gemini 3 Flash, and Gemini 2.5 Flash to handle rate limits (429 errors) and quotas.
  • 2-Step Generation Strategy: Generates article body first for context, then follows up with precision titles and hashtags.
  • Context-Aware Extraction: Automatically identifies Location, Date, and Persons Involved from transcripts and uploaded files.

📝 Smart Editor & Drafts

  • Auto-Save & Restore: 'Smart Drafts' automatically save your progress. Restore full state instantly—including input files, context, and settings.
  • Interactive Editing: Double-click any generated title or paragraph to edit inline.
  • Workspace Management: Easily clear your workspace or manage saved drafts from the sidebar.

🚀 Production Ready

  • Interactive Tour: Built-in onboarding guide using driver.js for new users.
  • PWA Support: Installable on mobile/desktop with offline service worker caching.
  • BYOK (Bring Your Own Key): API Key stored securely in your browser's local storage.
  • Multi-format Input: Drag-and-drop support for PDF, DOCX, and TXT files.
  • Rate Limiter: Built-in queue system to manage free tier API usage (10 RPM).

🛠️ Tech Stack

  • Framework: Next.js 15+ (App Router, Static Export)
  • AI: Google GenAI SDK (Gemini 3 Pro / Flash)
  • State & Storage: React Context + IndexedDB (idb)
  • Styling: Tailwind CSS 4
  • UI Components: Lucide React, Sonner (Toast)
  • UX/Onboarding: Driver.js
  • File Processing: pdfjs-dist, mammoth

🚀 Quick Start

Prerequisites

Installation

# Clone the repository
git clone https://github.com/arinadi/NewsGeneratorV2.git
cd NewsGeneratorV2

# Install dependencies
npm install

# Start development server
npm run dev

Open http://localhost:3000 in your browser.

🔧 Configuration

API Key & Models

  1. Click the ⚙️ Settings icon.
  2. Enter your Gemini API Key.
  3. Model Selection: The app defaults to Gemini 3 Pro. You can manually select a model or let the auto-fallback system handle it.
  4. Click "Test Connection" to verify.

Build for Production

npm run build

Output is in the out/ folder. Ready for Vercel, Netlify, or any static host.

📁 Project Structure

├── app/                  # Next.js App Router & Layouts
├── components/          
│   ├── EditorPanel.tsx   # Input form & file handling
│   ├── PreviewPanel.tsx  # Article display & inline editing
│   ├── HistorySidebar.tsx # Saved Drafts management
│   ├── TourGuide.tsx     # Onboarding tour logic
│   └── ...
├── services/            
│   ├── GeminiService.ts  # AI integration & Fallback logic
│   ├── DraftService.ts   # IndexedDB Draft management
│   └── RateLimiter.ts    # Request queueing
├── public/               # Manifest, Icons, SW
└── vibes-coding/         # Implementation plans & docs

📜 License

MIT License - See LICENSE for details.

🙏 Credits

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors