This is the source code for my personal website, built using Astro. Visit the live site at mkhismkh.com.
- Portfolio Showcase - Display projects, skills, and experience in a clean, modern interface
- Digital Garden - A knowledge management system for sharing ideas, solutions, and learnings
- Tree/Leaf structure for organizing content
- Growth stages to indicate content maturity
- Authentication - Secure admin access for content management using Clerk
- Database Integration - Content stored in Supabase
- Responsive Design - Works seamlessly on all devices
- Dark/Light Mode - Automatic theme switching based on user preference
- Interactive UI - Animations and particle effects
This project uses the following technologies:
- Astro - The web framework for content-driven websites
- React - For interactive UI components
- Tailwind CSS - Utility-first CSS framework
- TypeScript - Type-safe JavaScript
- Supabase - Open source Firebase alternative
- Clerk - Authentication and user management
-
Clone the repository:
git clone https://github.com/MAX-786/mkhismkh.git cd mkhismkh -
Install dependencies:
pnpm install
-
Set up environment variables: Create a
.envfile in the root directory with the following variables:# Supabase SUPABASE_URL=your_supabase_url SUPABASE_KEY=your_supabase_anon_key # Clerk PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key CLERK_SECRET_KEY=your_clerk_secret_key ADMIN_USER_IDS=comma_separated_admin_user_ids -
Start the development server:
pnpm dev
- Create a new Supabase project at supabase.com
- Set up the following tables:
trees- For garden tree structureleaves- For garden leaf contentleaf_references- For references between leavesgrowth_stages- For metadata about content maturity
- Copy your project URL and anon key to the
.envfile
- Create a new Clerk application at clerk.com
- Configure authentication methods (email, social logins, etc.)
- Copy your publishable key and secret key to the
.envfile - Add admin user IDs to the
ADMIN_USER_IDSenvironment variable
This project is configured for deployment on Vercel:
- Push your code to GitHub
- Connect your repository to Vercel
- Configure environment variables in the Vercel dashboard
- Deploy!
All commands are run from the root of the project, from a terminal:
| Command | Action |
|---|---|
pnpm install |
Installs dependencies |
pnpm dev |
Starts local dev server at localhost:4321 |
pnpm build |
Build your production site to ./dist/ |
pnpm preview |
Preview your build locally, before deploying |
pnpm astro ... |
Run CLI commands like astro add, astro check |
pnpm astro -- --help |
Get help using the Astro CLI |
pnpm format |
Format code with Prettier |
Addedfor new features.Changedfor changes in existing functionality.Deprecatedfor soon-to-be removed features.Removedfor now removed features.Fixedfor any bug fixes.Securityin case of vulnerabilities.
MIT License - Feel free to use this code as inspiration for your own projects!