
Introducing My Hiking Trip Planner: Motivation and Overview
Kyle Czajkowski
January 1, 2025
Have you ever struggled to plan the perfect outdoor adventure? Juggling routes, deciphering weather forecasts, and wondering if you've remembered everything? I’ve been there. To make life easier for other adventurers, I’ve started developing a hiking trip planner that simplifies the process and eases any pre-trip doubts.
My Motivation
After experiencing burnout in my software engineering career, I revisited an idea I’d been sitting on for years. In doing so, I reignited my passion for coding, development, and exploring new technologies. This project gives me a way to channel my skills into something meaningful, with the potential to genuinely help others.
Project Overview
Right now, my project is an item inventory, checklist, and trip planning app. It’s a work in progress, with several features either still in development or open to improvement.
The user interface is primarily designed a central dashboard that highlights the next upcoming trip, and includes a current weekly weather widget, localized to the upcoming trip destination. Past trips are also archived here. I’ve added a widget that displays the user’s allocated AI recommendation usage in an easily digestible way. While I don’t have monetization plans for the app yet, I found this was a fun and simple feature to include.
The dashboard also features placeholders for sustainable packing tips, weather updates, and safety alerts customized for upcoming trips. I intend to leverage Claude integrations to implement these functionalities, and I'm particularly interested in exploring the development of function calls (tools) for these features.
I'm especially proud of the personalized AI trip recommendations feature I developed. Users can choose to incorporate these into their checklists, making the process even more tailored to their needs.

Technologies Used
I’ve chosen a mix of familiar tools and new technologies to challenge myself.
Familiar Ground
Next.js: As an experienced React developer, I can move quickly with this performance-focused framework. Its built-in features, such as API endpoints, middleware, and server-side rendering (SSR), streamline the process of building full-stack apps while ensuring optimized performance and scalability. The framework's focus on developer experience, with features like automatic code splitting and fast refresh, helps me stay productive and efficient.
TypeScript: This has become a favorite of mine for its ability to keep code maintainable. The language also saves time by making old code easy to revisit and understand. Plus, having your code editor nudge you about available properties is always a win.
Exploring New Terrain
Supabase: This is an incredible open-source solution for database management. It offers a feature-rich free tier that includes authentication, user management, and plenty of room to grow as your project scales. While they market themselves as a “Firebase Alternative,” I find their documentation much easier to follow than Google’s. Being open-source also fosters an active and supportive community, and I’ve had an easier time finding solutions to problems quickly by leveraging those community replies. Moving forward, Supabase will definitely be at the top of my list for database solutions.
Anthropic API: My earliest experience working with AI was with machine learning about six years ago, using tools like TensorFlow.js for object detection, image classification, and other small, fun projects. Those experiments taught me valuable lessons about how neural networks work their magic (maybe a topic for the future?). That said, I’ve had reservations about more recent AI tooling. The ethics of how these companies collect data to train their Large Language Models (LLMs) are murky at best. While LLMs are, at their core, sentence-completion networks, I’ve questioned the depth of their real-world utility beyond specific use cases like chatbots. However, with the rapid pace of development and the addition of new functionality and architectural complexities, these tools are beginning to prove their worth—though it's debatable how many truly useful ones have surfaced. For this project, I stepped out of my comfort zone to challenge my biases against LLMs and chose to integrate Anthropic’s API. I evaluated offerings from OpenAI, Google, Microsoft, IBM, and Meta before deciding on Anthropic for several reasons. First, it’s one of the most cost-effective options available. The ability to choose between different models—like Haiku, Sonnet, and Opus—based on budget and functionality needs was particularly appealing. Anthropic’s documentation and examples are outstanding, clearly designed with developers and not just large corporations in mind. Their resources are easy to navigate, complete with practical examples and easy-to-understand code repositories. The dashboard is intuitive, and tools for billing, token cost tracking, and spending limits are refreshingly transparent. It even allows you to fine-tune how you would like your "AI assistant" to behave. It’s evident that Anthropic deeply cares about the product they’re bringing into the world and the impact it will have.
One feature that particularly excites me is their recently open-sourced Model Context Protocol (MCP), which I am looking forward to exploring further and plan to write more about it as I dig in. I’m confident we’ll be seeing and using more of this kind of innovation in the near future. With MCP, I could also experiment with introducing tools that directly modify the database, opening up possibilities for seamless data management and dynamic interactions within applications.
The Model Context Protocol is an open standard that enables developers to build secure, two-way connections between their data sources and AI-powered tools. The architecture is straightforward: developers can either expose their data through MCP servers or build AI applications (MCP clients) that connect to these servers.
Challenges and Learnings
As a seasoned software engineer, I’m well-versed in writing code, fixing bugs, and troubleshooting, but managing my own projects and balancing the research and development of each feature has proven to be a unique challenge. This is by far the most ambitious solo project I’ve undertaken, and my initial tendency to dive straight into coding wasn’t going to work here. I realized I needed to approach each feature individually, compartmentalizing my work to ensure every detail was carefully planned and accounted for.
For example, I didn’t set up a local Supabase database initially and relied solely on the deployed version. It worked, but when I started thinking about collaboration or offline development, I realized why developing against production wasn't going to be sustainable long-term. That’s when I finally went back to the docs and saw that, of course 🤦, there's an entire section about how to develop locally and use Supabase’s CLI.
While it felt like a setback at the time, it turned into a great learning opportunity. I’ve since explored features like generating types from the database and managing migrations locally before deploying them. This experience was a reminder of the value of understanding new tools thoroughly before diving in.
Future Plans
I’m embracing my inner project manager and taking a more deliberate approach to development. Here’s what’s on the horizon:
- Styling Improvements: I want to incorporate sweeping landscape photos that my wife and I have taken, bringing a personal touch to the app’s design.
- Personalized AI Responses: Enhancing the AI assistant to provide even more tailored recommendations for users. This will help give better recommendations and give the user genuinely good (for them) information.
- Sharing Features: Allowing users to share checklists and trips with others. As well as adding more collaboration features.
- Food Planning: A tool to help users pack the right amount of food for their trips. No more overpacking or running out of snacks!
- Machine Vision Tool: I have an exciting idea in mind, but I’ll keep the details under wraps for now. Stay tuned!
This project has been an incredible journey, and I’m excited to keep refining it. If you’re a backpacker, I hope this app makes your adventures easier and more enjoyable. Check out the code over on GitHub, and let me know what you think—I’d love your feedback! Stay tuned for more posts as I continue to build and share my progress.