This 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
An npm package which enhances the display of mermaid diagrams. Addin export, panning, zoom, an expanding lightbox and theme switching.
A complete solution for fetching and caching remote markdown content with support for multiple storage backends, automatic polling, and a stale-while-revalidate caching pattern.
A lightweight ASP.NET Core middleware for generating realistic mock API responses using local LLMs (via Ollama). Add intelligent mock endpoints to any project with just 2 lines of code!
- mostlylucid.pagingtaghelper
HTMX-enabled ASP.NET Core Tag Helpers to help with paging tasks.
- Umami.Net
A package helping with the use of the Umami Web Analytics software.
- MostlyLucid.EufySecurity
A HIGHLY EXPERIMENTAL .NET client library for controlling Eufy Security devices by connecting to Eufy cloud servers and local/remote stations over P2P. Supports cameras, doorbells, locks, sensors, and more.
Dive into some of the technical deep-dives and experiments from the blog:
- Building a Remote Markdown Fetcher for Markdig - A complete guide to building a Markdig extension with caching, remote content fetching, and TOC generation
- Creating an LLM Mock API with Ollama - Add intelligent mock endpoints to any project with just 2 lines of code
- [Umami.Net: Analytics Made Simple](https://www.mostlylucid.net/blog/category/Umami - Building a .NET client for privacy-focused web analytics
- HTMX & Alpine.js Integration Patterns - Building dynamic UIs without heavy JavaScript frameworks
- Mermaid Diagrams with Interactive Controls - Pan, zoom, and fullscreen diagram support
- Docker Multi-Stage Builds for .NET - Optimizing container images and deployment workflows
- Monitoring with Prometheus & Grafana - Setting up observability for ASP.NET Core applications
- Automated Blog Translation with EasyNMT - Building a multilingual blog with automated translation to 12 languages
mostlylucid is a living lab: part portfolio, part blog, part playground. It's where I share:
- Technical deep dives into ASP.NET Core, JavaScript frameworks (HTMX, Alpine.js), Docker, cloud, and search technologies
- Experiments with modern frontend stacks (Tailwind, DaisyUI, Markdown tooling, Mermaid diagrams)
- Open-source contributions like NuGet packages, tag helpers, and utilities
- Reflections on freelancing, remote work, and the craft of building resilient systems
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.
- Dual-mode blog system: File-based markdown or PostgreSQL database storage
- Multilingual support: Automated translation to 12 languages via EasyNMT
- Full-text search: PostgreSQL-powered search with tsvector/GIN indexes
- Comments system: Nested comments with closure table pattern
- Analytics: Integrated Umami analytics with custom .NET client
- Observability: Comprehensive logging (Serilog + Seq), metrics (Prometheus), and tracing
- .NET 9.0 - ASP.NET Core MVC for server-side rendering
- PostgreSQL 16 - Primary database with full-text search
- Entity Framework Core - ORM with code-first migrations
- Hangfire - Background job processing for newsletters
- HTMX 2.0 - Server-driven interactions without heavy JavaScript
- Alpine.js - Lightweight reactive components
- Tailwind CSS + DaisyUI - Utility-first styling with component library
- Highlight.js - Syntax highlighting with custom Razor support
- Mermaid - Interactive diagram rendering
- EasyMDE - Markdown editor
- Docker - Containerized deployment with Docker Compose
- Caddy - Reverse proxy and automatic HTTPS
- Prometheus + Grafana - Metrics and visualization
- Seq - Structured log aggregation
- Umami - Privacy-focused web analytics
- Cloudflare Tunnel - Secure remote access
- .NET 9.0 SDK
- Node.js (for frontend builds)
- Docker (optional, for full stack)
# 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.csprojThe 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 mostlylucidSee 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.
- Full-stack development across .NET and JavaScript ecosystems
- Systems architecture and rapid prototyping for complex web applications
- Open-source development - Building and maintaining NuGet packages, libraries, and tools
- Remote team leadership and startup bootstrapping
- Technical writing - Sharing knowledge through detailed technical articles
- Building developer tools and libraries for the .NET community
- Exploring modern web patterns with HTMX and Alpine.js
- Experimenting with AI/LLM integration in web applications
- Creating privacy-focused analytics and monitoring solutions
- Contributing to the Markdig ecosystem with custom extensions
With a career spanning from the early days of ASP.NET to modern cloud-native architectures, I've been fortunate to work on:
- Large-scale enterprise applications serving millions of users
- Developer tools and frameworks used by thousands of developers
- Startup MVPs that needed to scale quickly and reliably
- Open-source projects that solve real-world problems
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?
- Email: [email protected]
- Blog: mostlylucid.net
- GitHub: @scottgal
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.