<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/film-recipe-base-a-web-app-for-the-fujifilm-community-mkxsxbkbb" -->

---
title: Film Recipe Base: A Web App for the Fujifilm Community
description: A developer and data analyst built Film Recipe Base, a free web app that aggregates Fujifilm film simulation recipes from multiple sources into a searchable,...
canonical: https://daily.dev/posts/film-recipe-base-a-web-app-for-the-fujifilm-community-mkxsxbkbb
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Film Recipe Base: A Web App for the Fujifilm Community | daily.dev
og:description: A developer and data analyst built Film Recipe Base, a free web app that aggregates Fujifilm film simulation recipes from multiple sources into a searchable,...
og:url: https://daily.dev/posts/film-recipe-base-a-web-app-for-the-fujifilm-community-mkxsxbkbb
og:image: https://api.daily.dev/og/posts/MkXSxbkbb.png
og:image:alt: Film Recipe Base: A Web App for the Fujifilm Community
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Film Recipe Base: A Web App for the Fujifilm Community

**[Medium](https://daily.dev/sources/medium_js)** · 10 min read · 0 upvotes · 0 comments

## Summary

A developer and data analyst built Film Recipe Base, a free web app that aggregates Fujifilm film simulation recipes from multiple sources into a searchable, filterable database. The project involved web scraping from four sources, data cleaning, feature engineering (~60 derived features including contrast, warmth, and genre suitability scores), K-Means clustering to group recipes into four aesthetic clusters, and Plotly visualizations. The app was built with Python Dash (no JavaScript required), containerized with Docker, and deployed on Railway via GitHub CI. Key features include filtering/browsing, side-by-side recipe comparison with similarity scores, a visual scatter map (Look Space), genre-based ranking, and a Surprise Me discovery tool.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://emrecanokten.medium.com/film-recipe-base-a-web-app-for-the-fujifilm-community-28f2e0321e31>

## Questions this post answers

### How can K-Means clustering be used to group items by derived visual or aesthetic features rather than raw data?

K-Means clustering can group items into meaningful categories by running it on engineered scores rather than raw values. In one project, around 60 derived features such as contrast score, warmth index, and colour cast strength were computed from raw camera settings, then K-Means produced four clear clusters (Warm Vintage Film, Gritty Film, Balanced Modern, Monochrome), each also assigned a uniqueness score measuring distance from its cluster center.

_Developers exploring unsupervised learning on custom feature sets can find similar project breakdowns on daily.dev._

### What Python framework lets you build interactive web apps with filters and charts without writing JavaScript?

Dash, a Python framework built on Plotly, allows building interactive web apps with callbacks connecting filters, charts, and page navigation without writing JavaScript from scratch. It was used to build a seven-page application including filter dashboards, comparison views, and scatter-plot exploration pages, deployed via Docker on Railway with GitHub-triggered rebuilds.

_Anyone weighing Dash against JavaScript frameworks for data-driven apps can track real build experiences on daily.dev._

## Similar posts on daily.dev

- [GitHub - eggricesoy/filmkit: Create and manage Fujifilm camera profiles, with ease and speed. Connect your camera and you are good to go\!](https://daily.dev/posts/github---eggricesoy-filmkit-create-and-manage-fujifilm-camera-profiles-with-ease-and-speed-connec-hzllscclk) · Hacker News · 3 upvotes · 0 comments
- [Darktable Styles mimicing Fujifilm's Film Simulations](https://daily.dev/posts/darktable-styles-mimicing-fujifilm-s-film-simulations-bx5tkvdy4) · Lobsters · 0 upvotes · 0 comments

---

Tags: [#python](https://daily.dev/tags/python), [#docker](https://daily.dev/tags/docker), [#unsupervised-learning](https://daily.dev/tags/unsupervised-learning), [#plotly](https://daily.dev/tags/plotly)

[View this post on daily.dev](https://daily.dev/posts/film-recipe-base-a-web-app-for-the-fujifilm-community-mkxsxbkbb)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Film Recipe Base: A Web App for the Fujifilm Community","url":"https://daily.dev/posts/film-recipe-base-a-web-app-for-the-fujifilm-community-mkxsxbkbb","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/film-recipe-base-a-web-app-for-the-fujifilm-community-mkxsxbkbb"},"datePublished":"2026-07-22T14:19:38.117Z","dateModified":"2026-09-14T07:38:37.640Z","description":"A developer and data analyst built Film Recipe Base, a free web app that aggregates Fujifilm film simulation recipes from multiple sources into a searchable,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/bac940eb5e71af997fe6dca91ab5dfa7?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/bac940eb5e71af997fe6dca91ab5dfa7?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Medium","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Medium","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium","url":"https://daily.dev/sources/medium_js"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/film-recipe-base-a-web-app-for-the-fujifilm-community-mkxsxbkbb","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"python,docker,unsupervised-learning,plotly","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Medium","item":"https://daily.dev/sources/medium_js"},{"@type":"ListItem","position":3,"name":"Film Recipe Base: A Web App for the Fujifilm Community"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/film-recipe-base-a-web-app-for-the-fujifilm-community-mkxsxbkbb#faq","mainEntity":[{"@type":"Question","name":"How can K-Means clustering be used to group items by derived visual or aesthetic features rather than raw data?","acceptedAnswer":{"@type":"Answer","text":"K-Means clustering can group items into meaningful categories by running it on engineered scores rather than raw values. In one project, around 60 derived features such as contrast score, warmth index, and colour cast strength were computed from raw camera settings, then K-Means produced four clear clusters (Warm Vintage Film, Gritty Film, Balanced Modern, Monochrome), each also assigned a uniqueness score measuring distance from its cluster center. Developers exploring unsupervised learning on custom feature sets can find similar project breakdowns on daily.dev."}},{"@type":"Question","name":"What Python framework lets you build interactive web apps with filters and charts without writing JavaScript?","acceptedAnswer":{"@type":"Answer","text":"Dash, a Python framework built on Plotly, allows building interactive web apps with callbacks connecting filters, charts, and page navigation without writing JavaScript from scratch. It was used to build a seven-page application including filter dashboards, comparison views, and scatter-plot exploration pages, deployed via Docker on Railway with GitHub-triggered rebuilds. Anyone weighing Dash against JavaScript frameworks for data-driven apps can track real build experiences on daily.dev."}}]}
```

