DEV Community

Cover image for FieldNote: A Local-AI Nature Journal to Help You Touch Grass 🌿
Afnan B.R.
Afnan B.R.

Posted on

FieldNote: A Local-AI Nature Journal to Help You Touch Grass 🌿

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

What I Built

FieldNote is a nature journal built around one simple idea: spend less time looking at your screen and more time noticing the world around you.

Outdoor apps can sometimes turn an experience into another reason to stare at a phone. FieldNote tries to reverse that.

Here's how it works:

  • Outdoor observation missions: Generate a short, focused mission for a walk, garden visit, or time in a park.
  • Pocket Mode: Start a countdown, put your phone away, and spend time observing nature.
  • Authentic field notes: After returning, record what you noticed, what surprised you, sounds, colours, weather, and other sensory details.
  • AI-assisted journaling: Turn rough notes into a more structured reflection while keeping the original observations available.
  • Observation tally and FieldNote library: Record observations, save entries, and build a personal journal over time.

The AI is meant to help people express what they actually experienced—not invent wildlife sightings or pretend an unidentified species has been verified.

The goal is simple: make the screen the shortest part of the experience.

Demo

🌿 Try the FieldNote live demo.

The web interface is deployed on Cloudflare Pages. Explore the mission, pocket-mode, and nature-journaling interface.

Code

FieldNote is available on GitHub:

🌱 Explore the FieldNote source code

The repository includes the React frontend, the local Node.js/Express backend, shared AI prompts and validation utilities, Cloudflare Pages Functions, and automated tests.

How I Built It

I built FieldNote using React, Vite, Node.js, Express, Ollama, and open-weight AI models.

Local AI with Ollama

During local development, I used Qwen 2.5 7B through Ollama to experiment with generating outdoor observation missions and organizing rough field notes.

Running the model locally let me iterate on prompts and experiment with the AI workflow on my own machine, rather than relying exclusively on a proprietary cloud AI API.

Bringing the project to the web

To make a browser-based demo available, I added Cloudflare Pages Functions for the AI endpoints. The repository configures these functions to call Cloudflare Workers AI using @cf/meta/llama-3.2-3b-instruct.

The local and hosted versions therefore use different inference paths: local development uses Ollama, while the hosted AI endpoints are designed for Cloudflare Workers AI.

Keeping the output faithful

I added shared prompt construction, input validation, JSON extraction, output formatting, and error handling. The automated tests cover invalid inputs, model output parsing, failure cases, and API behavior.

The production frontend build succeeded, and the local automated test suite passed 23 of 23 tests.

One important distinction: I have confirmed that the deployed web interface loads, but a successful end-to-end AI inference on the hosted deployment still needs to be verified.

Why Does Open Innovation Matter?

Open innovation gave me the freedom to experiment with AI on my own terms.

Using Qwen 2.5 7B through Ollama meant I could run an open-weight model on my own machine, iterate on prompts, examine the surrounding code, and build around a specific purpose instead of designing the project around a single closed API.

That matters for a nature journal because personal notes may include sensitive reflections or location details.

The local and hosted versions have different privacy characteristics. In the local setup, AI requests go to Ollama running on the user's machine. In the hosted demo, AI requests are intended to be processed through Cloudflare Workers AI. Journal entries are stored in browser local storage, but the hosted AI workflow is not fully local or offline.

Open-weight models and open tools gave me more room to learn, experiment, and change how the AI behaves. They also helped me understand the full application—not just the model call, but the prompts, validation, API routes, storage, errors, and user experience around it.

As a student developer, that ability to experiment with the whole stack is what made this project a valuable learning experience.

For me, open innovation is about giving more people the ability to build, question, adapt, and improve AI for useful problems in their own communities.

Thanks for checking out FieldNote. 🌿

Less screen. More world.

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.