DEV Community

Abhishek Gupta
Abhishek Gupta

Posted on • Edited on

Building the Calcutta <Hacks/> Hackathon Website: A Journey of Performance and Collaboration

๐ŸŒ 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
  • Suspense for 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)