Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
fd99a44
Add Manga Availability Finder cookbook example using TinyFish Web Agent
urugondavishnu Jan 25, 2026
665425e
Create README.md
urugondavishnu Jan 25, 2026
3936eb2
Rename Index (1).tsx to Index.tsx
urugondavishnu Jan 26, 2026
4a4e476
Rename tsconfig (1).json to tsconfig.json
urugondavishnu Jan 26, 2026
6bd37ce
Merge branch 'tinyfish-io:main' into vishnu/manga-availability-finder
urugondavishnu Jan 28, 2026
90e64f9
Create client.ts
urugondavishnu Jan 30, 2026
e9d5a64
Create types.ts
urugondavishnu Jan 30, 2026
9c152aa
Create config.toml
urugondavishnu Jan 30, 2026
853a1a2
Create index.ts
urugondavishnu Jan 30, 2026
30f0c1b
Create index.ts
urugondavishnu Jan 30, 2026
c9374f7
Merge branch 'tinyfish-io:main' into vishnu/manga-availability-finder
urugondavishnu Feb 3, 2026
3b65257
Merge branch 'tinyfish-io:main' into vishnu/manga-availability-finder
urugondavishnu Feb 3, 2026
9406285
Merge branch 'tinyfish-io:main' into vishnu/manga-availability-finder
urugondavishnu Feb 4, 2026
72862dd
Move Gemini API key from URL to request headers
urugondavishnu Feb 4, 2026
a57d98a
Handle SSE stream chunks using buffered decoder
urugondavishnu Feb 4, 2026
f6ad189
Merge branch 'tinyfish-io:main' into vishnu/manga-availability-finder
urugondavishnu Feb 5, 2026
3aab36e
Update README.md
urugondavishnu Feb 5, 2026
d208f4a
Merge branch 'tinyfish-io:main' into vishnu/manga-availability-finder
urugondavishnu Feb 6, 2026
9a53fbc
Merge branch 'tinyfish-io:main' into vishnu/manga-availability-finder
urugondavishnu Feb 6, 2026
b351848
Update useMangaSearch.ts
urugondavishnu Feb 9, 2026
4701844
Merge branch 'tinyfish-io:main' into vishnu/manga-availability-finder
urugondavishnu Feb 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 145 additions & 0 deletions Manga-Availability-Finder/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# 🔍 Webtoon/Manga Availability Finder

