Skip to content

opendataloader-project/opendataloader.org

Repository files navigation

OpenDataLoader.org

Public website and documentation for OpenDataLoader. Built with Next.js 16 + Fumadocs.

Edit Documentation

All hand-written documentation lives in apps/v1/content/docs/. Clone this repo, edit, and preview locally.

Setup

git clone https://github.com/opendataloader-project/opendataloader.org.git
cd opendataloader.org
pnpm install
pnpm dev --filter v1
open http://localhost:3000/docs

Edit any .mdx file in apps/v1/content/docs/ — changes appear instantly via hot reload.

What you can edit

All .mdx files in apps/v1/content/docs/ except reference/:

  • Quick start guides (quick-start-python.mdx, quick-start-nodejs.mdx, quick-start-java.mdx)
  • Feature docs (hybrid-mode.mdx, ai-safety.mdx, reading-order.mdx, etc.)
  • Benchmark pages (benchmark/*.mdx)
  • FAQ, roadmap, community, contributing, license

What you should NOT edit

apps/v1/content/docs/reference/ — auto-generated from opendataloader-pdf at release time. They exist locally for preview, but do not edit them manually — your changes will be overwritten on the next release.

Add a new page

  1. Create a .mdx file in apps/v1/content/docs/:
    ---
    title: Your Page Title
    description: A short description for SEO and sidebar
    ---
    
    Your content here.
  2. Add the filename (without .mdx) to apps/v1/content/docs/meta.json in the desired sidebar position. Lines starting with ---Heading--- are visual dividers, not pages.
  3. The page is automatically available at /docs/<filename>

Writing tips

  • Images: place in apps/v1/public/figures/, reference with absolute paths (![Diagram](/figures/architecture.png))
  • Links: use relative links ([JSON schema](./reference/json-schema)). Fumadocs resolves them automatically.
  • Code blocks: always declare the language (```bash, ```python) for syntax highlighting
  • Components: MDX supports React components like <Callout> — see existing files for examples

Submit your changes

  1. Create a branch, make your edits
  2. Verify locally with pnpm dev --filter v1
  3. Open a PR — Vercel generates a preview URL automatically
  4. Once the preview looks good, request a merge. Deployment to production is automatic from main.

Development

For engineers working on the website UI, components, or infrastructure.

Prerequisites

  • Node.js >= 18 and pnpm@9 (corepack enable pnpm)
  • Optional: turbo globally (pnpm add -g turbo)

Commands

pnpm install                # install dependencies
pnpm dev --filter v1        # dev server at localhost:3000
pnpm build --filter v1      # production build
pnpm lint --filter v1       # ESLint
pnpm format                 # Prettier

Environment variables

Variable Required Purpose
RESEND_API_KEY No /api/contact route. Contact form fails without it.
NEXT_PUBLIC_GA_ID No Google Analytics

Add secrets to .env.local.

Project structure

apps/v1/
├── src/app/                  # Next.js App Router
│   ├── (home)/              # Marketing homepage
│   ├── docs/[[...slug]]/    # Fumadocs pages
│   ├── demo/                # PDF demo viewer
│   └── api/                 # API routes (contact, search)
├── content/docs/            # MDX documentation source
│   ├── reference/           # Auto-generated (do not edit)
│   └── *.mdx               # Hand-written docs
├── public/figures/          # Static assets for docs
└── source.config.ts         # Fumadocs configuration

PR checklist

  • pnpm dev --filter v1 — pages you touched render correctly
  • pnpm lint --filter v1 — no lint errors
  • Images resolve from apps/v1/public/
  • Sidebar order is correct in meta.json

Architecture

Stack: Turborepo + pnpm workspaces, Next.js 16 (App Router), React 19, Tailwind CSS 4, shadcn/ui, Fumadocs, Jotai

Deployment: Vercel (auto-deploy from main). Static assets served from Cloudflare R2.

Docs pipeline: Hand-written docs live in this repo. Auto-generated reference docs (CLI options, JSON schema, convert options) are generated by opendataloader-pdf CI at release time and pushed into apps/v1/content/docs/reference/.

Contributors