gitmyhub

company-radar

TypeScript ★ 25 updated 12d ago

A web dashboard that pulls newly registered UK companies from the official Companies House database and displays them in a searchable table with industry and regional breakdowns, plus paid weekly email alerts for specific industry codes.

TypeScriptNext.jsTailwind CSSCloudflare WorkersCloudflare D1StripeRechartssetup: moderatecomplexity 3/5

UK Company Radar is a web dashboard for browsing and analyzing newly registered UK companies. It pulls data from Companies House, the UK government's official company registrar, and presents it in a searchable, sortable table with date filters. You can narrow results to today, yesterday, the past seven days, or the past thirty days and page through whatever comes back.

The summary panel at the top shows total company count, the top city for new registrations, the most common industry code, and the most active sector for the selected period. Below that, a set of insight cards breaks the data down by top industries, regions, cities, growth trends, company types, and keyword signals. Charts are rendered with Recharts.

A paid alert feature lets users subscribe to weekly email digests for specific industry codes. The signup flow is intentionally simple for this first version: you enter an email address, select up to three industry codes, and pay a monthly fee through Stripe Checkout. No account or login is required. After payment is confirmed via a Stripe webhook, a scheduled job runs weekly and sends matching new company listings to your email through Resend. Subscriptions and tracked codes are stored in a Cloudflare D1 database.

All requests to the Companies House API are made server-side, so the API key is never sent to the browser. A demo mode is available: if no API key is set, the dashboard falls back to local sample data so the interface can be previewed without a live key.

The app is built with Next.js 15, TypeScript, and Tailwind CSS, and is designed to deploy on Cloudflare Workers using the OpenNext adapter.

Where it fits