**Live Demo:** [webtoonhunter.lovable.app](https://webtoonhunter.lovable.app)

---

## What is this?

Webtoon/Manga Availability Finder is an AI-powered manga/webtoon availability checker that searches multiple reading platforms simultaneously. It uses the TinyFish Web Agent API for real-time browser automation, deploying parallel browser agents to search and verify availability across multiple platforms.

---

## Demo

<!-- Replace with your demo gif/video -->

https://github.com/user-attachments/assets/7b3ef9be-d4ba-43be-b3b5-ed9ea246c591

---

## Code Snippet

```typescript
// Call TinyFish Web Agent API with SSE streaming for real-time browser automation

const response = await fetch("https://mino.ai/v1/automation/run-sse", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": process.env.MINO_API_KEY,
},
body: JSON.stringify({
url, // e.g., "https://mangadex.org/search?q=One+Piece"
goal: `You are searching for a manga/webtoon called "${mangaTitle}"...
STEP 1: Find and use the search bar to enter the title
STEP 2: Analyze the search results for matches
STEP 3: Return JSON with { found: boolean, match_confidence: string }`,
stream: true,
}),
});

// Stream SSE events back to client for live preview
const reader = response.body?.getReader();
while (true) {
const { done, value } = await reader.read();
if (done) break;
// Forward streamingUrl + completion events to frontend
}
```

---

## How to Run

### Prerequisites
- Node.js 18+
- Lovable Cloud account (or Supabase project)

### Environment Variables

| Variable | Description | Required |
|----------|-------------|----------|
| `MINO_API_KEY` | TinyFish Web Agent [API key](https://mino.ai) | ✅ |
| `GEMINI_API_KEY` | API key from [Google AI Studio](https://makersuite.google.com) | ✅ |

### Setup

```bash
# 1. Clone the repository
git clone <your-repo-url>
cd webtoon-hunter

# 2. Install dependencies
npm install

# 3. Add secrets to your Lovable Cloud / Supabase project
# Navigate to Settings → Secrets and add:
# - TinyFish Web Agent AI KEY
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Fix environment variable naming inconsistency.

The comment refers to "TinyFish Web Agent AI KEY" but the environment variable table (line 63) defines it as MINO_API_KEY. This inconsistency could cause users to configure the wrong secret name.

🔧 Proposed fix
-#   - TinyFish Web Agent AI KEY
+#   - MINO_API_KEY
🤖 Prompt for AI Agents
In `@Manga-Availability-Finder/README.md` at line 78, Update the README
environment variable name to be consistent: replace the "TinyFish Web Agent AI
KEY" label/comment with the actual environment variable name used in the table,
MINO_API_KEY (or change the table entry to TinyFish Web Agent AI KEY if that is
the intended variable), and ensure both the descriptive label and the env var
identifier match (reference the README's environment variable table and the
MINO_API_KEY identifier).

# - GEMINI_API_KEY

# 4. Start development server
npm run dev
```

---

## Architecture Diagram

```
┌─────────────────────────────────────────────────────────────────────────────┐
│ User Interface │
│ │
│ ┌─────────────┐ ┌──────────────────┐ ┌─────────────────────────────┐ │
│ │ SearchHero │───▶│ useMangaSearch │───▶│ AgentCard (x6 parallel) │ │
│ │ Component │ │ Hook │ │ with Live Stream Preview │ │
│ └─────────────┘ └──────────────────┘ └─────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ Edge Functions (Supabase) │
│ │
│ ┌────────────────────────┐ ┌────────────────────────────────────┐ │
│ │ discover-manga-sites │ │ search-manga (x6) │ │
│ │ (1x per search) │ │ (parallel browser agents) │ │
│ │ │ │ │ │
│ │ Gemini → Get site URLs│ │ TinyFish API → Browser Automation | |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix inconsistent box drawing characters.

The line ends with pipe characters (| |) instead of box drawing characters (│ │), creating a visual inconsistency in the diagram.

🎨 Proposed fix
-│  │  Gemini → Get site URLs│         │  TinyFish API → Browser Automation |  |
+│  │  Gemini → Get site URLs│         │  TinyFish API → Browser Automation │  │
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
│ │ Gemini → Get site URLs│ │ TinyFish API → Browser Automation | |
│ │ Gemini → Get site URLs│ │ TinyFish API → Browser Automation │ │
🤖 Prompt for AI Agents
In `@Manga-Availability-Finder/README.md` at line 107, Replace the inconsistent
ASCII pipes at the end of the diagram line "│  │  Gemini → Get site URLs│       
│  TinyFish API → Browser Automation |  |" with the box-drawing characters so it
reads "│  │  Gemini → Get site URLs│         │  TinyFish API → Browser
Automation │  │"; update that exact line in README.md to use "│" (U+2502) for
the trailing two columns to match the rest of the diagram.

│ │ (+ fallback sites) │ │ (SSE real-time streaming) │ │
│ └────────────────────────┘ └────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ External APIs │
│ │
│ ┌────────────────────────┐ ┌────────────────────────────────────┐ │
│ │ Gemini API │ │ TinyFish Web Agent API │ │
│ │ (Site Discovery) │ │ (Browser Automation + SSE) │ │
│ │ Called: 1x │ │ Called: 5-6x parallel │ │
│ └────────────────────────┘ └────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
```
Comment on lines +89 to +122
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add a language to the fenced code block for the diagram.

Markdownlint warns about missing language spec; use text to keep rendering unchanged.

🛠️ Proposed fix
-```
+```text
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)

[warning] 89-89: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
In `@Manga-Availability-Finder/README.md` around lines 89 - 122, The fenced ASCII
diagram block in README.md is missing a language specifier; update the opening
triple-backtick for the diagram (the ASCII diagram block) to include the
language "text" so the fence becomes ```text, which satisfies Markdownlint and
preserves rendering.


### Flow Summary

1. **User enters manga title** → Client triggers search
2. **Gemini API** discovers 5-6 relevant manga site URLs (with fallback if rate-limited)
3. **TinyFish Web Agent API** deploys parallel browser agents to each site
4. **SSE Streaming** provides live browser preview URLs + real-time status updates
5. **Results** display which sites have the manga available

---

## Tech Stack

- **Frontend:** React, TypeScript, Tailwind CSS, shadcn/ui
- **Backend:** Supabase Edge Functions (Deno)
- **APIs:** TinyFish Web Agent (browser automation), Gemini (site discovery)
- **Streaming:** Server-Sent Events (SSE)

---

## License

MIT
Loading