Inspiration
I’m a Hongkonger who moved to Scotland to start a new life. I enjoy living here, but Hong Kong will always be home. Whenever I feel homesick—or start getting excited about my next trip back—I watch foodie and travel videos on YouTube. I like seeing which new restaurants have opened, where people are going and what I should try when I get home. I used to save all those restaurant names and addresses in one long note. But when I returned to Hong Kong, the planning became annoying. I had to search for every place again, work out what was nearby and decide how everything could fit around my flights, hotel and other plans. That made me think: wouldn’t it be easier if I could see all my saved places on a map, find the ones closest to me and keep the rest of my trip in the same place? That idea became Pinned.
What it does
Pinned helps turn saved travel ideas into real trips. See somewhere you want to visit? You can Pin restaurants, shops, attractions and hotels, then see them together on a map. You can organise them into categories, add your own notes and get directions from your current location. Only know the name of a restaurant? You can search for it directly on Pinned’s map, find the right location and save it as a Pin. You can also add it to your itinerary so you know when you plan to visit. Pinned keeps your flight details, accommodation, daily plans and shopping list together inside each trip. The GPT-5.6-powered importer makes planning quicker. If you have a messy note containing booking details, dates and places you want to visit, you can paste it into Pinned. It organises everything into a trip in seconds, but you can still check and edit every item before saving. Travelling with friends or family? You can share trips and Pins so everyone can view the plan or help update it. No more “When is our flight?” or “What are we doing tomorrow?” Pinned is available in English, Traditional Chinese and my mother tongue - Cantonese. Supporting Cantonese was important to me because I wanted the app I use to plan trips home to feel connected to home too.
How I built it
I built Pinned with Codex as my development partner, and the AI organiser inside the app is powered by GPT-5.6. The OpenAI key is kept securely on the server and is never included in the website’s code. During Build Week, Codex helped me plan, build and test the GPT workflow, Firebase Function, review screen, security controls, documentation and demo. I made the product decisions and guided the development based on the travel-planning problem I wanted Pinned to solve and the users experience I wanted Pinned to provide. Pinned is built with React, TypeScript and Vite. Firebase handles Google sign-in, data storage, hosting and the secure backend. Google Maps provides the map, destination-based place searches and routes for walking, driving, cycling and public transport. For the AI workflow, a messy travel note is securely sent through a Firebase Function to the OpenAI Responses API. GPT-5.6 turns the unstructured text into editable flights, places, daily plans and shopping items. Google Places then matches the suggested locations, and the user can review or change everything before saving. I have also added feature flags and daily usage limits so I can control the AI feature and keep costs manageable.
Challenges I ran into
The biggest challenge was getting Google Maps, live location and directions working together. Live location needs permission from the user, while the different Google Maps services need the correct APIs, security settings and key restrictions. It took some time and many user testing to make everything work while still protecting the API key. Another challenge was matching place names from informal notes. A note might only say something like “that noodle shop in Mong Kok,” which isn’t enough to identify an exact location. Pinned searches around the trip destination and lets the user correct anything it cannot confidently match. The AI importer also needed to handle messy dates, abbreviations and notes written in different styles. I added a clear structure and a review step so nothing is saved until the user has checked it.
Accomplishments that I'm proud of
I’m most proud of the GPT-powered trip importer. You can paste in a messy note containing flights, hotels, restaurants, activities and shopping ideas, and Pinned turns it into an organised trip in seconds. I’m also proud that Pinned connects the whole travel journey. A place can go from something you spotted in a video, to a Pin on your map, to a stop in your itinerary—and finally somewhere you have actually explored. Seeing Pinned working in Cantonese also felt personal. It made the project feel more connected to the reason I started building it.
What I learned
I learned that AI is most helpful when it removes a small but surprising time consuming job. People like me naturally keep travel ideas in messy notes, messages and booking confirmations. Instead of asking them to enter everything into separate forms, AI can do the first round of organising for them. I also learned that users still need to feel in control. AI can make suggestions, but people should be able to review and change everything before it is saved. Most importantly, I learned that building Pinned is very similar to planning a real trip: things are rarely perfectly organised, and you have to be ready to adjust along the way and provide an alternative direction when things does not work or cost more than expected.
What's next for Pinned - from saved to explored
Next, I would like to make adding travel information even easier. Someone could scan a QR code or upload a screenshot of a flight, booking or itinerary, and Pinned could turn it into editable trip details. I would also like Pinned to become a secure place for keeping e-tickets and important travel information together. I would like Pinned to recommend new places based on the locations someone has already saved. For someone with no Pins yet, they could choose a destination and a few interests—such as food, shopping, nature or culture—and Pinned could suggest a starter list. I would also like to add smarter daily planning. Pinned could group nearby places, consider travel time and suggest a practical route for the day. After the trip, Pinned could become a personal memory book. Users could mark Pins as visited and add a photo, note or short three-second video to remember the experience. If they choose, they could share these moments and recommendations with other travellers, helping Pinned grow into a community built around places people have actually explored. The goal is for Pinned to become more than somewhere you save ideas. I want it to help turn those ideas into places you have explored, memories you can keep and experiences you can share.
Built With
- firebase
- openai
- react
- typescript
- vite
Log in or sign up for Devpost to join the conversation.