DEV Community

Subham Duary
Subham Duary

Posted on

WanderInk: Turn Your Walks into Stories with Open-Source AI ๐ŸŒฟ

Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass Submission ๐ŸŒฟ

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass

๐ŸŒฟ WanderInk: Turn Your Walks into Stories with Open-Source AI

Every walk becomes a story.

We often go outside to clear our minds, explore new places, or take a break from our screens. Along the way, we notice little thingsโ€”a path surrounded by trees, sunlight falling through the leaves, an interesting flower, or the quiet atmosphere of a place we have never visited before.

We take a few photographs, continue walking, and eventually forget the small details that made the experience special.

What if those photographs could become something more than memories in your gallery?

That idea inspired me to build WanderInk, an AI-powered outdoor exploration journal that transforms a handful of photographs into a personalized adventure story.

Instead of spending your time looking at a screen, WanderInk encourages you to step outside, observe the world around you, capture a few meaningful moments, and let AI help you turn them into a story worth revisiting.

๐ŸŒฑ What I Built

WanderInk is a web application designed to make outdoor exploration more memorable through AI-generated storytelling.

The experience is intentionally simple:

  1. Go outside. Take a walk, explore a park, visit a new place, or simply pay attention to your surroundings.
  2. Capture the little things. Photograph landscapes, plants, interesting textures, lighting, scenery, or anything that catches your attention.
  3. Upload 3โ€“5 photographs. Choose a small collection of moments from your exploration.
  4. Let AI connect the moments. WanderInk analyzes the photographs and transforms them into a personalized, first-person adventure journal.
  5. Save or share your journey. Keep your adventure private or publish it to the community gallery.

The result is more than a collection of captions. WanderInk generates a complete journal entry with a title, summary, narrative, highlights, and a mood score.

The goal isn't to document every step of a walk. It's to preserve the feeling of the experience.

โœจ What makes WanderInk different?

AI-powered visual storytelling

WanderInk uses a multi-stage AI pipeline to understand the photographs before writing the story. Rather than treating each image as an isolated caption, it combines visual observations into a more coherent narrative.

Personalized adventure journals

The generated narrative is written from a first-person perspective, helping the experience feel like a personal reflection rather than a generic description of photographs.

Real-time generation progress

Story generation can take a little time, so WanderInk streams progress updates to the interface using Server-Sent Events (SSE). Users can follow the generation process instead of waiting without feedback.

A private space for your memories

Journeys are private by default, with the option to publish them to a community gallery. You can use WanderInk as a personal journal without making every adventure public.

Designed around being outdoors

WanderInk isn't intended to keep you scrolling while you're exploring. The idea is to capture a few meaningful moments, put your phone away, and return to your surroundings.

The technology supports the experience; it shouldn't replace it.

๐Ÿš€ Demo

Try WanderInk here:

Live application: https://wander-ink.vercel.app

You can explore the application and experience the idea behind turning ordinary outdoor moments into AI-assisted journal entries.

For the most meaningful test, take a short walk, capture a few photographs, and use them to create your own adventure.

๐Ÿ’ป Code

๐ŸŒฟ WanderInk

Every walk becomes a story.

An AI-powered outdoor exploration journal that transforms 3โ€“5 photographs into evocative, personalized adventure narratives.

Next.js React TypeScript Tailwind CSS Better Auth MongoDB Cloudflare R2 License


๐Ÿ“‘ Table of Contents


๐Ÿงญ Overview

WanderInk bridges the gap between outdoor exploration and personal journaling. Rather than letting snapshots sit buried in a camera roll, WanderInk invites users to take a walk, capture 3โ€“5 mindful photos of their surroundings (landscapes, flora, textures, architectural curiosities), and submit them to a dual-model AI narrative pipeline.

The WanderInk Pipeline

  1. Client-Side Compression: Photos are optimized and compressed in the browser to reduce latency and bandwidth.
  2. Direct S3/R2 Ingestion: Uploads bypass the application server via presigned URLsโ€ฆ

WanderInk is an open-source project released under the MIT License.

Feel free to explore the implementation, learn from the architecture, report issues, and contribute ideas that could make the experience better.

๐Ÿ› ๏ธ How I Built It

I wanted WanderInk to do more than connect an image upload form to a text-generation API. The core challenge was designing a workflow that could understand several photographs, identify relationships between them, and use those observations to generate a meaningful narrative.

Here's how the application is put together.

1. The technology stack

The project uses a modern TypeScript-based web stack:

  • Next.js 16 and React 19 for the application and user interface.
  • TypeScript 6 for type safety across the codebase.
  • Tailwind CSS 4 for styling.
  • MongoDB Atlas and Mongoose for persistent application data.
  • Better Auth for authentication.
  • Cloudflare R2 for photo storage.
  • TanStack React Query v5 for client-side server-state management.
  • Zod for schema validation.
  • browser-image-compression for reducing image sizes in the browser.
  • An OpenAI-compatible OmniRoute gateway for connecting to the AI models.

Each part serves a specific purpose, from managing user accounts and storing adventures to handling photos and generating stories.

2. A two-stage AI storytelling pipeline

This is the heart of WanderInk.

Generating a good story from several photographs requires more than asking a language model to describe what it sees. The system separates visual understanding from narrative generation.

Stage 1: Understand the photographs

A vision model analyzes the uploaded images and extracts useful observations, including:

  • Visible scenery and surroundings.
  • Important objects and visual focal points.
  • Lighting and atmosphere.
  • The mood suggested by the photographs.
  • Potential connections or narrative threads between the images.

