56,966 blogs · [ { "id": "01a08c60-e1cf-7102-bfa6-b58903e47b0a", "title": "AI made coding more enjoyable", "url": "https://weberdominik.com/blog/ai-coding-enjoyable/", "published_at": "2026-02-19T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b589046eee61", "title": "We should talk about LLMs, not AI", "url": "https://weberdominik.com/blog/llms-not-ai/", "published_at": "2026-02-19T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b589053c3d0d", "title": "Learning photography: composition", "url": "https://weberdominik.com/blog/learning-photography-composition/", "published_at": "2025-11-25T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b58906250e4c", "title": "Thoughts on using synthetic users for product development", "url": "https://weberdominik.com/blog/thoughts-on-synthetic-users-product-development/", "published_at": "2025-11-04T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b58906b3c81a", "title": "Rules for creating good-looking user interfaces, from a developer", "url": "https://weberdominik.com/blog/rules-user-interfaces/", "published_at": "2025-09-16T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b589071a5389", "title": "An approach for automated fact checking", "url": "https://weberdominik.com/blog/fact-checking-approach/", "published_at": "2025-03-31T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b58907b77be9", "title": "Self-hosting HyperDX for fun and profit", "url": "https://weberdominik.com/blog/self-host-hyperdx/", "published_at": "2025-01-14T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b58908a60c12", "title": "AsyncLocalStorage and how to use it to reduce repetition of log data", "url": "https://weberdominik.com/blog/asynclocalstorage-log-repetition/", "published_at": "2025-01-13T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b58909448545", "title": "Type-safe logging with custom string interpolation", "url": "https://weberdominik.com/blog/type-logging-string-interpolation/", "published_at": "2025-01-03T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b58909b157c0", "title": "On log levels", "url": "https://weberdominik.com/blog/on-log-levels/", "published_at": "2025-01-02T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b5890a173440", "title": "Monorepo setup with TypeScript, Tailwind, NextJs, and WXT (browser extension development) with shared components", "url": "https://weberdominik.com/blog/monorepo-wxt-nextjs/", "published_at": "2024-12-23T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b5890a767a20", "title": "When to choose the freemium pricing model as solo founder", "url": "https://weberdominik.com/blog/solo-founder-freemium/", "published_at": "2024-05-06T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b5890b6ba4bb", "title": "Pivoting to a well-defined product category", "url": "https://weberdominik.com/blog/pivoting-well-defined-category/", "published_at": "2024-04-17T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b5890bd1f440", "title": "Product naming trends over time", "url": "https://weberdominik.com/blog/product-naming-trends/", "published_at": "2024-04-15T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b5890c6d37e5", "title": "About risk taking in life and job", "url": "https://weberdominik.com/blog/risk-taking-in-life-and-job/", "published_at": "2024-02-29T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b5890cfdc487", "title": "What I want to achieve with Lighthouse", "url": "https://weberdominik.com/blog/what-to-achieve-with-lighthouse/", "published_at": "2024-02-26T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b5890df46b58", "title": "Think of dopamine as finite resource to spend on activities", "url": "https://weberdominik.com/blog/concept-dopamine-first/", "published_at": "2024-02-10T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b5890e428b5b", "title": "Reading articles and newsletters reduces blind spots", "url": "https://weberdominik.com/blog/reading-reducing-blind-spots/", "published_at": "2024-02-09T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b5890f04ed0f", "title": "Startups and marketing", "url": "https://weberdominik.com/blog/startups-marketing/", "published_at": "2023-11-26T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b5890f09bd30", "title": "Refactoring an entire NextJs application to server components", "url": "https://weberdominik.com/blog/server-components-refactoring/", "published_at": "2023-11-20T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b5890f652df1", "title": "Vertical tabs in Visual Studio Code", "url": "https://weberdominik.com/blog/vscode-vertical-tabs/", "published_at": "2022-06-25T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b5891024f427", "title": "List of Built-In Helper Types in TypeScript", "url": "https://weberdominik.com/blog/ts-builtin-types-list/", "published_at": "2019-07-15T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b589106da1ae", "title": "Mapped Types in TypeScript", "url": "https://weberdominik.com/blog/ts-mapped-types/", "published_at": "2019-07-15T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b58910e90720", "title": "Setting up a Reverse-Proxy with Nginx and docker-compose", "url": "https://weberdominik.com/blog/reverse-proxy-nginx-docker-compose/", "published_at": "2018-05-05T00:00:00+00:00" }, { "id": "01a08c60-e1cf-7102-bfa6-b589114bf6f4", "title": "Hosting Asp.Net Core Applications on Windows Server Core", "url": "https://weberdominik.com/blog/hosting-asp-net-core/", "published_at": "2018-04-04T00:00:00+00:00" } ] posts Claim your blog
Back to Dominik Weber
Blog · corpus.blog/blogs/weberdominik.com/posts

Dominik Weber

weberdominik.com

2026

2025

2024

2023

2022

2019

2018