A modern portfolio website built with Astro, React, TypeScript, Tailwind CSS, and integrated Google Analytics tracking.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
- Configure the top-level
parserOptions
property like this:
export default {
// other rules...
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
project: ['./tsconfig.json', './tsconfig.node.json'],
tsconfigRootDir: __dirname,
},
}
- Replace
plugin:@typescript-eslint/recommended
toplugin:@typescript-eslint/recommended-type-checked
orplugin:@typescript-eslint/strict-type-checked
- Optionally add
plugin:@typescript-eslint/stylistic-type-checked
- Install eslint-plugin-react and add
plugin:react/recommended
&plugin:react/jsx-runtime
to theextends
list
This site includes Google Analytics 4 (GA4) integration. To enable tracking:
-
Get your GA4 Tracking ID:
- Go to Google Analytics
- Create a new GA4 property or use an existing one
- Find your tracking ID (format:
G-XXXXXXXXXX
) in the Admin section
-
Configure the tracking ID:
- Create a
.env
file in the root directory - Add your tracking ID:
PUBLIC_GA_TRACKING_ID=G-XXXXXXXXXX
- Create a
-
Features included:
- Automatic page view tracking
- Contact form submission tracking
- External link click tracking (GitHub, LinkedIn, Resume downloads)
- Project and blog post view tracking
- Only loads in production builds (not during development)
-
Deploy and verify:
- Deploy your site to production
- Check Google Analytics Real-time reports to verify tracking is working