These observations create a structured understanding of the visual material.

Stage 2: Turn those observations into a story

The structured visual synthesis is then passed to a companion language model. Using that information, the model generates the journal entry, including:

  • A suitable title.
  • A concise summary.
  • A full first-person narrative.
  • Highlights from the adventure.
  • A mood score.

Separating these stages gives the storytelling model more useful context than a collection of unrelated image descriptions. It also makes the workflow easier to understand and allows the vision and story models to be configured independently.

The model IDs are configurable through environment variables, so the two stages don't have to be permanently tied to one particular model.

3. Real-time generation with Server-Sent Events

AI generation isn't always instantaneous. Rather than making the user wait for one large response, WanderInk uses Server-Sent Events (SSE) to stream generation progress to the client.

This helps the interface communicate what's happening while the story is being created and makes the process feel more responsive.

4. Efficient photo uploads and storage

Photographs can be large, especially when captured using modern smartphone cameras. Uploading original files unnecessarily can make the experience slower and consume more bandwidth.

WanderInk addresses this with a few practical choices:

  • Images are compressed on the client side before upload.
  • Presigned URLs allow the browser to upload images directly to Cloudflare R2.
  • Private image assets can be accessed through signed GET URLs.

This keeps the application's storage workflow separate from the main application server and helps manage uploaded media more efficiently.

5. Authentication, persistence, and sharing

WanderInk uses Better Auth for authentication and MongoDB Atlas with Mongoose for application data.

This provides the foundation for associating adventures with users, retaining generated journal entries, and supporting the distinction between private journeys and those published to the community gallery.

Privacy is part of the product's default experience: adventures are private unless the user chooses to share them.

6. Keeping the AI layer flexible

The AI integration uses a self-hosted OmniRoute gateway that supports OpenAI-compatible model interfaces.

The vision and story models are configured separately through environment variables:

  • VISION_MODEL controls the model used for visual analysis.
  • STORY_MODEL controls the model used for narrative generation.

This separation makes experimentation easier. Different models can be evaluated for their visual understanding, narrative quality, latency, and suitability for the task without redesigning the entire application.

The exact models used in a deployment depend on its configuration.

๐Ÿค– Why Does Open Innovation Matter?

For me, open innovation is important because AI-powered products shouldn't have to remain tied to a single model provider or a closed implementation.

WanderInk is built around a workflow that can experiment with different models for different jobs. Visual analysis and creative writing have different requirements, and a model that performs well at one task might not be the best choice for the other.

An open and flexible AI ecosystem makes it easier to:

Experiment beyond a single provider

Developers can evaluate different compatible models and choose based on the needs of the application rather than designing everything around one fixed option.

Build specialized AI workflows

WanderInk demonstrates how multiple AI stages can work together. A vision model extracts useful observations, while a language model turns those observations into a personal narrative.

Understand and improve the implementation

An open-source codebase allows other developers to inspect the architecture, suggest improvements, identify issues, and build on the existing work.

Make room for community-driven ideas

Someone might have an idea for a different storytelling style, a better way to connect photographs, or a new way to organize outdoor journals. An accessible codebase makes those ideas easier to explore collaboratively.

Open innovation isn't just about having more model choices. It's also about giving developers and communities the freedom to experiment, learn, and improve the tools they use.

Of course, model flexibility doesn't automatically guarantee lower costs, complete privacy, or offline operation. Those depend on the actual model deployment, infrastructure, and application design. The benefit is having more room to make those decisions deliberately.

๐ŸŒ The Bigger Idea: Technology That Encourages You to Disconnect

One thing I find interesting about AI is that we often use it to spend more time on our devicesโ€”to generate more content, consume more information, and automate more digital tasks.

But AI can also support experiences that happen away from a screen.

WanderInk explores that second possibility.

The application gives you a reason to notice your surroundings, take a few photographs, and preserve the experience in a creative way. Once the photographs are captured, you can put your phone away and enjoy the walk. The storytelling happens afterward.

A quiet walk doesn't need to become a productivity task. A photograph doesn't need to become a social media post. And an outdoor experience doesn't need to be measured by how much content it produces.

Sometimes, a few small details are enough to bring a memory back to life.

That's the feeling I want WanderInk to preserve.

๐Ÿ’š What's Next?

There is plenty of room to evolve WanderInk as I continue exploring the intersection of AI, storytelling, and outdoor wellness.

Some areas worth exploring include:

  • More narrative styles and storytelling preferences.
  • Better ways to connect visual details across photographs.
  • Additional AI models for experimentation.
  • Improvements to the journal creation experience.
  • New ways for people to discover and share outdoor adventures.

These are directions to explore rather than features I'm claiming are already implemented.

I'd love to hear what other developers think about this idea. How would you use AI to make everyday experiences more meaningful? What would make a tool like WanderInk more useful without making people spend more time looking at their phones?

๐ŸŒฟ Give WanderInk a Try

Live demo: https://wander-ink.vercel.app

Open-source repository: https://github.com/CodesWithSubham/wanderink

If you try it, consider using photographs from a real walk and sharing what kind of story the experience creates for you.

I'd especially love feedback on the storytelling quality, the experience of creating a journal, and ideas for making the project better.

The best part of WanderInk isn't the AI model or the technology stack. It's the idea behind them:

Your next great story might begin when you put your phone away and take a walk. ๐ŸŒฑ

Top comments (0)