
Superset Repo Update: July 2025
Welcome, Superset community! July has been an incredibly productive month with 205 PRs merged, bringing substantial improvements across the board. This update covers all the amazing work from July 1st through July 31st, 2025. Let's dive into the highlights of what's new in Apache Superset!
Major Themes This Month
This July saw significant focus on theming enhancements, improved data handling capabilities, and better developer experience. The community has been particularly active in making Superset more accessible and user-friendly, with numerous UI/UX improvements and powerful new features.
User-Facing Improvements
UI/UX Enhancements
Theme System Overhaul
The theming system received major attention this month with multiple improvements:
- Runtime custom font loading (PR #34416) - You can now configure custom fonts without rebuilding Docker images! Simply set
CUSTOM_FONT_URLS
in your config to use Google Fonts, Adobe Fonts, or self-hosted fonts.
-
Bootstrap-driven theme configurations (PR #34144) - Enhanced theme management with support for default, dark, and configurable theme settings
-
Theme CRUD interface (PR #34182) - New comprehensive theme management system with REST API for creating and managing themes
Dashboard & Visualization Improvements
-
Filter panel default state (PR #32870) - New
FILTERBAR_CLOSED_BY_DEFAULT
configuration option lets you control whether filter panels are open or closed by default -
Gantt Chart plugin (PR #33716) - Brand new timeline-based visualization using Apache ECharts
- AG Grid table integration (PR #33517) - Advanced data grid capabilities with server-side pagination, sorting, and cross-filtering
Data Handling & Export
Enhanced Export Capabilities
- Pivot table Excel export (PR #33569) - Download pivot tables as Excel files while preserving their pivoted structure
- Unicode support in CSV exports (PR #34235) - CSV exports now properly handle Unicode characters like Chinese and Arabic text with UTF-8 BOM encoding
Visualization Features
Chart Enhancements
- Series limit grouping (PR #34308) - New "Group remaining as Others" feature for time series charts aggregates series beyond the limit
-
DeckGL cross-filtering (PR #33789) - Cross-filtering now works with deck.gl map visualizations
-
OpenStreetMap as default (PR #34204) - Replaced Mapbox with OpenStreetMap as the default tile provider, making maps work out-of-the-box without API keys
Performance & Speed
- Async buildQuery support (PR #34383) - Charts can now perform complex multi-phase queries with proper loading states
- Optimized API calls (PR #34079) - Chart properties modal now makes a single optimized API call instead of multiple requests
- Retry on gateway errors (PR #34290) - SupersetClient now automatically retries on 502-504 errors with exponential backoff
Internationalization
Language Support Improvements
- Japanese translation updates (PR #33974) - Comprehensive improvements to Japanese localization
- Catalan language support (PR #33953) - Complete Catalan translation added
- Spanish translation updates (PR #34206) - Enhanced Spanish translations
- Language switching fixes (PR #34049) - Fixed menu elements remaining in previous language when switching
Developer Experience
API & Development Improvements
- GitHub Codespaces support (PR #34376) - Full development environment configuration for cloud development
- Claude Code integration (PR #34231) - AI-assisted development support via GitHub Actions
- LLM context guides (PR #34194) - Comprehensive documentation for AI development tools
Bug Fixes
Charts
- Fixed unquoted 'Others' literal in GROUP BY clause (PR #34390)
- Fixed missing dataset display for denied access (PR #34129)
- Fixed annotation layer error messages (PR #34074)
- Fixed pivot table HTML rendering (PR #34351)
- Fixed chart height calculation (PR #34224)
Dashboards
- Fixed native filter validation (PR #33958)
- Fixed CSS template crash on invalid selectors (PR #33971)
- Fixed subitem selection on download menu (PR #33933)
- Fixed unsaved changes modal (PR #33809)
Data Sources
- Fixed Snowflake boolean filters (PR #34199)
- Fixed Databricks string escaping (PR #34180)
- Fixed SQL Lab database ID handling (PR #33955)
- Fixed RLS subquery aliases (PR #34374)
Under the Hood
Performance Optimizations
- Replaced
querystring
with nativeURLSearchParams
API (PR #33967) - Improved sqlglot parsing efficiency (PR #34270)
- Optimized big number with trendline queries (PR #34296)
Code Refactoring
- Removed duplicate logic in models (PR #34177)
- Modernized react-syntax-highlighter wrapper (PR #34028)
- Cleaned up Flask/Jinja templates (PR #34093)
Testing Improvements
- Upgraded Jest to v30 (PR #33979)
- Moved auth tests to component tests (PR #34057)
- Fixed TypeScript pre-commit hook (PR #34275)
Build System Updates
- Docker compose light mode (PR #34324)
- Editable mode in Docker images (PR #34146)
- ESLint v9 migration for docs (PR #34207)
Security & Reliability
- Enhanced disallowed SQL functions list (PR #33084)
- Fixed anonymous code execution in Postgres (PR #34412)
- Improved error handling with 422 status for invalid SQL (PR #34303)
- Added security view menu feature flag (PR #34023)
Breaking Changes
- Default map provider changed to OpenStreetMap - If you're using Mapbox, you'll need to explicitly configure it (PR #34204)
- Chromium no longer included by default in Docker - Set
INCLUDE_CHROMIUM=true
during build if needed (PR #34258) - CSV exports now use UTF-8 BOM - May affect automated processing tools (PR #34235)
Community Contributors
We're grateful to ALL 46 contributors who made this release possible!
Contributors:
@mistercrunch (24 PRs), @betodealmeida (13 PRs), @msyavuz (11 PRs), @dependabot[bot] (76 PRs), @harikirank (4 PRs), @gabotorresruiz (4 PRs)
@michael-s-molina (3 PRs), @Vitor-Avila (7 PRs), @justinpark (3 PRs), @EnxDev (3 PRs), @LisaHusband (2 PRs), @hainenber (3 PRs), @sadpandajoe (3 PRs), @DamianPendrak (3 PRs), @geido (2 PRs), @kgabryje (2 PRs), @kasiazjc (2 PRs), @cbausaonebox (2 PRs), @SBIN2010 (3 PRs)
Contributors with 1 PR:
@yousoph, @alexandrusoare, @jansule, @fardin-developer, @imcewen02, @junyoneyama, @ongdisheng, @rusackas, @aikawa-ohno, @amaannawab923, @dnskr, @richardfogaca, @plavacquery, @payose, @tahvane1, @Quatters, @mdusmanalvi, @sha174n, @Habeeb556, @gerbermichi, @eriks47, @PolinaFam, @HarshithGamini
First-Time Contributors:
Special welcome to our first-time contributors who made their debut this month!
- @gabotorresruiz (4 PRs) - Added unsaved changes modal and theme alignment features
- @LisaHusband (2 PRs) - Fixed Handlebars chart controls and improved categorization
- @harikirank (4 PRs) - Documentation improvements and Oracle column length updates
- @mdusmanalvi (1 PR) - Added pivot table Excel export feature
- @cbausaonebox (2 PRs) - Spanish translations and database modal fixes
- @eriks47 (1 PR) - Updated Latvia geographical data
- @PolinaFam (1 PR) - Fixed language switching behavior
- @HarshithGamini (1 PR) - Fixed CSS template crash issues
We also appreciate the automated contributions from @dependabot[bot] keeping our dependencies secure and up-to-date!
Looking Ahead
July 2025 has been an exceptional month for Apache Superset! The focus on theming, data handling, and developer experience has made Superset more powerful and accessible than ever. With new visualizations like Gantt charts and AG Grid tables, enhanced export capabilities, and improved internationalization, Superset continues to evolve as a world-class data exploration platform.
The community's dedication to both innovation and stability shines through in every PR. From major feature additions to critical bug fixes, each contribution makes Superset better for everyone. We're excited to see what August brings!
This update covers 205 merged pull requests. View them all: #34433, #34432, #34431, #34429, #34424, #34416, #34412, #34411, #34409, #34406, #34391, #34390, #34389, #34387, #34383, #34381, #34380, #34379, #34376, #34374, #34371, #34360, #34359, #34351, #34341, #34339, #34335, #34326, #34324, #34318, #34317, #34315, #34311, #34308, #34307, #34305, #34303, #34302, #34300, #34299, #34296, #34294, #34293, #34292, #34290, #34289, #34288, #34285, #34282, #34279, #34275, #34273, #34272, #34270, #34268, #34265, #34263, #34262, #34261, #34259, #34258, #34253, #34244, #34237, #34235, #34233, #34231, #34229, #34224, #34218, #34217, #34216, #34215, #34213, #34207, #34206, #34204, #34199, #34194, #34193, #34192, #34188, #34182, #34181, #34180, #34179, #34178, #34177, #34171, #34163, #34156, #34153, #34149, #34147, #34146, #34145, #34144, #34140, #34139, #34138, #34137, #34129, #34127, #34126, #34125, #34119, #34118, #34115, #34114, #34113, #34112, #34108, #34104, #34103, #34098, #34097, #34095, #34093, #34090, #34080, #34079, #34075, #34074, #34067, #34066, #34059, #34057, #34056, #34049, #34043, #34042, #34041, #34039, #34038, #34037, #34035, #34036, #34034, #34033, #34031, #34029, #34028, #34023, #34018, #34017, #34016, #34014, #34008, #34004, #34003, #34002, #34001, #34000, #33999, #33997, #33995, #33992, #33991, #33990, #33989, #33987, #33986, #33985, #33982, #33979, #33974, #33971, #33967, #33958, #33955, #33954, #33953, #33933, #33809, #33789, #33769, #33736, #33716, #33603, #33569, #33517, #33496, #33486, #33485, #33481, #33450, #33170, #33084, #32953, #32949, #32946, #32945, #32928, #32870, #32734, #32441, #32439, #32093, #32082, #32080, #32077, #31560, #31534, #31495, #30119