My First Freelance Project - shivakailash.com
I’m thrilled to share the journey of my first freelance project, shivakailash.com—a spiritual store and personal website for my dear friend and YouTuber, Shiva Kailash Shambho.
The Backstory
I discovered Shiva over a year ago when his YouTube channel had just crossed 1,000 subscribers. His spiritual insights intrigued me, and we quickly connected through his Discord community. Our friendship grew as we meditated together and traveled to Nepal for spiritual work.
When Shiva expressed the need for a platform to support his growing audience, I eagerly took on the challenge. This project wasn’t just about building a website; it was about creating a meaningful platform to connect Shiva with his audience and support their spiritual journeys.
The Objective
- Create a fully functional e-commerce platform for spiritual products.
- Enable seamless booking for consultations using Cal.com.
- Build an admin dashboard for managing content, products, and orders.
- Incorporate robust security, scalability, and seamless user experience.
- Project the energy of Mount Kailash throughout the website by using Shiva’s high-quality 4K photograph of the mountain as a background element.
The Process
This was a complete end-to-end project. I leveraged my three years of software engineering experience to handle every step, including:
- Designing the interface using Figma.
- Conducting architecture research based on Shiva’s user base.
- Procuring a domain at the best rate.
- Writing clear documentation for the development process.
- Making tech stack choices and implementing secure payment solutions with Stripe.
- Adding 2FA for admin protection using an authenticator app.
- Integrating Cal.com for consultation bookings.
- Developing, testing, and deploying the application.
- Setting up CI/CD pipelines for automated deployments.
- Creating dashboards to monitor server activity, errors, and usage metrics.
- Incorporating Google Analytics and event tracking to analyze user activity.
- Estimating costs for scaling the website as user demand grows.
- Launching the website after thorough testing.
The Stack
- Frontend: Built with Next.js for its server-side rendering and Tailwind CSS for rapid UI development.
- Backend: AWS API Gateway and Lambda for scalable serverless APIs; DynamoDB for managing product and order data.
- Authentication: AWS Cognito with 2FA for admin access.
- Payments: Stripe for secure and seamless checkout experiences.
Key Features Built
- Shop: Displays products dynamically, sorted by price.
- Booking: Integrated Cal.com for seamless consultation bookings & payments.
- Admin Dashboard: Enables real-time management of products, orders, and archived data.
- Security: AWS Cognito protects admin routes and APIs with OAuth2 and JWT authentication.
- Analytics: Google Analytics tracks user behavior, and CloudWatch monitors server activity and usage metrics.
Challenges and Solutions
- Stripe Webhooks: Implemented secure webhook handlers to verify event signatures and process payments.
- Logout Redirection: Resolved redirection loops by explicitly clearing session storage and redirecting users to a configured endpoint.
- Optimizing Costs and Bandwidth: Reduced Netlify costs by optimizing images, caching resources, and minimizing API calls.
Takeaways
- Security First: Prioritizing secure authentication and API handling saved us from technical debt.
- Modular Design: Breaking the codebase into reusable components streamlined development and scaling.
- Serverless Advantages: AWS Lambda and API Gateway allowed us to focus on building features, not managing infrastructure.
- Monitor Everything: Dashboards for logs and metrics ensured proactive issue resolution.
What’s Next?
The platform is live and stable, but there’s always room for growth. Future enhancements may include advanced analytics, user experience improvements, and additional features to serve the audience better.
Building shivakailash.com was a fulfilling experience that combined technical expertise with a meaningful purpose. If you’re working on similar projects or curious about any of these features, let’s connect—I’d love to share insights and learn from others!