A React application to visualize your conference speaking history on an interactive map and a chronological list view.
This project is designed to be easily customized. By simply modifying the data file, you can create your own conference history portfolio.
(Replace this with an actual screenshot of your application)
- Interactive Map View: Displays conference locations with markers using React Leaflet.
- Chronological History View: A timeline list of your talks, grouped by year.
- Detailed Info Cards: Clicking a map pin reveals a card with conference details (theme, slides link, proposal link, etc.).
- Multiple Events Support: Handles multiple conferences at the same location with a carousel navigation in the popup.
- Responsive Design: Optimized for both desktop and mobile devices using Tailwind CSS.
- Category Tags: Color-coded tags for different technology categories (e.g., PHP, TypeScript, Go).
First, fork this repository to your own GitHub account. Then, clone it to your local machine:
git clone https://github.com/YOUR_USERNAME/conference-history.git
cd conference-historyInstall the necessary dependencies using npm:
npm installStart the local development server:
npm run devOpen your browser and navigate to http://localhost:5173 to see the app running.
The core data is located in src/data.ts. To use your own history, simply edit this file.
- Open
src/data.ts. - Update the
conferencesarray with your speaking engagements.
Data Model:
export interface Conference {
date: string; // YYYY-MM-DD
venue: string; // Venue name
coords: [number, number]; // [Latitude, Longitude]
name: string; // Conference Name
url: string; // Official Conference URL
theme: string; // Your Talk Title
slidesUrl: string; // URL to your slides (SpeakerDeck, etc.)
proposalUrl?: string; // (Optional) URL to your proposal
isBest: boolean; // Highlight as a "Best" talk
type: ConferenceType; // Category (see below)
}Adding New Categories:
If you need new categories (e.g., "Python", "Rust"), update the ConferenceType definition in src/data.ts and add corresponding colors in src/App.tsx under the typeColors object.
To change the title, avatar icon, and GitHub link in the header:
- Open
src/App.tsx. - Search for the
<header>section. - Replace the
srcattribute of the<img>tag with your own avatar URL. - Update the text "Kanon's Conference History" to your name.
- Update the
hrefattribute of the GitHub link to your own repository URL.
<h1 className="flex items-center text-xl font-bold tracking-tight text-gray-800 mr-4">
<img
src="YOUR_AVATAR_URL_HERE"
alt="Your Name"
className="w-8 h-8 rounded-full mr-2"
/>
Your Name's Conference History
</h1>
<a
href="https://github.com/YOUR_USERNAME/YOUR_REPO"
target="_blank"
rel="noreferrer"
className="text-gray-500 hover:text-gray-700 transition-colors"
aria-label="GitHub Repository"
>
<IconGithub className="w-6 h-6" />
</a>This is a static site (SPA), so it can be deployed to any static hosting service like Firebase Hosting, Cloudflare Pages, Vercel, or GitHub Pages.
Build the project:
npm run buildThe output will be in the dist/ directory. Upload this directory to your hosting provider.
This project is open source and available under the MIT License.