A beautiful, ocean-inspired e-commerce platform built with Next.js and Medusa, supporting marine conservation efforts.
Shenna's Studio is a family-owned ocean-themed e-commerce platform that celebrates marine life while supporting ocean conservation efforts. Built with modern web technologies, it provides a seamless shopping experience for ocean lovers.
- Celebrate Ocean Beauty: Curated products inspired by marine life
- Support Conservation: 10% of proceeds go to ocean conservation efforts
- Family Business: Handcrafted with love by a dedicated family
- Eco-Friendly: Sustainable practices and materials
📦 Shenna's Studio Platform
├── 🎨 Frontend (Next.js 15.5.2)
│ ├── Ocean-themed UI/UX
│ ├── Product catalog & search
│ ├── Shopping cart & checkout
│ └── Responsive design
├── ⚙️ Backend (Medusa 2.10.0)
│ ├── Product management
│ ├── Order processing
│ ├── Admin dashboard
│ └── API endpoints
├── 🗄️ Database (PostgreSQL 15)
├── ⚡ Cache (Redis 7)
└── 🔒 Payment (Stripe Integration)
- Docker & Docker Compose (recommended)
- Node.js 18+ (for local development)
- PostgreSQL 15+ (if running without Docker)
- Redis 7+ (if running without Docker)
-
Clone the repository
git clone https://github.com/simplehostingserverd/shennastudiollc.git cd shennastudiollc
-
Setup environment variables
cp .env.example .env # Edit .env with your actual values
-
Launch the application
docker-compose up -d --build
-
Initialize the database
# Run migrations docker-compose exec medusa-backend npx medusa db:migrate # Create admin user docker-compose exec medusa-backend npm run create-admin # Seed sample data (optional) docker-compose exec medusa-backend npm run seed
Service | URL | Purpose |
---|---|---|
🛍️ Store | http://localhost:3000 | Customer shopping experience |
⚙️ Admin | http://localhost:7001 | Store management dashboard |
🔌 API | http://localhost:9000 | Backend API endpoints |
🗄️ Database | localhost:5433 | PostgreSQL database |
⚡ Redis | localhost:6379 | Caching layer |
shenandoah/
├── 🏢 Root Configuration
│ ├── docker-compose.yml # Orchestrates all services
│ ├── Dockerfile # Multi-stage build setup
│ ├── .env.example # Environment template
│ └── README.md # This file
│
├── 🎨 ocean-store/ # Frontend Application
│ ├── app/ # Next.js App Router
│ │ ├── components/ # Reusable UI components
│ │ ├── api/ # API routes
│ │ ├── cart/ # Shopping cart
│ │ └── products/ # Product pages
│ ├── src/ # Source utilities
│ │ └── lib/ # Shared libraries
│ ├── public/ # Static assets
│ ├── Dockerfile # Frontend container
│ └── package.json # Frontend dependencies
│
└── 🏪 ocean-backend/ # Medusa Backend
├── src/ # Backend source code
│ ├── api/ # API routes
│ ├── scripts/ # Utility scripts
│ └── workflows/ # Business logic
├── Dockerfile # Backend container
└── medusa-config.ts # Medusa configuration
-
Install dependencies
# Frontend cd ocean-store npm install # Backend cd ocean-backend npm install
-
Start development servers
# Backend (Terminal 1) cd ocean-backend npm run dev # Frontend (Terminal 2) cd ocean-store npm run dev
-
Access development environment
- Frontend: http://localhost:3000
- Admin: http://localhost:7001
- API: http://localhost:9000
Frontend (ocean-store/)
npm run dev # Start development server
npm run build # Build for production
npm start # Start production server
npm run lint # Run ESLint
Backend (ocean-backend/)
npm run dev # Start development server
npm run build # Build for production
npm start # Start production server
npm run create-admin # Create admin user
npm run seed # Seed sample data
- Email:
admin@shennasstudio.com
- Password:
AdminPassword123!
- Login with default credentials
- Change password immediately
- Update admin email
- Configure store settings
- Add your products
- Set up payment methods
- Configure shipping options
- 📦 Product management
- 📋 Order tracking
- 👥 Customer management
- 💳 Payment processing
- 📊 Sales analytics
- ⚙️ Store configuration
- Create a Stripe account
- Get your API keys from the Stripe Dashboard
- Add keys to your
.env
file:STRIPE_SECRET_KEY=sk_test_... NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_...
- Configure webhooks for order confirmations
- ✅ Credit card payments
- ✅ Secure checkout flow
- ✅ Order confirmation emails
- ✅ Refund processing
- ✅ Subscription support (future)
- Create an Algolia account
- Create a search index
- Add credentials to
.env
:NEXT_PUBLIC_ALGOLIA_APPLICATION_ID=your_app_id NEXT_PUBLIC_ALGOLIA_SEARCH_API_KEY=your_search_key
- Create a Cloudinary account
- Add credentials to
.env
:CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret
- CPU: 2+ cores
- RAM: 4GB minimum, 8GB recommended
- Storage: 20GB SSD minimum
- Network: Static IP with domain name
-
Docker Compose (Recommended)
docker-compose up -d --build
-
Kubernetes (Advanced)
- Convert docker-compose to K8s manifests
- Use Helm charts for deployment
- Set up ingress controllers
-
Cloud Platforms
- Vercel (Frontend only)
- Railway (Full stack)
- DigitalOcean (Docker droplet)
- AWS ECS (Container service)
- Point your domain to your server
- Set up SSL certificates (Let's Encrypt recommended)
- Configure reverse proxy (Nginx)
- Update environment variables with your domain
- Change default admin credentials
- Generate strong JWT/Cookie secrets
- Configure proper CORS settings
- Enable HTTPS with valid SSL
- Secure database with strong passwords
- Set up firewall rules
- Enable automated backups
- Regular security updates
- Monitor application logs
- Set up error tracking (Sentry)
- Application: New Relic, DataDog
- Logs: ELK Stack, Grafana
- Errors: Sentry, Bugsnag
- Analytics: Google Analytics, Mixpanel
- Uptime: Pingdom, UptimeRobot
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- 📖 Check the Production Setup Guide
- 🐛 Submit issues on GitHub Issues
- 💬 Join our community discussions
- 📧 Email support: support@shennasstudio.com
- Build Issues: Check environment variables and dependencies
- Database Errors: Verify connection strings and credentials
- Docker Problems: Ensure Docker is running and has sufficient resources
- Admin Access: Reset credentials using the create-admin script
10% of all proceeds support ocean conservation efforts!
By choosing Shenna's Studio, you're not just getting beautiful ocean-themed products – you're actively contributing to marine conservation and helping protect our oceans for future generations.