• Townie
    AI
  • Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
spooky

spooky

winn

Public
Like
1
winn
Home
Code
4
backend
3
frontend
3
shared
1
README.md
Branches
1
Pull requests
Remixes
History
Environment variables
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
README.md
Code
/
README.md
Search
7/31/2025
Viewing readonly version of main branch: v13
View latest version
README.md

Terroir Harmony AI Blend Designer

Unleash the Art of Blending with Data-Driven Precision

A simplified implementation of an AI-powered wine blending assistant built on Val Town.


Introduction

The Terroir Harmony AI Blend Designer is a custom AI application designed for boutique winemakers. It leverages AI to propose wine blend compositions, predict sensory profiles, and assess market suitability.

Features

  • Blend Composition Generator: Input desired wine characteristics and get AI-generated blend ratios
  • Sensory Profile Prediction: Receive detailed tasting notes and aroma descriptors for proposed blends
  • Market Suitability Scoring: Get predicted consumer appeal scores
  • Chemical Analysis Integration: Store and analyze vineyard block data
  • Historical Blend Tracking: Maintain records of successful blends

Architecture

This Val Town implementation uses:

  • Backend: Hono.js API framework
  • Database: SQLite for data persistence
  • AI: OpenAI GPT-4 for blend generation and sensory prediction
  • Frontend: React with TailwindCSS
  • Storage: Val Town Blob storage for file uploads

Project Structure

├── backend/
│   ├── index.ts              # Main API entry point
│   ├── database/
│   │   ├── migrations.ts     # Database schema
│   │   └── queries.ts        # Database operations
│   └── routes/
│       ├── blends.ts         # Blend generation endpoints
│       ├── data.ts           # Data management endpoints
│       └── static.ts         # Static file serving
├── frontend/
│   ├── index.html            # Main HTML template
│   ├── index.tsx             # React app entry point
│   └── components/
│       ├── App.tsx           # Main app component
│       ├── BlendGenerator.tsx
│       ├── DataUpload.tsx
│       └── BlendHistory.tsx
├── shared/
│   └── types.ts              # Shared TypeScript types
└── data/
    └── sample_data.json      # Sample wine data

Getting Started

  1. The main application runs at the root HTTP endpoint
  2. Upload chemical analysis data via the data management interface
  3. Use the blend generator to create new wine blends
  4. Review historical blends and their performance

API Endpoints

  • GET / - Main application interface
  • POST /api/blends/generate - Generate new blend compositions
  • GET /api/blends - List historical blends
  • POST /api/data/upload - Upload chemical analysis data
  • GET /api/data/vineyard-blocks - Get vineyard block data

Technology Stack

  • Backend: Hono.js, SQLite, OpenAI API
  • Frontend: React, TailwindCSS
  • Platform: Val Town serverless environment
FeaturesVersion controlCode intelligenceCLI
Use cases
TeamsAI agentsSlackGTM
ExploreDocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Terms of usePrivacy policyAbuse contact
© 2025 Val Town, Inc.