Morgan Logo
[ SaaS Platform ]

Skiable

Flight search and exploration platform

THE CHALLENGE

Building a flight search platform requires handling complex search queries, fast API responses, structured data from multiple sources, and intuitive interfaces for comparing hundreds of results.

ROLE:Full-Stack Developer
YEAR:2024
TYPE:SaaS Product
STATUS:Live

TECH STACK

Next.jsTypeScriptMongoDBNode.jsReact
I

Engineering Approach

High-Performance Search

Built search experience with focus on speed using Next.js and TypeScript with optimized data structures for fast filtering.

Server-Side API Integration

Developed API routes in Next.js that integrate with MongoDB to power structured search results with proper indexing.

Complex Interaction Design

Designed responsive interfaces handling multi-step forms, date ranges, passenger counts, and result comparison.

Modular Architecture

Organized codebase with reusable hooks and clear component boundaries for predictable scaling.

II

Key Technical Decisions

The choices that shaped the architecture and determined long-term maintainability.

Next.js API Routes

Used Next.js API routes instead of separate backend

WHY

Unified deployment and better TypeScript sharing between frontend and backend

MongoDB Aggregation

Leveraged MongoDB aggregation pipeline for search

WHY

Complex filtering and sorting operations are more efficient in database than in application code

Custom Hooks Pattern

Created reusable hooks for search state and filters

WHY

Encapsulated complex logic in testable, composable units that multiple components could use

Optimistic UI Updates

Implemented optimistic updates for search interactions

WHY

Users expect instant feedback when adjusting filters and search parameters

III

Challenges & Solutions

[ CHALLENGE ]

Search queries with multiple filters were taking 3+ seconds to return results

[ SOLUTION ]

Added compound indexes in MongoDB and implemented query result caching with proper invalidation

[ CHALLENGE ]

Complex search form state was difficult to manage and debug

[ SOLUTION ]

Created a centralized search context with TypeScript types and proper validation at each step

[ CHALLENGE ]

Users needed to compare dozens of flight options efficiently

[ SOLUTION ]

Built sortable table view with persistent filters and comparison mode for side-by-side analysis

IV

Outcomes & Impact

Skiable launched as a fast, intuitive flight search platform with complex filtering capabilities and responsive design across devices.

<500ms
Search response time
100%
TypeScript coverage
50+
Destinations covered

KEY TAKEAWAYS

Search interfaces are deceptively complex. What seems like a simple form hides dozens of edge cases and performance considerations.