Xata
Start fresh or branch an existing Postgres in seconds, and scale to zero when it is idle.
AI translation
Comprehensive typhoon database featuring storm tracking, intensity analysis, and the fascinating stories behind typhoon names
DataTypeScript · PLpgSQLGitHub @hieudeptrai09OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
An interactive web app for exploring Western Pacific typhoon and storm data, covering the basin from 2000 to the present.Read the full README ↗An interactive web app for exploring Western Pacific typhoon and storm data, covering the basin from 2000 to the present.
postgresdb/
└── schema.sql # Postgres schema for the storm data
src/
├── app/ # Next.js App Router — only the files Next.js requires here
│ ├── (home)/ # Home page
│ ├── (navbar)/ # storms, names, positions, info, search, about
│ ├── @modal/ # Intercepting-route modals for info & positions
│ └── api/revalidate/ # On-demand ISR revalidation webhook
└── lib/
├── features/ # Route-specific code: <route>/components/, <route>/utils/
├── components/
│ ├── ui/ # Generic, domain-agnostic building blocks
│ ├── layout/ # Navbar and footer
│ └── storm/ name/ position/ statistics/ # Shared domain components
├── db/ # client.ts, queries/, row mappers/, cache tags
├── providers/ # AntD provider and style registry
├── styles/ # Global CSS, generated antd.css, AntD theme
├── config/ # App navigation config
├── assets/fonts/ # Fonts for the OG image routes
├── hooks/ # Reusable hooks
├── utils/ # Pure helpers (colors, dates, positions, OG images, …)
├── testing/ # Shared test fixtures
├── constants.ts # Shared constants
└── types.ts # Shared TypeScript types
Pages fetch data directly in server components through src/lib/db/queries; the only route handler is the revalidation webhook.
npm install
cp .env.example .env.development # then fill in your Supabase credentials
npm run dev # http://localhost:3000
The app needs a Supabase Postgres connection; see .env.example for the variables and db/schema.sql for the schema.
Other scripts:
| Script | Does |
|---|---|
npm run build | Production build |
npm run start | Serve the production build |
npm run lint | ESLint |
npm run test | Jest unit tests |
npm run format | Prettier + ESLint --fix |
The data and text are dedicated to the public domain under CC0 1.0. Images are not covered — they remain under their original copyright and are credited where the author and license are known. See the about page for data sources and credits.
Made with 🌀 by Cá Tra (@hieudeptrai09).