django-silky - a modernized UI fork of django-silk (dark mode, N+1 detection, inline filters)

Been using django-silk on a few projects and it’s genuinely useful, but I kept
hitting small frustrations with the UI. You can only filter by one method or
status code at a time. Pagination is just a query slice so you can’t jump to
page 3. Sharing a URL with a colleague means they see a completely different
sort order.

None of these are deal-breakers but they add up when you’re already frustrated
debugging a slow endpoint.

I ended up rebuilding the UI as a fork called django-silky.

The thing I’m most happy with is the N+1 detection. Silk already records every
SQL query per request, so I added a fingerprinting pass that strips literal
values and flags requests where the same structural query fires 3+ times. On
the SQL tab you get an expandable orange banner showing the query pattern, a
repeated count badge, and total ms cost. The offending rows are highlighted in
the query table below. There’s also a “N+1 only” toggle in the filter bar to
isolate just those requests across the board.

The analytics dashboard got a proper rebuild too. Request activity timeline,
status code donut, HTTP method breakdown, response time histogram, and latency
percentile curves for both request time and SQL query time.

The rest is smaller papercuts: inline filter bar instead of the drawer,
multi-select for method/status/path with active chips, real Django Paginator,
dark mode, Lucide icons bundled locally.

Same app label, same schema, same migrations as upstream:

pip uninstall django-silk
pip install django-silky

GitHub: GitHub - VaishnavGhenge/django-silky: Silky smooth profiling for Django · GitHub

Happy to hear if anything behaves differently from upstream - that would be
a bug.

1 Like

It looks great! I really like the N+1 feature. I’ll test it more for a few days and give any feedback I found useful.