A React and Vite-powered web app for discovering tattoo artists and shops. Built with Supabase for data management and deployed on Vercel.
- Artist Directory: Browse and filter tattoo artists by city, state, and country.
- Shop Links: View associated tattoo shops and Instagram profiles for each artist.
- Sorting: Easily sort artists by name, location, or shop.
- Frontend: React + Vite
- Backend: Supabase (PostgreSQL)
- Deployment: Vercel
- Monitoring: Sentry (error tracking & performance monitoring)
-
Clone the repository:
git clone https://github.com/your-username/tattoo-artist-directory.git cd tattoo-artist-directory
-
Install dependencies:
npm install
-
Environment Variables:
- Create a
.env
file in the project root with the following:VITE_SUPABASE_URL=your-supabase-url VITE_SUPABASE_ANON_KEY=your-supabase-anon-key VITE_SENTRY_DSN=your-sentry-dsn
- Create a
-
Run the app:
npm run dev
-
Build for production:
npm run build
This project uses semantic versioning with automated Sentry integration and flexible deployment options.
# Make changes and push - Vercel auto-builds for quick iteration
git add .
git commit -m "feat: add new artist filtering"
git push origin main
# Create a release and deploy to production
npm run release patch --deploy # 0.1.0 → 0.1.1 + deploy
npm run release minor --deploy # 0.1.0 → 0.2.0 + deploy
npm run release major --deploy # 0.1.0 → 1.0.0 + deploy
# Or release first, deploy later
npm run release patch # 0.1.0 → 0.1.1
# ... test locally ...
npm run deploy # Deploy to production
# Release management
npm run release patch # Create patch release
npm run release minor # Create minor release
npm run release major # Create major release
# Deployment
npm run deploy # Deploy to production
npm run deploy:preview # Deploy preview
# Version management only
npm run version:patch # Update version only
npm run version:minor # Update version only
npm run version:major # Update version only
- ✅ Version updated in
package.json
- ✅ Project built with new version
- ✅ Git commit and tag created
- ✅ Changes pushed to repository
- ✅ Optional: Automatic Vercel deployment
- ✅ Sentry release created for error tracking
- Automatic Release Tracking: Every release creates a new Sentry release
- Performance Monitoring: 100% trace capture for comprehensive monitoring
- Session Replay: 100% session capture for debugging user issues
- Error Correlation: Issues automatically tagged with release versions
- Vercel builds on every push to
main
branch - Good for quick iteration and testing
- Use
npm run release <type> --deploy
for versioned releases - Creates clean 1:1 mapping between releases and deployments
- Perfect Sentry integration for production monitoring
Add these in Vercel's dashboard:
VITE_SUPABASE_URL
VITE_SUPABASE_ANON_KEY
VITE_SENTRY_DSN
├── src/
│ ├── components/ # React components
│ ├── services/ # API and Supabase client
│ ├── utils/ # Utilities including Sentry config
│ └── assets/ # Icons and static assets
├── scripts/
│ └── release.js # Release management script
├── vercel.json # Vercel configuration
└── RELEASE.md # Detailed release documentation
- Ensure all changes are committed before running release
- Check that build completes successfully
- Verify git remote is properly configured
- Check Vercel environment variables
- Ensure Sentry DSN is correct
- Verify build output in Vercel dashboard
For detailed release management information, see RELEASE.md.
Enjoy discovering and organizing talented tattoo artists!