๐ Live Website: https://calcuttahacks.xyz
๐ฅ Project Walkthrough: https://github.com/Apex-Circle/calcuttahacks2.0
๐ฑ Introduction: From Sharing to Real Opportunities
Iโve always believed in one simple principle:
Build in public. Share everything. Learn faster.
By consistently sharing my learning journeyโprojects, mistakes, and improvementsโI started connecting with real developers and communities.
Thatโs how I got introduced to Apex Circle, a developer community organizing hackathons and tech events.
Soon after joining, I got my first real responsibility:
๐ Build the official website for Calcutta <Hacks/>
Not a practice project.
Not a clone.
A real product, for real users, under real pressure.
๐ฏ The Problem: This Was Not Just โAnother Websiteโ
This wasnโt about making a landing page.
The website needed to:
- Handle traffic spikes during live events
- Deliver fast load times even on slow networks
- Provide smooth UX across all devices
- Present clear and structured event information
- Reflect a modern, high-energy hackathon vibe
โ ๏ธ Performance + UX + Reliability = Non-negotiable
๐ง Step 1: Thinking Before Coding
Before writing a single line of code, I focused on understanding the system.
Key questions I answered:
- Who are the users? (students, hackers, beginners)
- What do they need instantly?
- What can cause friction?
- What must never break during peak load?
Core sections identified:
- Hero & branding
- Event details
- Registration flow
- Schedule
- FAQs
- Community links
โ Jumping into coding without clarity
โ Designing decisions before implementation
๐ค Step 2: Real Collaboration (Not Solo Coding)
This project forced me to work like an actual engineer, not just a coder.
I collaborated with:
- ๐งโ๐ผ Organizers โ content, deadlines, priorities
- ๐จ Design inputs โ layout, structure, UX
- ๐จโ๐ป Developers/community โ feedback & testing
What I learned:
- Communication > Coding speed
- Feedback loops improve quality
- Clarity avoids rework
โ๏ธ Tech Stack & Architectural Decisions
- React โ Component-based architecture
- Modern JavaScript (ES6+)
- Focus on performance-first design
Itโs not about the stackโitโs about how efficiently you use it.
โก Step 3: Performance Optimization (Core Focus)
๐งฉ Problem
- Unnecessary re-renders
- Heavy components
- Large bundle size
๐ ๏ธ Solutions
1. Memoization Strategy
-
useMemoโ Avoid expensive recalculations -
useCallbackโ Stable function references -
React.memoโ Prevent unnecessary re-renders
๐ Result: ~60% smoother UI performance
2. Code Splitting & Lazy Loading
-
React.lazy()for dynamic imports -
Suspensefor loading fallback
๐ Result:
- Faster initial load
- Better mobile performance
3. Component Structuring
- Small reusable components
- Clean state management
- Predictable rendering
๐ Step 4: Load Time Optimization
Problem
Large bundle slows first render
Solution
- Code splitting
- Lazy loading
- Non-blocking UI
๐ Result:
- Faster FCP
- Better UX
- Lower bounce rate
๐ง Challenges & Learnings
Unclear Requirements
โ Solved via frequent communication
Design vs Performance
โ Prioritized essential UI
Team Coordination
โ Structured updates & clarity
Real-world Testing
โ Tested across devices & networks
๐ง Key Takeaways
- Performance is a feature
- Optimization must be intentional
- Real projects teach decision-making
- Communication is critical
- Building in public creates opportunities
Top comments (0)