Skip to content

chore: move the admin dashboard to the private superset-sh/admin repo - #8374

Merged
Kitenite merged 3 commits into
mainfrom
move-admin-to-private-repo
Oct 11, 2026
Merged

Kitenite merged 3 commits into
mainfrom
move-admin-to-private-repo

Conversation

@Kitenite

@Kitenite Kitenite commented Oct 10, 2026 •

Copy link
Copy Markdown
Member

Summary

The admin dashboard shows revenue, burn, cash and ARR. This moves it, and the server code only it used, out of this public repo into the private superset-sh/admin repo.

  • Already live: admin.superset.sh is served by the new Vercel project superset-admin. Every URL needs a Vercel team login (Vercel Authentication on all deployments), and the app also checks for an @superset.sh session.
  • Own API: the new app serves its own tRPC, so nothing calls business.*, growth.* or analytics.getInsightResults any more. Desktop, mobile and CLI never called them.

What this PR removes

  • apps/admin
  • The business and growth routers, analytics.getInsightResults, and their clients: PostHog insights and HogQL, Mercury, Stripe Sigma, Search Console, Discord and GitHub stats, the metric cache.
  • The API's /api/analytics/jobs/refresh-mrr job. The new repo runs it as an hourly Vercel cron.
  • The deploy-admin jobs in production and preview, the admin row in the preview comment, and the Mercury and Search Console env the API no longer reads.
  • apps/admin from Lingui extraction. The catalogs lose only admin strings: 9,724 lines deleted, nothing added, no missing translations.

Hiring

#8367, #8368 and #8369 landed the hiring pipeline while this was open. Its UI, its router (hiring.*), the Notion import script and bun hiring move to superset-sh/admin too (superset-sh/admin#3). bun hiring now calls admin.superset.sh with an API key. The verified-email rule (hasAdminAccess) stays here in adminProcedure. The hiring_* tables stay in packages/db.

What stays

  • star-history, used by marketing's starchart (moved to lib/star-history.ts).
  • fetchWithTimeout, used by account purge (lib/fetch-with-timeout.ts).
  • admin.deleteUser and admin.setMyPassword.
  • NEXT_PUBLIC_ADMIN_URL, because auth still trusts the admin origin.

After merge

  • Delete the QStash schedule for /api/analytics/jobs/refresh-mrr.
  • Delete the old admin Vercel project and the VERCEL_ADMIN_PROJECT_ID and NEXT_PUBLIC_SENTRY_DSN_ADMIN secrets.

Checks

  • Lint, sherif and check:i18n pass.
  • Tests pass: trpc 557, i18n 164, api 236.
  • Locally, typecheck of trpc, api and marketing shows the same better-auth plugin type errors in untouched auth and organization files that this machine's install produces on main. CI typecheck on main passes, so CI on this PR is the real check.

Removing these files from main does not remove them from git history.


Summary by cubic

Moves the admin dashboard and the server code only it used out of this public repo into the private superset-sh/admin repo. admin.superset.sh is already live from the new Vercel project superset-admin, which serves its own tRPC, so nothing here calls business.*, growth.*, or analytics.getInsightResults any more.

Removed

  • apps/admin, the business, growth, and hiring routers, analytics.getInsightResults, their PostHog, Mercury, Stripe Sigma, Search Console, Discord and GitHub clients, and the metric cache.
  • The bun hiring script, its args helper, and the web-url check, which now call admin.superset.sh with an API key.
  • The /api/analytics/jobs/refresh-mrr job, now an hourly Vercel cron in the new repo.
  • The deploy-admin jobs, the admin preview-comment row, and the Mercury and Search Console env vars.
  • Admin and hiring strings from Lingui extraction; the catalogs lost only those strings, with no missing translations.

Kept: star-history for marketing's starchart, fetchWithTimeout for account purge, admin.deleteUser and admin.setMyPassword, the verified-email rule in adminProcedure, and NEXT_PUBLIC_ADMIN_URL.

After merge

  • Delete the QStash schedule for /api/analytics/jobs/refresh-mrr, the old admin Vercel project, and the VERCEL_ADMIN_PROJECT_ID and NEXT_PUBLIC_SENTRY_DSN_ADMIN secrets.

Written for commit c166d23. Summary will update on new commits.

View guided diff Turn on auto-fix

Summary by CodeRabbit

  • Removals
    • The Admin app is no longer available, including its dashboards, growth and business reports, and hiring tools.
    • Admin-specific preview and production deployments have been removed; other preview services and the marketing deployment remain.
    • Related analytics and hiring capabilities are no longer available through the API.
    • Google Search Console settings and several finance and analytics credentials have been removed from environment templates and deployment settings.
    • Translations associated with removed Admin features have also been removed.

