Inspiration
I camp a lot in Canada, and planning a trip is often the same mess- five Parks Canada tabs, three provincial park sites, Environment Canada open in the background, some random blog post about what sleeping bag rating I need for Jasper in September. It's stupid. All that info should live in one place.
So I built Woodsmoke- a camping trip planner that actually looks like something you'd want to use, not a government website from 2008 (no offence, government).
What it does
There's an interactive topo map with 97 parks across every province and territory. You can filter by amenities, province, or how close they are to you- click a park and you get the full picture: campground details, what's available, booking links.
Pick your travel dates and Woodsmoke pulls a weather forecast. The fun part: if your trip is more than 16 days out (because who plans camping last minute?), it grabs 5 years of historical weather data and averages it by calendar day. So you can plan your August trip in February and actually know what you're getting into.
It also estimates a Fire Weather Index for each day- something I haven't seen in any other camping app. If you've ever shown up to a park with firewood only to find out there's a fire ban, you know why this matters!
Then there's the packing list. It looks at the forecast, what amenities the campground has, whether you're in bear country, the terrain type, fire danger, your activities, trip length- and spits out a checklist with reasons for each item. "Lows hitting -3°C" next to the thermal base layer. "No potable water on site" next to the filter. That kind of thing.
How I built it
React 19 · TypeScript · Vite · MapLibre GL · Tailwind CSS v4 · Open-Meteo
No API keys anywhere. The maps are OpenFreeMap (free, open-source), weather is Open-Meteo (also free), hosted on Vercel. I spent a probably-unreasonable amount of time restyling 50+ map layers to get that muted earth-tone look- sage greens, warm browns, cream backgrounds. The park data was all assembled by hand because no single API covers Canadian parks across federal and provincial jurisdictions.
Challenges
Biggest headache was the Fire Weather Index. Canada's official FWI system tracks soil moisture buildup over weeks- way too complex to replicate. I ended up building a simplified single-day approximation from temperature, humidity, wind, and precipitation. Not perfect, but good enough to flag "hey, maybe don't count on having a campfire this weekend."
The historical weather averaging had its own annoyances- aligning dates across 5 years of data, dealing with leap years, filling gaps where stations had missing readings.
Takeaways
Honestly, the biggest thing: design matters at hackathons. I went topo-aesthetic-first and it made everything feel finished way earlier than it had any right to. The map is the app, and making it look good pulled the whole thing together.
Built With
- maplibre
- open-mateo
- react
- tailwind
- typescript
- vite

Log in or sign up for Devpost to join the conversation.