Skip to content

davideimola/davideimola.dev

Repository files navigation

davideimola.dev

Personal website of Davide Imola – Software Engineer, conference organizer, and tech speaker.

Next.js TypeScript Tailwind CSS


πŸš€ Quick Start

# Install dependencies
pnpm install

# Run development server
pnpm dev

# Build for production
pnpm build

Visit http://localhost:3000


✏️ Content Management

All content is managed through simple TypeScript files in /src/content/:

src/content/
β”œβ”€β”€ speaking-events.ts  # Conferences, talks, podcasts
β”œβ”€β”€ projects.ts         # OSDay, Schrodinger Hat, open-source
β”œβ”€β”€ blog-posts.ts       # Blog metadata
β”œβ”€β”€ now.ts             # "What I'm doing now" section
β”œβ”€β”€ uses.ts            # Tech stack & tools
└── blog/              # MDX blog posts

β†’ See Content Management Guide


🎨 Design System

Japanese-inspired aesthetic (ε’Œ) combining traditional elements with modern minimalism:

  • Akane Red #C91F37 – Primary accent
  • Kanji accents – 道 (way), 剡 (create), θͺž (speak), ζ›Έ (write)
  • Seigaiha pattern – Ocean waves background
  • Ma (ι–“) – Respect for negative space

β†’ See Brand Identity Guide


πŸ“š Documentation

Setup Guides

Development

Design


✨ Features

  • βœ… Dark minimalist theme with Japanese aesthetics
  • βœ… Fully responsive (mobile-first)
  • βœ… SEO optimized (meta tags, structured data, sitemap)
  • βœ… MDX blog with syntax highlighting
  • βœ… Contact form with Resend API
  • βœ… Newsletter integration with Kit
  • βœ… "What I'm Doing Now" section
  • βœ… "/uses" page (tech stack showcase)
  • βœ… Dynamic content (no database needed)
  • βœ… TypeScript strict mode
  • βœ… Performance optimized

πŸ”§ Tech Stack

Category Technology
Framework Next.js 15 (App Router)
Language TypeScript 5
Styling Tailwind CSS 4
Content MDX + TypeScript
Syntax PrismJS
Email Resend API
Newsletter Kit (ConvertKit)
Deployment Vercel

πŸ“± Commands

pnpm dev           # Start development server
pnpm build         # Build for production
pnpm start         # Start production server
pnpm lint          # Run ESLint
pnpm lint:fix      # Fix linting issues
pnpm format:write  # Format all files
pnpm typecheck     # Type checking
pnpm check         # Lint + typecheck

πŸš€ Deployment

Optimized for Vercel:

  1. Push to GitHub
  2. Import on vercel.com
  3. Add environment variables (see docs/setup/)
  4. Deploy automatically on every push

Environment variables needed:

  • RESEND_API_KEY – Contact form
  • CONTACT_EMAIL – Email recipient
  • CONVERTKIT_API_KEY – Newsletter
  • CONVERTKIT_FORM_ID – Newsletter form ID

πŸ“‚ Project Structure

davideimola.dev/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/              # Next.js App Router
β”‚   β”‚   β”œβ”€β”€ _components/  # Reusable components
β”‚   β”‚   β”œβ”€β”€ about/        # About page
β”‚   β”‚   β”œβ”€β”€ blog/         # Blog listing
β”‚   β”‚   β”œβ”€β”€ contact/      # Contact form
β”‚   β”‚   β”œβ”€β”€ experience/   # CV/Resume
β”‚   β”‚   β”œβ”€β”€ projects/     # Projects showcase
β”‚   β”‚   β”œβ”€β”€ speaking/     # Speaking engagements
β”‚   β”‚   └── uses/         # Tech stack & tools
β”‚   └── content/          # Content files (EDIT HERE!)
β”œβ”€β”€ docs/                 # Documentation
β”‚   β”œβ”€β”€ setup/           # Setup guides
β”‚   β”œβ”€β”€ development/     # Development docs
β”‚   └── design/          # Design system
└── public/
    └── logos/           # Company logos

πŸ“¬ Contact


πŸ“„ License

Β© 2025 Davide Imola. All rights reserved.

Built with ❀️ using Next.js and Tailwind CSS.

About

🌍 My home page and blog!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published