Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions core/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@
views.fetch_issues_trigger,
name="fetch_issues_trigger",
),
path("llms.txt", views.llms_txt, name="llms_txt"),
]
24 changes: 24 additions & 0 deletions core/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -353,3 +353,27 @@ def _run():
{"ok": True, "started": True, "pages": pages, "mode": "async"},
status=202,
)


def llms_txt(request):
"""Serve a short machine-readable description for AI crawlers (llms.txt)."""
content = """# OpenToAll

> Find an open source issue you can actually clone and finish. Built for developers who need a realistic first contribution.

OpenToAll aggregates `good first issue` and `help wanted` issues from GitHub, with filters for language, difficulty, and maintainer responsiveness. It aims to make open-source contribution more accessible, particularly for developers in Africa.

## Key pages

- [Home](https://opentoall.onrender.com/): Project overview
- [Explore](https://opentoall.onrender.com/explore/): Search and filter issues
- [Leaderboard](https://opentoall.onrender.com/leaderboard/): Contributor rankings by country
- [GitHub](https://github.com/Ymax27/opentoall): Source repository

## Preferred crawl paths

- /explore/ — issue listings
- /leaderboard/ — community statistics
- Avoid /admin/ and /internal/ endpoints
"""
return HttpResponse(content, content_type="text/plain")
Loading