GottaGo is a small full-stack project that combines a Chrome side panel extension with a GoFr backend powered by Gemini. The frontend provides the browser extension shell, while the backend exposes AI endpoints for GoFr-focused chat responses and cold-email generation.
The repository currently contains two separate pieces:
- A React and TypeScript Chrome extension built for the Chrome side panel experience.
- A GoFr backend that sends prompts to Gemini and returns short JSON responses.
The project is in an early stage. The extension UI is present, but it is not yet wired to the backend APIs.
.
├── backend
│ ├── go.mod
│ ├── gofr-introduction.md
│ └── main.go
└── frontend
├── background.js
├── manifest.json
├── package.json
├── public
├── src
└── webpack.config.js
The frontend is a Manifest V3 Chrome extension named GoFrConnect.
It includes:
- A side panel entry opened from the extension action button.
- A React app rendered inside the panel.
- Hash-based routes for
Home,Settings,Profile, andHelp. - A custom Webpack build that outputs an unpacked extension bundle to
frontend/dist.
Current frontend state:
- The main pages are placeholder screens.
- The extension does not currently call the backend.
- The sidebar references
profile.svgandhelp.svg, but those assets are not present infrontend/public/icons.
The backend is a GoFr application with two GET routes:
/chatbotUses the contents ofbackend/gofr-introduction.mdas context, appends the incomingpromptquery parameter, and returns a short Gemini-generated response as JSON./coldemailGenerates a cold email for a hardcoded Golang-related use case and returns it as JSON.
The backend depends on a Gemini API key loaded from a local .env file.
- Go 1.23.x
- GoFr
- Google Generative AI Go SDK
- React 18
- TypeScript
- Webpack
- Chrome Extension Manifest V3
Before running the project, make sure you have:
- Go installed locally
- Node.js and npm installed locally
- A Gemini API key
- Chrome or another Chromium-based browser for loading the extension
-
Move into the backend directory:
cd backend -
Create a
.envfile:GEMINI_API_KEY=your_api_key_here
-
Install Go dependencies:
go mod download
-
Start the server:
go run main.go
-
Move into the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Build the extension:
npm run build
-
Load the unpacked extension in Chrome:
- Open
chrome://extensions - Enable Developer mode
- Click
Load unpacked - Select the
frontend/distdirectory
- Open
Query parameter:
prompt: the question or prompt to send to the chatbot
Example:
/chatbot?prompt=What%20is%20GoFr%3F
Response shape:
{
"response": "..."
}Returns a generated cold email using a hardcoded prompt in the backend.
Response shape:
{
"response": "..."
}frontend/webpack.config.jsbuilds the React app intofrontend/dist/js.frontend/manifest.json,frontend/background.js, and thefrontend/publicassets are copied intofrontend/dist.- The frontend includes a test file, but it still reflects an older
Hello Worldsetup rather than the current routed UI.
This repository is best described as a working project scaffold:
- The extension shell exists.
- The backend AI endpoints exist.
- The frontend and backend are not integrated yet.
- Several UI pages still need real product behavior.
- Connect the side panel UI to the
/chatbotbackend route. - Make the cold email endpoint accept user input instead of a hardcoded purpose.
- Add the missing sidebar assets or remove the unused links.
- Update the frontend test suite to match the current UI.