AI Timeline is a conference deadline browser for AI and adjacent CS venues. It pulls upstream conference calendars into one interactive timeline so you can compare submission windows, rebuttal periods, notifications, camera-ready milestones, and conference dates without jumping across multiple CFP pages.
Live site: https://www.ai-timeline.net/
Stack: Next.js 16, React 19, TypeScript 5, Tailwind CSS 4, and Vitest.
- One continuous timeline surface with drag-to-pan for dense deadline seasons
- Search with
Cmd/Ctrl+K - Filters for category, milestone type, and visible range (
3M,6M,12M,All) - Automatic
Active/Pastgrouping based on the viewer's current time - Timezone-aware milestone tooltips that show both the source date context and the viewer-local time
- Ranking badges for
CCF,CORE, andTHCPLwhen available - Expandable inline venue details with location, CFP links, and notes for partial schedules
- Responsive layout plus light/dark theme switching
The home page renders on the server in app/page.tsx and
loads conference data through
src/lib/data/get-conferences.ts.
The runtime data path is:
- Try a live fetch + merge from:
- Fall back to the committed cache snapshot in
src/lib/data/cache.json - Fall back again to the curated seed dataset in
src/data/conferences.ts
When both upstream sources contain the same venue/year, the merge keeps the structured category and ranking metadata from CCFDDL and the richer milestone chain from HF AI Deadlines.
Additional details:
app/page.tsxexportsrevalidate = 86400, so Next.js refreshes the page on a 24-hour cadence.- Milestones support
AoE,UTC, named IANA timezones, and local conference dates. - The static dataset remains in the repo as the final fallback, not the primary production source.
app/page.tsx: server entry point that requests conference data and renders the timeline browsersrc/components/timeline: interactive UI for controls, grid rendering, tooltips, and expandable detail rowssrc/lib/data: upstream fetchers, source merging, ranking parsing, category inference, and fallback loadingsrc/lib/timeline: range math, timezone handling, filtering, positioning, and sectioningsrc/data/conferences.ts: curated seed data used only when live data and cache are both unavailable
Node 22 is recommended to match the GitHub Actions environment.
Install dependencies:
npm ciRun the app locally:
npm run devThen open http://localhost:3000.
Run verification checks:
npm run test -- --run
npm run lint
npm run buildGitHub Actions runs the following on pushes to main and pull requests that
target main:
- tests
- lint
- production build