A minimal, aesthetic website for the Vee HK designer-art-music collective featuring an Instagram gallery manager.
- 🎨 Instagram Gallery Manager: Password-protected admin interface to manage Instagram posts
- 🔒 Secure Admin Access: Password:
vee2026 - 📸 No Storage Costs: All media hosted by Instagram
- ⚡ Fast & Minimal: Built with React + Vite
- 🎯 Custom Aesthetic: Black/zinc/yellow color scheme, no Instagram white layout
-
Install dependencies:
npm install
-
Run development server:
npm run dev
-
Build for production:
npm run build
-
Run tests:
npm test
-
Install Vercel CLI:
npm i -g vercel
-
Deploy:
vercel
-
Follow the prompts to link your project
-
Push your code to GitHub:
git remote add origin YOUR_GITHUB_REPO_URL git push -u origin main
-
Go to vercel.com
-
Click "New Project"
-
Import your GitHub repository
-
Vercel will auto-detect Vite and configure build settings
-
Click "Deploy"
- Scroll to the "Instagram Gallery" section
- Click the "Vee.in" button at the bottom right
- Enter password:
vee2026 - You'll see the admin panel with:
- Add Post Form: Paste Instagram URLs (format:
https://www.instagram.com/p/POST_ID/) - Gallery Management: Hover over posts to see edit/delete options
- Save Button: Changes save automatically to browser storage
- Add Post Form: Paste Instagram URLs (format:
- Go to any Instagram post you want to add
- Click the "..." menu → "Embed"
- Copy the post URL (e.g.,
https://www.instagram.com/p/C-170UNSoqM/) - Paste it in the admin panel
- Click "Add Post"
The thumbnail will appear in the gallery immediately!
- Browse the gallery grid
- Click any thumbnail to view the full post content
- Videos and carousels are fully supported
- Frontend: React 19 + TypeScript
- Build Tool: Vite 6
- Styling: Tailwind CSS (via inline classes)
- Storage: Browser localStorage
- Testing: Vitest + fast-check (property-based testing)
InstagramGallerySection: Main containerAdminPanel: Password-protected admin interfaceGalleryGrid: Responsive grid layoutInstagramPostCard: Individual post thumbnailsPostDetailModal: Full post viewer
storageService: Manages localStorage operationsinstagramService: Handles Instagram URL parsing and validation
Gallery data is stored in browser localStorage under the key vee_instagram_gallery. This means:
- ✅ No server costs
- ✅ Instant updates
- ✅ Works offline
⚠️ Data is per-browser (clearing browser data will reset the gallery)⚠️ ~5-10MB storage limit (enough for 500+ posts)
Vee mods can update the gallery indefinitely by:
- Visiting the deployed site
- Entering admin mode
- Adding/removing posts as needed
- Changes persist automatically
No code deployment needed for content updates!
For technical issues or questions, contact the development team.
Vee HK Collective • Est. 2013 • Hong Kong Underground Frequency