Wiki Surfing is an endless wiki that creates new articles using AI.
Click on any link to generate a new article. Each article connects to others, creating an endless browsing experience.
Warning
Early Development Notice
This project is in very early stages of development. This section may be outdated or incomplete. Please expect frequent changes and potential breaking updates.
Wiki Surfing is an AI-powered endless wiki generator built with a modern full-stack architecture. The project consists of two main components: a Python backend API (core) and a Nuxt.js frontend (web).
cp docker-compose.example.yaml docker-compose.yaml
# (modify docker-compose.yaml for key/port settings)
docker compose up -dSet environment:
OPENROUTER_API_KEY=your_openrouter_api_key
cd core
pdm install
pdm run python src/tequila/api.pySet environment:
API_URL=http://localhost:8000/api
cd web
pnpm install
pnpm devBackend (Core)
- FastAPI: Modern Python web framework for building APIs
- Pydantic AI: AI model integration and validation
- NetworkX: Graph processing for article relationships
- PDM: Python dependency management
Frontend (Web)
- Nuxt.js: Vue.js framework with SSR/SSG capabilities
- TypeScript: Type-safe JavaScript
- Tailwind CSS v4: Utility-first CSS framework
- Nuxt UI: Component library
_gen_article(): Main article generation function_get_proto_with_context(): Retrieves article context_get_proto_with_related_articles(): Finds related articles using PageRank
ProtoArticle: Article prototype/templateArticle: Complete article with contentwrite_article(): AI-powered article generation
- RESTful endpoints for article operations
- Streaming support for real-time generation
- OpenAPI/Swagger documentation
docs.py: Document CRUD operationsspace.py: Workspace/namespace management
ArticleRenderer.vue: Renders wiki articles with markdown supportAppHeader.vue: Navigation headerAppFooter.vue: Footer component
The frontend communicates with the backend through:
- Proxy Configuration: Nuxt proxies
/apirequests to the FastAPI backend - OpenAPI Client: Auto-generated TypeScript client from OpenAPI spec
- Server-Sent Events: Real-time streaming for article generation
- User Request: Frontend sends article request to API
- Context Retrieval: System finds related articles and context
- AI Generation: LLM generates article content using prompts
- Link Parsing: Extracts and processes internal links
- Storage: Persists article to storage layer
- Rendering: Frontend renders markdown with custom components