No description
  • Vue 63.3%
  • Go 32.1%
  • CSS 2.1%
  • HTML 1.4%
  • JavaScript 1.1%
Find a file
Vibe Kanban d41f6859f4 OPDS-PS Explorer (vibe-kanban 1dc76aea)
Create a server (go) and webapp (vue) development tool to explore OPDS-PS capable servers. This tool is intended for development purposes only, it should allow to navigate the server, view raw requests and responses and interact with the API in a general way. I think it's best if we provide a columns layout to navigate the OPDS-PS server much like the macos finder does, with a panel with details to the far right for technical information.

Here's the SPEC: https://specs.opds.io/
2026-02-11 09:36:23 +01:00
cmd/server OPDS-PS Explorer (vibe-kanban 1dc76aea) 2026-02-11 09:36:23 +01:00
internal OPDS-PS Explorer (vibe-kanban 1dc76aea) 2026-02-11 09:36:23 +01:00
webapp OPDS-PS Explorer (vibe-kanban 1dc76aea) 2026-02-11 09:36:23 +01:00
.gitignore OPDS-PS Explorer (vibe-kanban 1dc76aea) 2026-02-11 09:36:23 +01:00
go.mod OPDS-PS Explorer (vibe-kanban 1dc76aea) 2026-02-11 09:36:23 +01:00
README.md OPDS-PS Explorer (vibe-kanban 1dc76aea) 2026-02-11 09:36:23 +01:00

OPDS-PS Explorer

A development-only tool to explore OPDS-capable servers. It provides a Finder-style column layout to browse feeds, plus a technical panel for raw requests and responses.

Features

  • Column navigation: Browse the OPDS catalog like macOS Finder—each column shows one level (root → categories → publications).
  • Detail panel: View raw HTTP request (method, URL, headers) and response (status, headers, body). Parsed feed structure (links, navigation, publications) is also shown.
  • Proxy API: The Go server fetches feeds server-side so you avoid CORS and can inspect exactly what was sent and received.

Supports OPDS 1.x (XML) and OPDS 2.x (JSON) feeds.

Quick start

Development

  1. Start the Go API server (from repo root):

    go run ./cmd/server
    

    Listens on http://localhost:8080.

  2. Start the Vue dev server (with hot reload):

    cd webapp && bun install && bun run dev
    

    Opens at http://localhost:5173 and proxies /api to the Go server.

  3. Enter an OPDS catalog URL in the toolbar (e.g. https://catalog.example.com/opds) and click Fetch. Navigate by clicking links in the columns; the right panel shows request/response and parsed feed.

Production build

cd webapp && bun install && bun run build
cd .. && go run ./cmd/server

Then open http://localhost:8080. The server serves the built Vue app from dist/ (override with OPDS_DIST if needed).

Project layout

  • cmd/server/ — Go HTTP server entrypoint; internal/ holds handlers and OPDS proxy.
  • webapp/ — Vue 3 + Vite app: toolbar, column area, detail panel.
  • dist/ — Created by bun run build; contains the production frontend.

API

  • GET /api/fetch?url=<encoded-url> — Fetches the URL, parses OPDS (XML/JSON), and returns { request, response, feed?, error? }.
  • POST /api/fetch — Same with JSON body: { "url", "method?", "headers?", "body?" }.

Spec