This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
What I Built
My friend loves hiking near our town in Himachal Pradesh. He dislikes staring at a screen to identify local plants or birds. I built TrailTale to solve this problem. TrailTale is a web application that creates hyper-local audio podcasts. A user types a location into the browser. The application searches the internet for real-time data about local wildlife, geology, and native plants. It writes a short documentary script and converts that text into an audio file. My friend can put her device away and listen to facts about the ground beneath her feet.
Demo
Code
Hyper-Local Ecosystem Podcast Generator
A stateless web app that generates personalized audio podcasts about local flora, fauna, and geology based on your location.
Architecture
-
/server- Node.js/Express backend with TypeScript -
/client- Vite + React frontend with neo-brutalism UI
Setup
Prerequisites
- Node.js 18+
- API keys for: SerpApi, LLM provider (Groq/DigitalOcean)
Environment Variables
- Copy the example env file:
cp server/.env.example server/.env
- Fill in your API keys in
server/.env:
-
SERPAPI_KEY- Get from serpapi.com -
LLM_API_KEY- Your LLM provider API key -
LLM_ENDPOINT- LLM API endpoint (defaults to Groq)
Installation
# Install server dependencies
cd server && npm install
# Install client dependencies
cd ../client && npm install
Running the App
Terminal 1 (Server):
cd server && npm run dev
Terminal 2 (Client):
cd client && npm run dev
The app will be available at:
- Frontend: http://localhost:5173
- Backend: http://localhost:3000
How It Works
- User enters a location
- Server searches for local ecosystem…
How I Built It
I built a stateless architecture using Node.js and React. The frontend uses a bold yellow design. The backend relies on an open-source pipeline.
- SerpApi runs three concurrent web searches for wildlife, geology, and plant data.
- The backend sends this data to the Groq API running the open-weight Llama 3.3 70B model.
- The model writes a 300-word conversational script about the specific location.
- The system passes the text to Transformers.js.
- Transformers.js runs the Xenova/speecht5_tts model locally on the server to generate a WAV audio file.
The system returns the audio buffer to the frontend audio player. The process takes roughly 20 seconds.
Why Does Open Innovation Matter?
Open models made this project possible and affordable. The system generates high-quality text using Llama 3.3 without expensive proprietary fees. Transformers.js runs the text-to-speech conversion locally on the server. A closed text-to-speech API charges per character. The open-source model allows TrailTale to generate infinite audio for free. Developers can host this application anywhere and run the models directly on their own hardware. This keeps user location data private and reduces reliance on paid services.
Prize Categories
- Best Use of SerpApi

Top comments (0)