corpus.blog
Most cited
Talked about
Blogs
41554 blogs · [ { "id": "01a0c505-ee0d-721c-a38d-0491eabe6c4c", "title": "Claude Code Skills for Podcast Automation", "url": "https://www.danvega.dev/blog/claude-code-skills-not-just-for-coding", "published_at": "2026-09-20T09:00:00+00:00" }, { "id": "01a0c505-ee0d-721c-a38d-0491eaecb02c", "title": "Java Structured Concurrency in JDK 27: A Practical Example", "url": "https://www.danvega.dev/blog/java-structured-concurrency-jdk-27", "published_at": "2026-09-19T09:00:00+00:00" }, { "id": "01a0c505-ee0d-721c-a38d-0491eb73ad25", "title": "Getting Started with Jev in Java and Spring Boot", "url": "https://www.danvega.dev/blog/getting-started-jev-java-spring-boot", "published_at": "2026-09-18T09:00:00+00:00" }, { "id": "01a0c505-ee0d-721c-a38d-0491eba1b122", "title": "I Built My Own Content OS With Claude Code", "url": "https://www.danvega.dev/blog/content-os-claude-code-spring-boot", "published_at": "2026-09-17T09:00:00+00:00" }, { "id": "01a0b0be-0d64-70db-a9c6-8144aa71b799", "title": "ColdFusion Inside Spring Boot (One Property)", "url": "https://www.danvega.dev/blog/coldfusion-inside-spring-boot-boxlang-starter", "published_at": "2026-09-15T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a6b9bb2c1", "title": "The 5 Steps of AI Adoption: Which One Are You On?", "url": "https://www.danvega.dev/blog/five-steps-of-ai-adoption", "published_at": "2026-08-05T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a6c70d622", "title": "Can You Trust AI-Generated Code?", "url": "https://www.danvega.dev/blog/can-you-trust-ai-generated-code", "published_at": "2026-07-31T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a6ccc5c53", "title": "Upgrading Dependencies with AI: A Practical Guide", "url": "https://www.danvega.dev/blog/upgrading-dependencies-with-ai", "published_at": "2026-07-30T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a6db6ed96", "title": "Spring AI: Build Real Guardrails that hold", "url": "https://www.danvega.dev/blog/spring-ai-guardrails-safeguard-advisor", "published_at": "2026-07-28T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a6dc1dacf", "title": "Docker Compose for Java Developers, Explained", "url": "https://www.danvega.dev/blog/docker-compose-for-java-developers", "published_at": "2026-07-27T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a6e0b97bb", "title": "Spring AI 2.0 Tool Calling: Build a Live Claude-Style UI", "url": "https://www.danvega.dev/blog/spring-ai-tool-calling-advisor-2-0", "published_at": "2026-07-24T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a6e5b2d4f", "title": "Embabel 1.0 Is Here: AI Agent Framework for Java Goes GA", "url": "https://www.danvega.dev/blog/embabel-1-0-ga", "published_at": "2026-07-20T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a6ec196ef", "title": "My Content Creation Workflow: 10 Stages From Idea to Published", "url": "https://www.danvega.dev/blog/content-creation-workflow", "published_at": "2026-07-18T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a6ee8553f", "title": "Self-Correcting Structured Output in Spring AI 2.0", "url": "https://www.danvega.dev/blog/self-correcting-structured-output", "published_at": "2026-07-17T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a6f6a3680", "title": "Can You Use Java for AI? Why Java Is Better Positioned Than You Think", "url": "https://www.danvega.dev/blog/can-you-use-java-for-ai", "published_at": "2026-07-15T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a702913e3", "title": "Spring Boot End of Life: Every 3.x Branch Is Now Unsupported", "url": "https://www.danvega.dev/blog/spring-boot-end-of-life", "published_at": "2026-07-14T13:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a70a8dccc", "title": "How to Kill a Process Running on a Port (Windows, macOS & Linux)", "url": "https://www.danvega.dev/blog/kill-process-on-port", "published_at": "2026-07-14T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a70b16956", "title": "Spring AI Tool Search: Stop Wasting Tokens on Tools You Don't Need", "url": "https://www.danvega.dev/blog/spring-ai-tool-search", "published_at": "2026-07-09T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a7103bced", "title": "Building Custom Spring AI Advisors for Tool Logging and Token Tracking", "url": "https://www.danvega.dev/blog/spring-ai-custom-advisors-tool-logging-token-counter", "published_at": "2026-07-08T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a713642f4", "title": "UI.sh: Agent Skills That Actually Make AI-Generated UIs Look Good", "url": "https://www.danvega.dev/blog/ui-dot-sh-agent-skills-for-building-beautiful-uis", "published_at": "2026-07-07T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a71fc279c", "title": "ChatClient vs ChatModel: Which Spring AI API Should You Actually Use?", "url": "https://www.danvega.dev/blog/chatclient-vs-chatmodel-spring-ai", "published_at": "2026-07-02T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a72f1fe39", "title": "X (Twitter) MCP Servers with Spring AI: Search Posts and Query Docs Programmatically", "url": "https://www.danvega.dev/blog/x-twitter-mcp-servers-spring-ai", "published_at": "2026-07-01T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a73d7a19b", "title": "Type Safe Property Paths in Spring Boot 4.1", "url": "https://www.danvega.dev/blog/type-safe-property-paths-spring-boot-4-1", "published_at": "2026-06-30T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a73f9ab58", "title": "The New @RedisListener Annotation in Spring Boot 4.1", "url": "https://www.danvega.dev/blog/redis-listener-spring-boot-4-1", "published_at": "2026-06-29T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a74b757ee", "title": "SSRF Protection in Spring Boot 4.1 with InetAddressFilter", "url": "https://www.danvega.dev/blog/spring-boot-ssrf-protection-inet-address-filter", "published_at": "2026-06-26T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a752ac374", "title": "Lazy JDBC Connections in Spring Boot 4.1: One Property, Massive Performance Win", "url": "https://www.danvega.dev/blog/lazy-jdbc-connections-spring-boot-4-1", "published_at": "2026-06-25T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a76155a6e", "title": "Getting Started with Spring gRPC in Spring Boot 4.1", "url": "https://www.danvega.dev/blog/spring-grpc-spring-boot-4-1", "published_at": "2026-06-24T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a76b6535a", "title": "Spring Modulith Externalized Events: Publishing Events to Kafka", "url": "https://www.danvega.dev/blog/spring-modulith-externalized-events", "published_at": "2026-05-20T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a775b0ba5", "title": "Spring Boot + Kafka in 10 Minutes: Sending Your First Message", "url": "https://www.danvega.dev/blog/spring-boot-kafka-quick-start", "published_at": "2026-05-18T08:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a77dd8e49", "title": "Spring Modulith Durable Events: Reliable Event Processing Without a Message Broker", "url": "https://www.danvega.dev/blog/spring-modulith-durable-events", "published_at": "2026-05-14T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a7812a222", "title": "Introduction to Spring Modulith: Building Modular Monoliths with Spring Boot", "url": "https://www.danvega.dev/blog/introduction-to-spring-modulith", "published_at": "2026-04-30T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a784dd2dc", "title": "Embabel MCP Servers and Tools for Agentic Flows on the JVM", "url": "https://www.danvega.dev/blog/embabel-mcp-servers-and-tools", "published_at": "2026-04-10T08:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a790cefc7", "title": "Embabel First Look: Building Agentic Flows on the JVM", "url": "https://www.danvega.dev/blog/embabel-first-look", "published_at": "2026-04-02T08:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a7932481c", "title": "GraphQL for Java Developers with Spring Boot", "url": "https://www.danvega.dev/blog/getting-started-with-graphql-for-java-developers", "published_at": "2026-04-01T08:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a79c107eb", "title": "Spring, Build Me a Coding Agent", "url": "https://www.danvega.dev/blog/spring-building-me-a-coding-agent", "published_at": "2026-03-31T08:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a7a571448", "title": "Spring AI Deep Research Agent", "url": "https://www.danvega.dev/blog/spring-ai-deep-research-agent", "published_at": "2026-03-27T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a7a9da4e7", "title": "Getting Started with Error Handling in the RestClient", "url": "https://www.danvega.dev/blog/rest-client-error-handling", "published_at": "2026-03-26T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a7b94d170", "title": "Giving Your Spring AI Agents a Real Browser with the Browserbase Spring Boot Starter", "url": "https://www.danvega.dev/blog/browserbase-spring-boot-starter", "published_at": "2026-03-25T08:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a7c62c6be", "title": "JEP 500: Prepare to Make Final Mean Final in JDK 26", "url": "https://www.danvega.dev/blog/jdk-26-final-means-final", "published_at": "2026-03-20T10:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a7c7e4d6e", "title": "Building a Spring Initializr Terminal UI with Java", "url": "https://www.danvega.dev/blog/spring-initializr-tui", "published_at": "2026-03-14T10:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a7ca78e57", "title": "Spring AI Prompt Caching: Stop Wasting Money on Repeated Tokens", "url": "https://www.danvega.dev/blog/spring-ai-prompt-caching", "published_at": "2026-02-08T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a7ce87d4d", "title": "I Tried OpenAI's New Codex Agent. Here are my First Impressions (It's Really Good)", "url": "https://www.danvega.dev/blog/openai-codex-first-look", "published_at": "2026-02-05T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a7d722218", "title": "The Ralph Loop: Automate AI Coding Tasks in Java", "url": "https://www.danvega.dev/blog/ralph-loop", "published_at": "2026-02-05T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a7e449eb5", "title": "OpenTelemetry with Spring Boot 4: The New Starter", "url": "https://www.danvega.dev/blog/opentelemetry-spring-boot", "published_at": "2025-12-23T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a7eee5ba4", "title": "Building a Spring Boot 4 REST API the Fast Way", "url": "https://www.danvega.dev/blog/spring-boot-4-rest-api", "published_at": "2025-12-18T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a7f9b8ad9", "title": "Loading Resources in Spring Boot", "url": "https://www.danvega.dev/blog/loading-spring-resources", "published_at": "2025-12-17T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a800d28c0", "title": "Spring Security 7 Multi-Factor Authentication: Complete Tutorial with @EnableMultiFactorAuthentication", "url": "https://www.danvega.dev/blog/spring-security-7-multi-factor-authentication", "published_at": "2025-12-16T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a80190f6d", "title": "Spring Boot 4 Modularization: Fix Missing Auto-Configuration", "url": "https://www.danvega.dev/blog/spring-boot-4-modularization", "published_at": "2025-12-12T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a80477625", "title": "MockMvcTester vs RestTestClient: Which one Should You Use in Spring Boot 4?", "url": "https://www.danvega.dev/blog/mock-vs-rest", "published_at": "2025-12-10T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a804a648e", "title": "Spring JMS Client: A Complete Guide to JmsClient in Spring Boot 4", "url": "https://www.danvega.dev/blog/jms-client", "published_at": "2025-12-05T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a80f3d6bc", "title": "Spring Data AOT Repositories: Faster Startup and Build-Time Query Validation", "url": "https://www.danvega.dev/blog/spring-data-aot-repositories", "published_at": "2025-11-25T10:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a81d6b235", "title": "Spring Boot 4: Everything You Need to Know (4.0 and 4.1)", "url": "https://www.danvega.dev/blog/spring-boot-4-is-here", "published_at": "2025-11-24T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a82957e08", "title": "Native Retry Support in Spring Boot 4: No External Dependencies Required", "url": "https://www.danvega.dev/blog/spring-boot-4-native-retry-support", "published_at": "2025-11-13T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a8359c576", "title": "Jackson 3 in Spring Boot 4: JsonMapper, JSON Views, and What's Changed", "url": "https://www.danvega.dev/blog/jackson-3-spring-boot-4", "published_at": "2025-11-10T09:00:00+00:00" }, { "id": "01a08767-e88f-71e8-bb8f-527a839d79eb", "title": "HTTP Interfaces in Spring Boot 4: Say Goodbye to Boilerplate", "url": "https://www.danvega.dev/blog/http-interfaces-spring-boot-4", "published_at": "2025-11-06T09:00:00+00:00" } ] posts
Claim your blog
Back to danvega.dev
Blog · corpus.blog/blogs/danvega.dev/posts
danvega.dev
danvega.dev
2026
Claude Code Skills for Podcast Automation
original ↗
20 Sept 2026
Java Structured Concurrency in JDK 27: A Practical Example
original ↗
19 Sept 2026
Getting Started with Jev in Java and Spring Boot
original ↗
18 Sept 2026
I Built My Own Content OS With Claude Code
original ↗
17 Sept 2026
ColdFusion Inside Spring Boot (One Property)
original ↗
15 Sept 2026
The 5 Steps of AI Adoption: Which One Are You On?
original ↗
5 Aug 2026
Can You Trust AI-Generated Code?
original ↗
31 Jul 2026
Upgrading Dependencies with AI: A Practical Guide
original ↗
30 Jul 2026
Spring AI: Build Real Guardrails that hold
original ↗
28 Jul 2026
Docker Compose for Java Developers, Explained
original ↗
27 Jul 2026
Spring AI 2.0 Tool Calling: Build a Live Claude-Style UI
original ↗
24 Jul 2026
Embabel 1.0 Is Here: AI Agent Framework for Java Goes GA
original ↗
20 Jul 2026
My Content Creation Workflow: 10 Stages From Idea to Published
original ↗
18 Jul 2026
Self-Correcting Structured Output in Spring AI 2.0
original ↗
17 Jul 2026
Can You Use Java for AI? Why Java Is Better Positioned Than You Think
original ↗
15 Jul 2026
Spring Boot End of Life: Every 3.x Branch Is Now Unsupported
original ↗
14 Jul 2026
How to Kill a Process Running on a Port (Windows, macOS & Linux)
original ↗
14 Jul 2026
Spring AI Tool Search: Stop Wasting Tokens on Tools You Don't Need
original ↗
9 Jul 2026
Building Custom Spring AI Advisors for Tool Logging and Token Tracking
original ↗
8 Jul 2026
UI.sh: Agent Skills That Actually Make AI-Generated UIs Look Good
original ↗
7 Jul 2026
ChatClient vs ChatModel: Which Spring AI API Should You Actually Use?
original ↗
2 Jul 2026
X (Twitter) MCP Servers with Spring AI: Search Posts and Query Docs Programmatically
original ↗
1 Jul 2026
Type Safe Property Paths in Spring Boot 4.1
original ↗
30 Jun 2026
The New @RedisListener Annotation in Spring Boot 4.1
original ↗
29 Jun 2026
SSRF Protection in Spring Boot 4.1 with InetAddressFilter
original ↗
26 Jun 2026
Lazy JDBC Connections in Spring Boot 4.1: One Property, Massive Performance Win
original ↗
25 Jun 2026
Getting Started with Spring gRPC in Spring Boot 4.1
original ↗
24 Jun 2026
Spring Modulith Externalized Events: Publishing Events to Kafka
original ↗
20 May 2026
Spring Boot + Kafka in 10 Minutes: Sending Your First Message
original ↗
18 May 2026
Spring Modulith Durable Events: Reliable Event Processing Without a Message Broker
original ↗
14 May 2026
Introduction to Spring Modulith: Building Modular Monoliths with Spring Boot
original ↗
30 Apr 2026
Embabel MCP Servers and Tools for Agentic Flows on the JVM
original ↗
10 Apr 2026
Embabel First Look: Building Agentic Flows on the JVM
original ↗
2 Apr 2026
GraphQL for Java Developers with Spring Boot
original ↗
1 Apr 2026
Spring, Build Me a Coding Agent
original ↗
31 Mar 2026
Spring AI Deep Research Agent
original ↗
27 Mar 2026
Getting Started with Error Handling in the RestClient
original ↗
26 Mar 2026
Giving Your Spring AI Agents a Real Browser with the Browserbase Spring Boot Starter
original ↗
25 Mar 2026
JEP 500: Prepare to Make Final Mean Final in JDK 26
original ↗
20 Mar 2026
Building a Spring Initializr Terminal UI with Java
original ↗
14 Mar 2026
Spring AI Prompt Caching: Stop Wasting Money on Repeated Tokens
original ↗
8 Feb 2026
I Tried OpenAI's New Codex Agent. Here are my First Impressions (It's Really Good)
original ↗
5 Feb 2026
The Ralph Loop: Automate AI Coding Tasks in Java
original ↗
5 Feb 2026
2025
OpenTelemetry with Spring Boot 4: The New Starter
original ↗
23 Dec 2025
Building a Spring Boot 4 REST API the Fast Way
original ↗
18 Dec 2025
Loading Resources in Spring Boot
original ↗
17 Dec 2025
Spring Security 7 Multi-Factor Authentication: Complete Tutorial with @EnableMultiFactorAuthentication
original ↗
16 Dec 2025
Spring Boot 4 Modularization: Fix Missing Auto-Configuration
original ↗
12 Dec 2025
MockMvcTester vs RestTestClient: Which one Should You Use in Spring Boot 4?
original ↗
10 Dec 2025
Spring JMS Client: A Complete Guide to JmsClient in Spring Boot 4
original ↗
5 Dec 2025
Spring Data AOT Repositories: Faster Startup and Build-Time Query Validation
original ↗
25 Nov 2025
Spring Boot 4: Everything You Need to Know (4.0 and 4.1)
original ↗
24 Nov 2025
Native Retry Support in Spring Boot 4: No External Dependencies Required
original ↗
13 Nov 2025
Jackson 3 in Spring Boot 4: JsonMapper, JSON Views, and What's Changed
original ↗
10 Nov 2025
HTTP Interfaces in Spring Boot 4: Say Goodbye to Boilerplate
original ↗
6 Nov 2025