The admin app and the server code only it used (business, growth and
analytics.getInsightResults, their PostHog/Mercury/Stripe Sigma/Search
Console clients and the metric cache) now live in superset-sh/admin,
deployed as the Vercel project superset-admin behind Vercel
Authentication. admin.superset.sh already points there, and the new app
serves its own tRPC, so nothing calls these procedures any more.

- Drop the deploy-admin jobs, the preview comment row, and the Mercury
  and Search Console env the API no longer needs.
- The hourly MRR/NRR refresh moved to a Vercel cron in the new repo;
  the QStash schedule for /api/analytics/jobs/refresh-mrr can be deleted.
- star-history stays here for marketing's starchart, and fetchWithTimeout
  stays for account purge. admin.setMyPassword and admin.deleteUser stay.
- Lingui no longer extracts apps/admin; the catalogs lose only its
  strings. The private app keeps English text as its fallback.
@coderabbitai

coderabbitai Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 54a9d050-5984-43d3-ab3e-173772966b7a





📥 Commits

Reviewing files that changed from the base of the PR and between a3543f4 and cc022a9.






⛔ Files ignored due to path filters (5)
  • apps/admin/public/favicon-192.png is excluded by !**/*.png
  • apps/admin/public/icon.png is excluded by !**/*.png
  • apps/admin/public/yc-logo.png is excluded by !**/*.png
  • apps/admin/src/app/favicon.ico is excluded by !**/*.ico
  • bun.lock is excluded by !**/*.lock





📒 Files selected for processing (186)
  • .env.example
  • .env.local.example
  • .github/templates/preview-comment.md
  • .github/workflows/deploy-preview.yml
  • .github/workflows/deploy-production.yml
  • apps/admin/next.config.ts
  • apps/admin/package.json
  • apps/admin/postcss.config.mjs
  • apps/admin/sentry.edge.config.ts
  • apps/admin/sentry.server.config.ts
  • apps/admin/src/app/(dashboard)/components/AppSidebar/AppSidebar.tsx
  • apps/admin/src/app/(dashboard)/components/AppSidebar/components/AppSidebarHeader/AppSidebarHeader.tsx
  • apps/admin/src/app/(dashboard)/components/AppSidebar/components/AppSidebarHeader/index.ts
  • apps/admin/src/app/(dashboard)/components/AppSidebar/components/NavUser/NavUser.tsx
  • apps/admin/src/app/(dashboard)/components/AppSidebar/components/NavUser/index.ts
  • apps/admin/src/app/(dashboard)/components/AppSidebar/components/SearchForm/SearchForm.tsx
  • apps/admin/src/app/(dashboard)/components/AppSidebar/components/SearchForm/index.ts
  • apps/admin/src/app/(dashboard)/components/AppSidebar/index.ts
  • apps/admin/src/app/(dashboard)/components/BurnByVendorTile/BurnByVendorTile.tsx
  • apps/admin/src/app/(dashboard)/components/BurnByVendorTile/index.ts
  • apps/admin/src/app/(dashboard)/components/CashBalanceTile/CashBalanceTile.tsx
  • apps/admin/src/app/(dashboard)/components/CashBalanceTile/index.ts
  • apps/admin/src/app/(dashboard)/components/ChurnHeatmapTile/ChurnHeatmapTile.tsx
  • apps/admin/src/app/(dashboard)/components/ChurnHeatmapTile/index.ts
  • apps/admin/src/app/(dashboard)/components/CohortGrid/CohortGrid.tsx
  • apps/admin/src/app/(dashboard)/components/CohortGrid/index.ts
  • apps/admin/src/app/(dashboard)/components/EnterpriseArrTile/EnterpriseArrTile.tsx
  • apps/admin/src/app/(dashboard)/components/EnterpriseArrTile/index.ts
  • apps/admin/src/app/(dashboard)/components/FunnelChart/FunnelChart.tsx
  • apps/admin/src/app/(dashboard)/components/FunnelChart/index.ts
  • apps/admin/src/app/(dashboard)/components/HogQLLineTile/HogQLLineTile.tsx
  • apps/admin/src/app/(dashboard)/components/HogQLLineTile/index.ts
  • apps/admin/src/app/(dashboard)/components/InsightTileFrame/InsightTileFrame.tsx
  • apps/admin/src/app/(dashboard)/components/InsightTileFrame/index.ts
  • apps/admin/src/app/(dashboard)/components/LogoRetentionTile/LogoRetentionTile.tsx
  • apps/admin/src/app/(dashboard)/components/LogoRetentionTile/index.ts
  • apps/admin/src/app/(dashboard)/components/MrrTile/MrrTile.tsx
  • apps/admin/src/app/(dashboard)/components/MrrTile/MrrTooltip.tsx
  • apps/admin/src/app/(dashboard)/components/MrrTile/index.ts
  • apps/admin/src/app/(dashboard)/components/NetBurnTile/NetBurnTile.tsx
  • apps/admin/src/app/(dashboard)/components/NetBurnTile/index.ts
  • apps/admin/src/app/(dashboard)/components/NrrTile/NrrTile.tsx
  • apps/admin/src/app/(dashboard)/components/NrrTile/NrrTooltip.tsx
  • apps/admin/src/app/(dashboard)/components/NrrTile/index.ts
  • apps/admin/src/app/(dashboard)/components/OrgAdoptionTile/OrgAdoptionTile.tsx
  • apps/admin/src/app/(dashboard)/components/OrgAdoptionTile/index.ts
  • apps/admin/src/app/(dashboard)/components/PageBreadcrumb/PageBreadcrumb.tsx
  • apps/admin/src/app/(dashboard)/components/PageBreadcrumb/index.ts
  • apps/admin/src/app/(dashboard)/components/PaywallFunnelTile/PaywallFunnelTile.tsx
  • apps/admin/src/app/(dashboard)/components/PaywallFunnelTile/index.ts
  • apps/admin/src/app/(dashboard)/components/PostHogFunnelTile/PostHogFunnelTile.tsx
  • apps/admin/src/app/(dashboard)/components/PostHogFunnelTile/index.ts
  • apps/admin/src/app/(dashboard)/components/PostHogQueryLink/PostHogQueryLink.tsx
  • apps/admin/src/app/(dashboard)/components/PostHogQueryLink/index.ts
  • apps/admin/src/app/(dashboard)/components/ResetLayoutButton/ResetLayoutButton.tsx
  • apps/admin/src/app/(dashboard)/components/ResetLayoutButton/index.ts
  • apps/admin/src/app/(dashboard)/components/RetentionGridTile/RetentionGridTile.tsx
  • apps/admin/src/app/(dashboard)/components/RetentionGridTile/index.ts
  • apps/admin/src/app/(dashboard)/components/SignupToPaidTile/SignupToPaidTile.tsx
  • apps/admin/src/app/(dashboard)/components/SignupToPaidTile/index.ts
  • apps/admin/src/app/(dashboard)/components/StarHistoryTile/StarHistoryTile.tsx
  • apps/admin/src/app/(dashboard)/components/StarHistoryTile/index.ts
  • apps/admin/src/app/(dashboard)/components/TileGrid/TileGrid.tsx
  • apps/admin/src/app/(dashboard)/components/TileGrid/index.ts
  • apps/admin/src/app/(dashboard)/components/TileSection/TileSection.tsx
  • apps/admin/src/app/(dashboard)/components/TileSection/index.ts
  • apps/admin/src/app/(dashboard)/components/TrendSeriesTile/TrendSeriesTile.tsx
  • apps/admin/src/app/(dashboard)/components/TrendSeriesTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/AiAgentsTile/AiAgentsTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/AiAgentsTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/AiReferralsTile/AiReferralsTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/AiReferralsTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/ChannelMixTile/ChannelMixTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/ChannelMixTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/ContentInventoryTile/ContentInventoryTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/ContentInventoryTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/ConversionsTile/ConversionsTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/ConversionsTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/DiscordTile/DiscordTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/DiscordTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/GithubTile/GithubTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/GithubTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/LandingSectionsTile/LandingSectionsTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/LandingSectionsTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/RangeSwitch/RangeSwitch.tsx
  • apps/admin/src/app/(dashboard)/growth/components/RangeSwitch/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/RankedTable/RankedTable.tsx
  • apps/admin/src/app/(dashboard)/growth/components/RankedTable/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/SearchConsoleTile/SearchConsoleTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/SearchConsoleTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/SearchEnginesTile/SearchEnginesTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/SearchEnginesTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/StatStrip/StatStrip.tsx
  • apps/admin/src/app/(dashboard)/growth/components/StatStrip/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/TileDetailDialog/TileDetailDialog.tsx
  • apps/admin/src/app/(dashboard)/growth/components/TileDetailDialog/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/TopLandingPagesTile/TopLandingPagesTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/TopLandingPagesTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/TopReferrersTile/TopReferrersTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/TopReferrersTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/WeeklySeriesChart/WeeklySeriesChart.tsx
  • apps/admin/src/app/(dashboard)/growth/components/WeeklySeriesChart/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/WeeklyTile/WeeklyTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/WeeklyTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/hooks/useGrowthLabels/index.ts
  • apps/admin/src/app/(dashboard)/growth/hooks/useGrowthLabels/useGrowthLabels.ts
  • apps/admin/src/app/(dashboard)/growth/page.tsx
  • apps/admin/src/app/(dashboard)/growth/providers/GrowthRangeProvider/GrowthRangeProvider.tsx
  • apps/admin/src/app/(dashboard)/growth/providers/GrowthRangeProvider/index.ts
  • apps/admin/src/app/(dashboard)/hooks/useElementWidth/index.ts
  • apps/admin/src/app/(dashboard)/hooks/useElementWidth/useElementWidth.ts
  • apps/admin/src/app/(dashboard)/hooks/useInsightResults/index.ts
  • apps/admin/src/app/(dashboard)/hooks/useInsightResults/useInsightResults.ts
  • apps/admin/src/app/(dashboard)/hooks/useSigmaMetric/index.ts
  • apps/admin/src/app/(dashboard)/hooks/useSigmaMetric/useSigmaMetric.ts
  • apps/admin/src/app/(dashboard)/layout.tsx
  • apps/admin/src/app/(dashboard)/loading.tsx
  • apps/admin/src/app/(dashboard)/page.tsx
  • apps/admin/src/app/(dashboard)/providers/TileLayoutProvider/TileLayoutProvider.tsx
  • apps/admin/src/app/(dashboard)/providers/TileLayoutProvider/index.ts
  • apps/admin/src/app/(dashboard)/utils/chartAxis/chartAxis.ts
  • apps/admin/src/app/(dashboard)/utils/chartAxis/index.ts
  • apps/admin/src/app/(dashboard)/utils/posthogQueryUrl/index.ts
  • apps/admin/src/app/(dashboard)/utils/posthogQueryUrl/posthogQueryUrl.ts
  • apps/admin/src/app/global-error.tsx
  • apps/admin/src/app/globals.css
  • apps/admin/src/app/layout.tsx
  • apps/admin/src/app/providers.tsx
  • apps/admin/src/components/PostHogUserIdentifier/PostHogUserIdentifier.tsx
  • apps/admin/src/components/PostHogUserIdentifier/index.ts
  • apps/admin/src/env.ts
  • apps/admin/src/instrumentation-client.ts
  • apps/admin/src/instrumentation.ts
  • apps/admin/src/lib/i18n-server.ts
  • apps/admin/src/trpc/query-client.ts
  • apps/admin/src/trpc/react.tsx
  • apps/admin/src/trpc/server.tsx
  • apps/admin/tsconfig.json
  • apps/api/src/app/api/analytics/jobs/refresh-mrr/route.ts
  • packages/i18n/lingui.config.ts
  • packages/i18n/locales/cs/messages.po
  • packages/i18n/locales/de/messages.po
  • packages/i18n/locales/en/messages.po
  • packages/i18n/locales/es/messages.po
  • packages/i18n/locales/fr/messages.po
  • packages/i18n/locales/id/messages.po
  • packages/i18n/locales/it/messages.po
  • packages/i18n/locales/ja/messages.po
  • packages/i18n/locales/ko/messages.po
  • packages/i18n/locales/nl/messages.po
  • packages/i18n/locales/pl/messages.po
  • packages/i18n/locales/pt-BR/messages.po
  • packages/i18n/locales/ru/messages.po
  • packages/i18n/locales/tr/messages.po
  • packages/i18n/locales/vi/messages.po
  • packages/i18n/locales/zh-CN/messages.po
  • packages/i18n/locales/zh-TW/messages.po
  • packages/i18n/test/rsc-seeding.test.ts
  • packages/trpc/package.json
  • packages/trpc/src/env.ts
  • packages/trpc/src/lib/fetch-with-timeout.ts
  • packages/trpc/src/lib/growth/cache.test.ts
  • packages/trpc/src/lib/growth/cache.ts
  • packages/trpc/src/lib/growth/discord.ts
  • packages/trpc/src/lib/growth/github.test.ts
  • packages/trpc/src/lib/growth/github.ts
  • packages/trpc/src/lib/growth/paywall-funnel.ts
  • packages/trpc/src/lib/growth/search-console.test.ts
  • packages/trpc/src/lib/growth/search-console.ts
  • packages/trpc/src/lib/growth/site.ts
  • packages/trpc/src/lib/growth/sitemap.test.ts
  • packages/trpc/src/lib/growth/sitemap.ts
  • packages/trpc/src/lib/growth/traffic.ts
  • packages/trpc/src/lib/growth/weeks.test.ts
  • packages/trpc/src/lib/growth/weeks.ts
  • packages/trpc/src/lib/metric-cache.ts
  • packages/trpc/src/lib/posthog-client.ts
  • packages/trpc/src/lib/posthog-hogql.ts
  • packages/trpc/src/lib/posthog-persons.ts
  • packages/trpc/src/lib/star-history.test.ts
  • packages/trpc/src/lib/star-history.ts
  • packages/trpc/src/root.ts
  • packages/trpc/src/router/analytics/analytics.ts
  • packages/trpc/src/router/analytics/business.ts
  • packages/trpc/src/router/analytics/growth.ts
  • packages/trpc/src/router/analytics/insight-registry.ts





💤 Files with no reviewable changes (158)
  • apps/admin/src/app/(dashboard)/growth/components/DiscordTile/index.ts
  • apps/admin/src/app/(dashboard)/components/PaywallFunnelTile/index.ts
  • apps/admin/tsconfig.json
  • apps/admin/src/app/(dashboard)/components/SignupToPaidTile/index.ts
  • apps/admin/postcss.config.mjs
  • apps/admin/src/app/(dashboard)/growth/components/ChannelMixTile/index.ts
  • apps/admin/src/app/(dashboard)/providers/TileLayoutProvider/index.ts
  • apps/admin/src/app/(dashboard)/components/LogoRetentionTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/WeeklySeriesChart/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/ConversionsTile/index.ts
  • apps/admin/src/app/(dashboard)/hooks/useInsightResults/index.ts
  • apps/admin/src/app/(dashboard)/components/AppSidebar/index.ts
  • apps/admin/src/app/(dashboard)/hooks/useSigmaMetric/index.ts
  • apps/admin/src/app/(dashboard)/components/InsightTileFrame/index.ts
  • apps/admin/src/app/(dashboard)/components/MrrTile/index.ts
  • apps/admin/src/app/(dashboard)/components/AppSidebar/components/SearchForm/index.ts
  • apps/admin/src/app/(dashboard)/utils/chartAxis/index.ts
  • apps/admin/src/app/(dashboard)/components/OrgAdoptionTile/index.ts
  • apps/admin/src/app/(dashboard)/components/CashBalanceTile/index.ts
  • apps/admin/src/app/global-error.tsx
  • apps/admin/src/app/(dashboard)/growth/components/SearchEnginesTile/index.ts
  • apps/admin/src/app/(dashboard)/components/ResetLayoutButton/index.ts
  • apps/admin/src/app/(dashboard)/components/PostHogQueryLink/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/ContentInventoryTile/index.ts
  • apps/admin/src/app/(dashboard)/hooks/useElementWidth/index.ts
  • apps/admin/src/app/(dashboard)/components/NrrTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/RangeSwitch/RangeSwitch.tsx
  • apps/admin/src/app/(dashboard)/growth/components/TopLandingPagesTile/index.ts
  • apps/admin/src/components/PostHogUserIdentifier/index.ts
  • apps/admin/sentry.server.config.ts
  • apps/admin/src/app/(dashboard)/growth/providers/GrowthRangeProvider/index.ts
  • apps/admin/src/instrumentation-client.ts
  • packages/i18n/lingui.config.ts
  • apps/admin/src/app/(dashboard)/components/PostHogFunnelTile/index.ts
  • .env.local.example
  • apps/admin/src/app/(dashboard)/growth/components/RangeSwitch/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/WeeklyTile/index.ts
  • apps/admin/src/app/(dashboard)/components/AppSidebar/components/AppSidebarHeader/AppSidebarHeader.tsx
  • apps/admin/src/app/(dashboard)/growth/components/RankedTable/index.ts
  • apps/admin/src/app/(dashboard)/components/ResetLayoutButton/ResetLayoutButton.tsx
  • apps/admin/src/app/(dashboard)/components/AppSidebar/components/SearchForm/SearchForm.tsx
  • apps/admin/src/app/(dashboard)/components/FunnelChart/index.ts
  • apps/admin/src/app/(dashboard)/components/CohortGrid/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/GithubTile/GithubTile.tsx
  • apps/admin/src/app/(dashboard)/components/SignupToPaidTile/SignupToPaidTile.tsx
  • apps/admin/src/app/(dashboard)/utils/posthogQueryUrl/index.ts
  • apps/admin/src/app/(dashboard)/growth/hooks/useGrowthLabels/index.ts
  • apps/admin/src/app/globals.css
  • apps/admin/src/app/(dashboard)/growth/components/SearchConsoleTile/index.ts
  • apps/admin/src/trpc/query-client.ts
  • apps/admin/src/instrumentation.ts
  • apps/admin/src/app/(dashboard)/components/LogoRetentionTile/LogoRetentionTile.tsx
  • apps/admin/src/app/(dashboard)/components/CashBalanceTile/CashBalanceTile.tsx
  • apps/admin/src/app/(dashboard)/page.tsx
  • apps/admin/src/app/(dashboard)/components/TileSection/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/GithubTile/index.ts
  • apps/admin/src/app/(dashboard)/components/NetBurnTile/index.ts
  • apps/admin/src/lib/i18n-server.ts
  • apps/admin/src/app/(dashboard)/growth/components/StatStrip/index.ts
  • apps/admin/src/app/(dashboard)/components/TileGrid/index.ts
  • apps/admin/src/app/(dashboard)/components/RetentionGridTile/RetentionGridTile.tsx
  • apps/admin/src/app/(dashboard)/utils/posthogQueryUrl/posthogQueryUrl.ts
  • apps/admin/src/app/(dashboard)/components/RetentionGridTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/AiAgentsTile/index.ts
  • .github/templates/preview-comment.md
  • apps/admin/src/app/(dashboard)/growth/components/TileDetailDialog/index.ts
  • apps/admin/src/app/(dashboard)/growth/page.tsx
  • .env.example
  • apps/admin/sentry.edge.config.ts
  • apps/admin/src/app/(dashboard)/components/MrrTile/MrrTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/LandingSectionsTile/index.ts
  • apps/admin/src/app/(dashboard)/providers/TileLayoutProvider/TileLayoutProvider.tsx
  • apps/admin/src/app/(dashboard)/components/NrrTile/NrrTile.tsx
  • apps/admin/src/app/(dashboard)/components/InsightTileFrame/InsightTileFrame.tsx
  • apps/admin/src/app/(dashboard)/components/StarHistoryTile/index.ts
  • apps/admin/src/app/(dashboard)/hooks/useElementWidth/useElementWidth.ts
  • apps/admin/src/app/(dashboard)/growth/components/TopReferrersTile/TopReferrersTile.tsx
  • apps/admin/src/app/(dashboard)/components/TrendSeriesTile/index.ts
  • apps/admin/src/trpc/server.tsx
  • apps/admin/src/app/(dashboard)/growth/components/TileDetailDialog/TileDetailDialog.tsx
  • apps/admin/src/app/(dashboard)/growth/components/ConversionsTile/ConversionsTile.tsx
  • apps/admin/src/app/(dashboard)/components/PostHogQueryLink/PostHogQueryLink.tsx
  • apps/admin/src/app/(dashboard)/growth/components/WeeklySeriesChart/WeeklySeriesChart.tsx
  • apps/admin/src/app/(dashboard)/growth/components/StatStrip/StatStrip.tsx
  • apps/admin/src/app/(dashboard)/components/ChurnHeatmapTile/ChurnHeatmapTile.tsx
  • apps/admin/src/app/(dashboard)/components/AppSidebar/components/AppSidebarHeader/index.ts
  • apps/admin/src/app/(dashboard)/components/NetBurnTile/NetBurnTile.tsx
  • apps/admin/src/app/(dashboard)/components/ChurnHeatmapTile/index.ts
  • apps/admin/src/app/(dashboard)/components/BurnByVendorTile/BurnByVendorTile.tsx
  • apps/admin/src/app/(dashboard)/loading.tsx
  • apps/admin/src/app/(dashboard)/components/NrrTile/NrrTooltip.tsx
  • apps/admin/src/app/(dashboard)/components/TileSection/TileSection.tsx
  • apps/admin/src/app/providers.tsx
  • apps/admin/src/app/(dashboard)/layout.tsx
  • apps/admin/src/app/(dashboard)/components/PageBreadcrumb/PageBreadcrumb.tsx
  • apps/admin/src/app/(dashboard)/growth/components/SearchEnginesTile/SearchEnginesTile.tsx
  • apps/admin/src/app/(dashboard)/components/HogQLLineTile/HogQLLineTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/RankedTable/RankedTable.tsx
  • apps/admin/src/app/(dashboard)/components/OrgAdoptionTile/OrgAdoptionTile.tsx
  • packages/trpc/src/env.ts
  • apps/admin/src/app/(dashboard)/components/PostHogFunnelTile/PostHogFunnelTile.tsx
  • apps/admin/src/app/(dashboard)/hooks/useInsightResults/useInsightResults.ts
  • apps/admin/src/app/(dashboard)/growth/components/SearchConsoleTile/SearchConsoleTile.tsx
  • apps/admin/src/app/layout.tsx
  • apps/admin/src/app/(dashboard)/growth/components/TopLandingPagesTile/TopLandingPagesTile.tsx
  • apps/admin/src/app/(dashboard)/components/HogQLLineTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/AiReferralsTile/AiReferralsTile.tsx
  • apps/admin/src/app/(dashboard)/components/FunnelChart/FunnelChart.tsx
  • apps/admin/src/app/(dashboard)/components/EnterpriseArrTile/index.ts
  • .github/workflows/deploy-production.yml
  • apps/admin/src/app/(dashboard)/growth/components/AiAgentsTile/AiAgentsTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/LandingSectionsTile/LandingSectionsTile.tsx
  • apps/admin/src/app/(dashboard)/growth/hooks/useGrowthLabels/useGrowthLabels.ts
  • apps/admin/src/app/(dashboard)/components/TileGrid/TileGrid.tsx
  • apps/admin/src/app/(dashboard)/growth/components/TopReferrersTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/DiscordTile/DiscordTile.tsx
  • apps/admin/src/app/(dashboard)/components/AppSidebar/components/NavUser/index.ts
  • apps/admin/src/app/(dashboard)/components/PaywallFunnelTile/PaywallFunnelTile.tsx
  • apps/admin/package.json
  • apps/admin/src/app/(dashboard)/hooks/useSigmaMetric/useSigmaMetric.ts
  • apps/admin/src/app/(dashboard)/components/StarHistoryTile/StarHistoryTile.tsx
  • apps/admin/src/app/(dashboard)/components/TrendSeriesTile/TrendSeriesTile.tsx
  • apps/admin/src/app/(dashboard)/components/EnterpriseArrTile/EnterpriseArrTile.tsx
  • apps/admin/src/app/(dashboard)/growth/components/ContentInventoryTile/ContentInventoryTile.tsx
  • apps/admin/src/app/(dashboard)/components/AppSidebar/AppSidebar.tsx
  • apps/admin/src/trpc/react.tsx
  • apps/admin/src/app/(dashboard)/growth/components/WeeklyTile/WeeklyTile.tsx
  • apps/admin/src/app/(dashboard)/utils/chartAxis/chartAxis.ts
  • apps/admin/src/app/(dashboard)/components/MrrTile/MrrTooltip.tsx
  • apps/admin/src/app/(dashboard)/growth/components/AiReferralsTile/index.ts
  • apps/admin/src/app/(dashboard)/growth/providers/GrowthRangeProvider/GrowthRangeProvider.tsx
  • apps/api/src/app/api/analytics/jobs/refresh-mrr/route.ts
  • apps/admin/src/components/PostHogUserIdentifier/PostHogUserIdentifier.tsx
  • apps/admin/src/app/(dashboard)/components/BurnByVendorTile/index.ts
  • packages/trpc/src/root.ts
  • apps/admin/src/env.ts
  • apps/admin/src/app/(dashboard)/components/CohortGrid/CohortGrid.tsx
  • apps/admin/src/app/(dashboard)/components/AppSidebar/components/NavUser/NavUser.tsx
  • apps/admin/next.config.ts
  • apps/admin/src/app/(dashboard)/components/PageBreadcrumb/index.ts
  • apps/admin/src/app/(dashboard)/growth/components/ChannelMixTile/ChannelMixTile.tsx
  • packages/i18n/locales/tr/messages.po
  • packages/i18n/locales/fr/messages.po
  • packages/i18n/locales/vi/messages.po
  • packages/i18n/locales/zh-CN/messages.po
  • packages/i18n/locales/zh-TW/messages.po
  • packages/i18n/locales/pl/messages.po
  • packages/i18n/locales/id/messages.po
  • packages/i18n/locales/pt-BR/messages.po
  • packages/i18n/locales/ko/messages.po
  • packages/i18n/locales/en/messages.po
  • packages/i18n/locales/cs/messages.po
  • packages/i18n/locales/nl/messages.po
  • packages/i18n/locales/ru/messages.po
  • packages/i18n/locales/ja/messages.po
  • packages/i18n/locales/de/messages.po
  • packages/i18n/locales/it/messages.po
  • packages/i18n/locales/es/messages.po





Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 1 remain after this review.







📝 Walkthrough
📝 Walkthrough
📝 Walkthrough
📝 Walkthrough
📝 Walkthrough

Walkthrough

The pull request removes the Admin application and its dashboard functionality. It also removes related analytics procedures, a scheduled refresh route, Admin deployment jobs, environment settings, and Admin-related translations.

Changes

Admin application removal

Layer / File(s) Summary
Dashboard and Growth pages
apps/admin/src/app/(dashboard)/*
The Company Metrics dashboard and Growth page, their layouts, tiles, chart components, hooks, providers, and supporting utilities are deleted. The Admin app’s root layout, providers, instrumentation, configuration, and package manifest are also removed.
Analytics APIs and deployment
apps/api/src/app/api/analytics/jobs/refresh-mrr/route.ts, packages/trpc/*, .github/workflows/deploy-*.yml, .github/templates/preview-comment.md
The MRR/NRR refresh route and Admin-only analytics procedures and routers are removed. Preview and production workflows no longer deploy Admin, and deployment environment settings and the Admin preview-comment row are removed.
Environment and translation cleanup
.env.example, .env.local.example, packages/i18n/*
Admin Sentry and Google Search Console settings are removed. The Lingui scan no longer includes Admin source, and locale catalogs remove many Admin dashboard labels and descriptions. The route-seeding test no longer includes Admin.

Priority: ⬇️ Low

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

Possibly related PRs

Suggested reviewers: saddlepaddle












Merge Risk: ⚪ Minimal · up to cc022

This PR removes the admin dashboard and its server code from the public repository, and the supplied changes look internally consistent. The author reports passing lint, i18n and tests, and that the admin app is already served from a separate project. No concrete merge-blocking risk was found. After merge, the author's listed cleanup steps still apply: delete the QStash schedule and the old admin Vercel project.

Pre-merge checks | Passed 4 | Failed 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 3 files. (2 skipped: 2 … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Title check Passed The title clearly and concisely describes the primary change: moving the admin dashboard to the private superset-sh/admin repository. It also follows conventional commit format.
Description check Passed The description is detailed and relevant. It explains why the admin dashboard is moving, lists the removed and retained functionality, documents post-merge actions, and reports testing results. It doe…

Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 3 files. (2 skipped: 2 unsupported.)


  • Fix all pre-merge checks with AI
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR






🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR



  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@expo

expo Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Preview update published for development build 44d37656 (fingerprint 52085cf7de79). Open the build on your phone and scan:

Update group d0ffbb3c

@greptile-apps

greptile-apps Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

[High impact] The PR appears safe to merge; no actionable issue was found.

Summary

Removes apps/admin and the reporting code used only by that dashboard.

  • The company metrics and growth dashboard leave the public app.
  • The public API stops serving dashboard metrics and refresh jobs.
  • Production and preview workflows stop deploying the admin app.
  • Translation extraction and catalogs drop admin-only text.

Kitenite explicitly deferred deleting the old QStash schedule, Vercel project, and obsolete admin secrets until after merge. Kitenite also acknowledged that these deletions do not remove the files from git history.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Marketing[Marketing starchart] --> Export["@superset/trpc/star-history"]
  Export --> Stars["lib/star-history.ts"]
  Purge[Account purge] --> Persons["posthog-persons.ts"]
  Persons --> Timeout["fetch-with-timeout.ts"]
  Clients[Product clients] --> Analytics[Retained analytics procedures]
Loading

Reviews (1) · Last reviewed commit: "chore: move the admin dashboard to the p..." · Reviewed by Greptile

#8367/#8368 landed the hiring pipeline in apps/admin and a hiring router
here while this branch was open. Both now live in superset-sh/admin with
the rest of the dashboard; the hiring tables stay in packages/db. The
catalogs drop the hiring strings along with the other admin strings.
@github-actions

github-actions Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

🧹 Preview Cleanup Complete

The following preview resources have been cleaned up:

  • ✅ Neon database branch

Thank you for your contribution! 🎉

#8369 added `bun hiring` and admin-access while this was open. The script,
its args helper and the web-url check go to superset-sh/admin with the
hiring router (it now calls admin.superset.sh with an API key). The
verified-email rule stays here in adminProcedure.
@Kitenite
Kitenite merged commit d87b957 into main Oct 11, 2026
18 of 19 checks passed
@Kitenite
Kitenite deleted the move-admin-to-private-repo branch October 11, 2026 00:11
Kitenite added a commit that referenced this pull request Oct 11, 2026
…; list follow-up in plan (#8378)

Remaining minor review fixes from #8369 that still apply to this repo.
The EventTimeline, hiring-args, web-url and safeHref fixes target code
that #8374 moved to superset-sh/admin.

This branch was previously deployed

1 inactive deployment
preview — c166d23b Deployed Oct 11, 2026 by Kitenite via Deploy Marketing #11636
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant