Skip to content
Agung Smaraputra
All Projects

Osky AI Chatbot

AI chatbot with OpenAI integration and Electron desktop client

LaravelLaravel 10ReactReact 18TypeScriptInertia.jsTailwind CSSOpenAI APIElectronZustandLaravel SanctumLaravel SocialiteMySQL

Overview

Osky AI Chatbot is an AI-powered chatbot application available as both a web app and an Electron desktop client. Built at Osky Interactive, it integrates with OpenAI for conversational AI capabilities, supports PDF document parsing and export, and includes internationalization.

Challenge

The team needed an internal AI assistant that could work both in-browser and as a standalone desktop application. It needed to handle document uploads (particularly PDFs), provide conversational AI responses via OpenAI, and support multiple user roles with different access levels. Cross-platform desktop support (macOS, Windows, Linux) was a requirement.

Approach

The backend uses Laravel 10 with React 18 via Inertia.js. The OpenAI API integration powers the conversational interface, while PDF parsing allows users to upload documents for AI analysis. For the desktop version, I built an Electron wrapper that packages the web app as a native application for macOS, Windows, and Linux.

Google OAuth via Laravel Socialite provides authentication, and Laravel Sanctum handles token-based API access. i18next enables internationalization.

Tech Stack

Layer Technology
Backend Laravel 10
Frontend React 18, TypeScript, Inertia.js
Styling Tailwind CSS
AI OpenAI API
Desktop Electron
State Zustand
Auth Google OAuth via Socialite, Laravel Sanctum
Database MySQL

Key Implementation Details

  • Web and Electron desktop versions targeting macOS, Windows, and Linux
  • OpenAI API integration with PDF document parsing and export
  • Google OAuth authentication via Socialite with Sanctum token-based API access
  • Internationalization support with i18next

Outcome

The chatbot is deployed internally at Osky Interactive, serving as an AI assistant for the team with both browser and desktop access options.