The mad scientists lab for the mostlylucid site with engineering experiements, tag helpers, markdig extensooons etc..e.tc...
See the codeThis repository contains the source code for mostlylucid.net - the personal site and blog of Scott Galloway, a consulting web developer and systems architect with over 30 years of experience building web applications.
๐ Visit the live site: mostlylucid.net
The site maps /resume to a separately running lucidRESUME compiler through a
same-origin gateway. Readers can open a published rรฉsumรฉ, its JobML and complete
source transcript, ordered source chunks, and Markdown, Word, or PDF downloads.
POST requests require the configured writer email; an explicit loopback-only
setting permits local development without site login. The gateway forwards only
the compiler's antiforgery cookie.
Set LucidResumeProxy__UpstreamUri to the compiler root, for example
http://127.0.0.1:5098/, and LucidResumeProxy__WriterEmail for the public site.
Set the compiler's LucidResumeCompiler__PublicBaseUri to the site's /resume
URL so document citations lead back to this gateway. Keep the compiler's
publication storage persistent so existing verification links remain valid.
For local setup, run scripts/run-local-resume-integration.sh from the adjacent
lucidRESUME checkout. That script enables file-backed blog mode and local
analytics placeholders. The compiler guide
documents the Ollama model and the complete route list.
Self-contained, portable executables - no runtime install required.
Fast, local, privacy-first data profiling with DuckDB + optional LLM narration. Profile any CSV, Excel, Parquet, JSON, SQLite, or log file in seconds.
# Quick profile (pure stats, no LLM)
datasummarizer -f data.csv --no-llm --fast
# Q&A mode with LLM insights
datasummarizer -f data.csv --query "what drives churn?" --model qwen2.5-coder:7b
# Profile Apache/IIS log files
datasummarizer -f /var/log/apache2/error.log --no-llm --fast
Features:
๐ Full Documentation
Turn documents or URLs into evidence-grounded summaries - every claim cites its source. Runs entirely on your machine.
# Fast extractive summary (no LLM, ~3s)
docsummarizer -f document.pdf -m Bert
# With LLM synthesis (~10s)
docsummarizer -f report.pdf -m BertRag
# Summarize a URL
docsummarizer -u https://example.com/article
Features:
๐ Full Documentation
Enhances Mermaid diagrams with export, panning, zoom, expanding lightbox, and theme switching.
npm install @mostlylucid/mermaid-enhancements
๐ npm package
A minimal, file-based markdown blog for ASP.NET Core. Just point to a folder of markdown files and go.
builder.Services.AddMinimalBlog(options =>
{
options.MarkdownPath = "Markdown";
});
app.UseMinimalBlog();
Features:
๐ Full Documentation
A complete solution for fetching and caching remote markdown content with multiple storage backends, automatic polling, and stale-while-revalidate caching.
๐ NuGet Package
Lightweight ASP.NET Core middleware for generating realistic mock API responses using local LLMs (via Ollama). Add intelligent mock endpoints with 2 lines of code.
๐ NuGet Package
HTMX-enabled ASP.NET Core Tag Helpers for paging tasks.
๐ NuGet Package
A .NET client for Umami Web Analytics - privacy-focused analytics integration.
๐ NuGet Package
HIGHLY EXPERIMENTAL .NET client library for controlling Eufy Security devices via cloud and P2P connections.
๐ NuGet Package
| Project | Description |
|---|---|
| TinyLLM | Windows WPF app for local AI chat with RAG memory. Supports Ollama and direct GGUF loading. |
| Chat.Server | SignalR hub for real-time chat between website visitors and administrators. |
| Chat.Widget | Embeddable JavaScript chat widget for any website. |
| SemanticSearch | CPU-friendly semantic search using ONNX embeddings and Qdrant. |
| BlogLLM | RAG knowledge base builder for markdown documents. |
| SemanticGallery.Demo | Image gallery with semantic search capabilities. |
| SentimentAnalysis | Local sentiment analysis using ONNX models. |
| Workflow.Engine | Simple workflow execution engine. |
Clarifier sentinel (tiny LLM) is enabled by default. Configure via
DataSummarizerSettings:
EnableClarifierSentinel(default: true)ClarifierSentinelModel(default:qwen2.5:1.5b; falls back to heuristics if unavailable)
File: Rotten Tomatoes Movies.csv
Session: 21380e65cf9d4db18305d7950aee1b2f
> What is the average?
Average over which dimension? Pick one:
- overall (no grouping)
- by rating
- by tomatometer_status
- by runtime_in_minutes quartiles
SQL: /* clarification required: average dimension not specified (no SQL executed) */
> overall
The average runtime of the movies is 102.39 minutes, with an average
Tomatometer score of 60.47 and an average audience rating of 60.47.
SQL:
SELECT AVG("runtime_in_minutes") AS avg_runtime,
AVG("tomatometer_rating") AS avg_tomatometer,
AVG("audience_rating") AS avg_audience
FROM read_csv_auto('sampledata/Rotten+Tomatoes+Movies.csv/Rotten Tomatoes Movies.csv');
Dive into some of the technical deep-dives and experiments from the blog:
mostlylucid is a living lab: part portfolio, part blog, part playground. It's where I share:
The site is intentionally a work in progress - things may break, evolve, or get rebuilt entirely. That's part of the ethos: showing how things are built, not just the polished result.
# Clone the repository
git clone https://github.com/scottgal/mostlylucidweb.git
cd mostlylucidweb
# Install dependencies
npm install
dotnet restore
# Build frontend assets
npm run build
# Run the development server
dotnet run --project Mostlylucid/Mostlylucid.csproj
The site will be available at https://localhost:5001
For the full stack including database, analytics, and monitoring:
# Start all services
docker-compose up -d
# View logs
docker-compose logs -f mostlylucid
See CLAUDE.md for detailed development documentation.
Scott Galloway is a consulting web developer and systems architect with over 30 years of experience building web applications. As a former Microsoft ASP.NET Program Manager, he has deep expertise in the .NET ecosystem and has worked with everyone from Fortune 500 companies to early-stage startups.
With a career spanning from the early days of ASP.NET to modern cloud-native architectures, I've been fortunate to work on:
I believe in building in public - sharing both successes and failures, showing the messy middle of development, not just the polished result.
Interested in collaborating, consulting, or just chatting about building things?
This repo is primarily Scott's personal playground, but feedback, issues, and suggestions are welcome. Feel free to open a PR or drop a note.
Unlicense - This is free and unencumbered software released into the public domain. See LICENSE for details.
C#
83.0%
HTML
9.8%
JavaScript
3.8%
TypeScript
1.5%
The mad scientists lab for the mostlylucid site with engineering experiements, tag helpers, markdig extensooons etc..e.tc...
See the codeThis repository contains the source code for mostlylucid.net - the personal site and blog of Scott Galloway, a consulting web developer and systems architect with over 30 years of experience building web applications.
๐ Visit the live site: mostlylucid.net
The site maps /resume to a separately running lucidRESUME compiler through a
same-origin gateway. Readers can open a published rรฉsumรฉ, its JobML and complete
source transcript, ordered source chunks, and Markdown, Word, or PDF downloads.
POST requests require the configured writer email; an explicit loopback-only
setting permits local development without site login. The gateway forwards only
the compiler's antiforgery cookie.
Set LucidResumeProxy__UpstreamUri to the compiler root, for example
http://127.0.0.1:5098/, and LucidResumeProxy__WriterEmail for the public site.
Set the compiler's LucidResumeCompiler__PublicBaseUri to the site's /resume
URL so document citations lead back to this gateway. Keep the compiler's
publication storage persistent so existing verification links remain valid.
For local setup, run scripts/run-local-resume-integration.sh from the adjacent
lucidRESUME checkout. That script enables file-backed blog mode and local
analytics placeholders. The compiler guide
documents the Ollama model and the complete route list.
Self-contained, portable executables - no runtime install required.
Fast, local, privacy-first data profiling with DuckDB + optional LLM narration. Profile any CSV, Excel, Parquet, JSON, SQLite, or log file in seconds.
# Quick profile (pure stats, no LLM)
datasummarizer -f data.csv --no-llm --fast
# Q&A mode with LLM insights
datasummarizer -f data.csv --query "what drives churn?" --model qwen2.5-coder:7b
# Profile Apache/IIS log files
datasummarizer -f /var/log/apache2/error.log --no-llm --fast
Features:
๐ Full Documentation
Turn documents or URLs into evidence-grounded summaries - every claim cites its source. Runs entirely on your machine.
# Fast extractive summary (no LLM, ~3s)
docsummarizer -f document.pdf -m Bert
# With LLM synthesis (~10s)
docsummarizer -f report.pdf -m BertRag
# Summarize a URL
docsummarizer -u https://example.com/article
Features:
๐ Full Documentation
Enhances Mermaid diagrams with export, panning, zoom, expanding lightbox, and theme switching.
npm install @mostlylucid/mermaid-enhancements
๐ npm package
A minimal, file-based markdown blog for ASP.NET Core. Just point to a folder of markdown files and go.
builder.Services.AddMinimalBlog(options =>
{
options.MarkdownPath = "Markdown";
});
app.UseMinimalBlog();
Features:
๐ Full Documentation
A complete solution for fetching and caching remote markdown content with multiple storage backends, automatic polling, and stale-while-revalidate caching.
๐ NuGet Package
Lightweight ASP.NET Core middleware for generating realistic mock API responses using local LLMs (via Ollama). Add intelligent mock endpoints with 2 lines of code.
๐ NuGet Package
HTMX-enabled ASP.NET Core Tag Helpers for paging tasks.
๐ NuGet Package
A .NET client for Umami Web Analytics - privacy-focused analytics integration.
๐ NuGet Package
HIGHLY EXPERIMENTAL .NET client library for controlling Eufy Security devices via cloud and P2P connections.
๐ NuGet Package
| Project | Description |
|---|---|
| TinyLLM | Windows WPF app for local AI chat with RAG memory. Supports Ollama and direct GGUF loading. |
| Chat.Server | SignalR hub for real-time chat between website visitors and administrators. |
| Chat.Widget | Embeddable JavaScript chat widget for any website. |
| SemanticSearch | CPU-friendly semantic search using ONNX embeddings and Qdrant. |
| BlogLLM | RAG knowledge base builder for markdown documents. |
| SemanticGallery.Demo | Image gallery with semantic search capabilities. |
| SentimentAnalysis | Local sentiment analysis using ONNX models. |
| Workflow.Engine | Simple workflow execution engine. |
Clarifier sentinel (tiny LLM) is enabled by default. Configure via
DataSummarizerSettings:
EnableClarifierSentinel(default: true)ClarifierSentinelModel(default:qwen2.5:1.5b; falls back to heuristics if unavailable)
File: Rotten Tomatoes Movies.csv
Session: 21380e65cf9d4db18305d7950aee1b2f
> What is the average?
Average over which dimension? Pick one:
- overall (no grouping)
- by rating
- by tomatometer_status
- by runtime_in_minutes quartiles
SQL: /* clarification required: average dimension not specified (no SQL executed) */
> overall
The average runtime of the movies is 102.39 minutes, with an average
Tomatometer score of 60.47 and an average audience rating of 60.47.
SQL:
SELECT AVG("runtime_in_minutes") AS avg_runtime,
AVG("tomatometer_rating") AS avg_tomatometer,
AVG("audience_rating") AS avg_audience
FROM read_csv_auto('sampledata/Rotten+Tomatoes+Movies.csv/Rotten Tomatoes Movies.csv');
Dive into some of the technical deep-dives and experiments from the blog:
mostlylucid is a living lab: part portfolio, part blog, part playground. It's where I share:
The site is intentionally a work in progress - things may break, evolve, or get rebuilt entirely. That's part of the ethos: showing how things are built, not just the polished result.
# Clone the repository
git clone https://github.com/scottgal/mostlylucidweb.git
cd mostlylucidweb
# Install dependencies
npm install
dotnet restore
# Build frontend assets
npm run build
# Run the development server
dotnet run --project Mostlylucid/Mostlylucid.csproj
The site will be available at https://localhost:5001
For the full stack including database, analytics, and monitoring:
# Start all services
docker-compose up -d
# View logs
docker-compose logs -f mostlylucid
See CLAUDE.md for detailed development documentation.
Scott Galloway is a consulting web developer and systems architect with over 30 years of experience building web applications. As a former Microsoft ASP.NET Program Manager, he has deep expertise in the .NET ecosystem and has worked with everyone from Fortune 500 companies to early-stage startups.
With a career spanning from the early days of ASP.NET to modern cloud-native architectures, I've been fortunate to work on:
I believe in building in public - sharing both successes and failures, showing the messy middle of development, not just the polished result.
Interested in collaborating, consulting, or just chatting about building things?
This repo is primarily Scott's personal playground, but feedback, issues, and suggestions are welcome. Feel free to open a PR or drop a note.
Unlicense - This is free and unencumbered software released into the public domain. See LICENSE for details.
C#
83.0%
HTML
9.8%
JavaScript
3.8%
TypeScript
1.5%