Proposal on Add Types to Parts of Django

Hey Django community,

I’m Divit Gokani, applying to GSoC 2026 for the “Add Types to Parts of Django” project under Thibaut Decombe.

Quick summary of my approach:

  • Start with the HTTP layer (HttpRequest, HttpResponse, QueryDict) — high value, low risk
  • Then URL routing (@overload for path/reverse) and class-based views
  • Define Protocol classes for ORM interfaces (Manager, QuerySet, Field descriptors) per Simon Charette’s suggestion
  • Finally, CI integration (mypy/pyright) and contribution guidelines

Each phase ships as a self-contained PR. All annotations use from __future__ import annotations for zero runtime cost.

About me: I’ve built Django apps (Alumni Tracking System with ORM + background jobs), worked professionally on REST APIs and CI/CD at Yugensys, and recently completed a Flask microservice capstone with 95% test coverage and Tekton pipelines.

I’d love feedback on:

  • Is the HTTP layer the best starting module?
  • mypy vs. pyright preference for CI?
  • Should types appear in the docs or just in source?

GitHub: master-dg · GitHub

Thanks!
Divit