Skip to content

Commit 8e87bee

Browse files
committed
Add new v8.10 Release Notes
1 parent 598991e commit 8e87bee

48 files changed

Lines changed: 1065 additions & 342 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

MyApp/Pages/Start.cshtml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,14 @@ const App = {
259259
<div class="mb-4 flex flex-col items-center">
260260
<h2 class="my-8 tracking-tight font-semibold text-xl text-slate-600">Tailwind SPA Templates</h2>
261261
<div class="flex flex-wrap justify-center gap-x-2">
262+
<div>
263+
<ProjectTemplate :name="name" :mix="mixTags" repo="NetCoreTemplates/react-vite" :tags="['empty','vite']" :count="count('react-vite')">
264+
<div class="mb-3 text-xl font-medium text-gray-700 dark:text-gray-200">React Vite</div>
265+
<template #icon>
266+
<svg class="w-12 h-12 text-indigo-600" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M12 10.11c1.03 0 1.87.84 1.87 1.89c0 1-.84 1.85-1.87 1.85c-1.03 0-1.87-.85-1.87-1.85c0-1.05.84-1.89 1.87-1.89M7.37 20c.63.38 2.01-.2 3.6-1.7c-.52-.59-1.03-1.23-1.51-1.9a22.7 22.7 0 0 1-2.4-.36c-.51 2.14-.32 3.61.31 3.96m.71-5.74l-.29-.51c-.11.29-.22.58-.29.86c.27.06.57.11.88.16l-.3-.51m6.54-.76l.81-1.5l-.81-1.5c-.3-.53-.62-1-.91-1.47C13.17 9 12.6 9 12 9c-.6 0-1.17 0-1.71.03c-.29.47-.61.94-.91 1.47L8.57 12l.81 1.5c.3.53.62 1 .91 1.47c.54.03 1.11.03 1.71.03c.6 0 1.17 0 1.71-.03c.29-.47.61-.94.91-1.47M12 6.78c-.19.22-.39.45-.59.72h1.18c-.2-.27-.4-.5-.59-.72m0 10.44c.19-.22.39-.45.59-.72h-1.18c.2.27.4.5.59.72M16.62 4c-.62-.38-2 .2-3.59 1.7c.52.59 1.03 1.23 1.51 1.9c.82.08 1.63.2 2.4.36c.51-2.14.32-3.61-.32-3.96m-.7 5.74l.29.51c.11-.29.22-.58.29-.86c-.27-.06-.57-.11-.88-.16l.3.51m1.45-7.05c1.47.84 1.63 3.05 1.01 5.63c2.54.75 4.37 1.99 4.37 3.68c0 1.69-1.83 2.93-4.37 3.68c.62 2.58.46 4.79-1.01 5.63c-1.46.84-3.45-.12-5.37-1.95c-1.92 1.83-3.91 2.79-5.38 1.95c-1.46-.84-1.62-3.05-1-5.63c-2.54-.75-4.37-1.99-4.37-3.68c0-1.69 1.83-2.93 4.37-3.68c-.62-2.58-.46-4.79 1-5.63c1.47-.84 3.46.12 5.38 1.95c1.92-1.83 3.91-2.79 5.37-1.95M17.08 12c.34.75.64 1.5.89 2.26c2.1-.63 3.28-1.53 3.28-2.26c0-.73-1.18-1.63-3.28-2.26c-.25.76-.55 1.51-.89 2.26M6.92 12c-.34-.75-.64-1.5-.89-2.26c-2.1.63-3.28 1.53-3.28 2.26c0 .73 1.18 1.63 3.28 2.26c.25-.76.55-1.51.89-2.26m9 2.26l-.3.51c.31-.05.61-.1.88-.16c-.07-.28-.18-.57-.29-.86l-.29.51m-2.89 4.04c1.59 1.5 2.97 2.08 3.59 1.7c.64-.35.83-1.82.32-3.96c-.77.16-1.58.28-2.4.36c-.48.67-.99 1.31-1.51 1.9M8.08 9.74l.3-.51c-.31.05-.61.1-.88.16c.07.28.18.57.29.86l.29-.51m2.89-4.04C9.38 4.2 8 3.62 7.37 4c-.63.35-.82 1.82-.31 3.96a22.7 22.7 0 0 1 2.4-.36c.48-.67.99-1.31 1.51-1.9Z"/></svg>
267+
</template>
268+
</ProjectTemplate>
269+
</div>
262270
<div>
263271
<ProjectTemplate :name="name" :mix="mixTags" repo="NetCoreTemplates/vue-spa" :tags="['vite','auth']" :count="count('vue-spa')">
264272
<div class="mb-3 text-xl font-medium text-gray-700 dark:text-gray-200">Vue SPA</div>
@@ -267,6 +275,14 @@ const App = {
267275
</template>
268276
</ProjectTemplate>
269277
</div>
278+
<div>
279+
<ProjectTemplate :name="name" repo="NetCoreTemplates/nextjs" :tags="['tailwind','autoquery']" :count="count('nextjs')">
280+
<div class="mb-3 text-xl font-medium text-gray-700 dark:text-gray-200">Next.js</div>
281+
<template #icon>
282+
<svg class="w-12 h-12 text-indigo-600" xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 15 15"><path fill="currentColor" fill-rule="evenodd" d="M0 7.5a7.5 7.5 0 1 1 11.697 6.216L4.907 4.21A.5.5 0 0 0 4 4.5V12h1V6.06l5.83 8.162A7.5 7.5 0 0 1 0 7.5ZM10 10V4h1v6h-1Z" clip-rule="evenodd"/></svg>
283+
</template>
284+
</ProjectTemplate>
285+
</div>
270286
<div>
271287
<ProjectTemplate :name="name" :mix="mixTags" repo="NetCoreTemplates/react-spa" :tags="['vite','auth']" :count="count('react-spa')">
272288
<div class="mb-3 text-xl font-medium text-gray-700 dark:text-gray-200">React SPA</div>

MyApp/Pages/StartAuth.cshtml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -198,14 +198,6 @@ const App = {
198198
</template>
199199
</ProjectTemplate>
200200
</div>
201-
<div>
202-
<ProjectTemplate :name="name" repo="NetCoreTemplates/nextjs" :tags="['tailwind','autoquery']" :count="count('nextjs')">
203-
<div class="mb-3 text-xl font-medium text-gray-700 dark:text-gray-200">Next.js</div>
204-
<template #icon>
205-
<svg class="w-12 h-12 text-indigo-600" xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 15 15"><path fill="currentColor" fill-rule="evenodd" d="M0 7.5a7.5 7.5 0 1 1 11.697 6.216L4.907 4.21A.5.5 0 0 0 4 4.5V12h1V6.06l5.83 8.162A7.5 7.5 0 0 1 0 7.5ZM10 10V4h1v6h-1Z" clip-rule="evenodd"/></svg>
206-
</template>
207-
</ProjectTemplate>
208-
</div>
209201
<div>
210202
<ProjectTemplate :name="name" repo="NetCoreTemplates/vue-vite" :tags="['tailwind','autoquery']" :count="count('vue-vite')">
211203
<div class="mb-3 text-xl font-medium text-gray-700 dark:text-gray-200">Vue Vite</div>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
title: ServiceStack v8.10 Release
3+
summary: Latest features in ServiceStack v8.10 including 1st class React & Tailwind CSS support, AI Chat, AI Search and more!
4+
tags: [release,react,tailwind,typescript,admin-ui,ai]
5+
url: https://media.servicestack.com/podcasts/v8-10-release.mp3
6+
media: {size:14780679,duration:1053.309388,format:mp3}
7+
---
8+
9+
This episode announces **ServiceStack v8.10**, highlighting its focus on **AI-First Development** by introducing first-class support for React and Tailwind CSS, which are described as the standards for AI-generated UIs.
10+
11+
It discusses how **ServiceStack's architecture**—featuring declarative typed APIs and end-to-end type safety—is optimized for high-quality AI code generation, supporting the "Vibe Coding" paradigm.
12+
13+
Furthermore, the release significantly upgrades the platform's **AI Chat capabilities**, providing a unified provider abstraction, built-in analytics, cost tracking, and history persistence through features like `DbChatStore`.
14+
15+
Finally, it covers the launch of **AI Search** on ServiceStack Docs, leveraging Typesense and Retrieval-Augmented Generation (RAG) to offer conversational, context-aware answers grounded in the official documentation.

MyApp/_posts/2025-10-01_llms-py-ui.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: llms.py UI
33
summary: Simple ChatGPT-like UI to access ALL Your LLMs, Locally or Remotely!
44
tags: [llms,ai,python]
55
author: Demis Bellot
6-
image: ./img/posts/llms-py-ui/bg.webp
6+
image: ./img/posts/ai-chat/bg.webp
77
---
88

99
[llms.py](https://github.com/ServiceStack/llms) is a lightweight OSS CLI, API and ChatGPT-like alternative to Open WebUI
@@ -25,7 +25,7 @@ spend within the UI.
2525
- **Thread Summaries** - At the bottom of every new conversation, you'll find a consolidated summary detailing the total cost, tokens consumed (input and output), number of requests, and overall response time for that entire thread.
2626

2727
:::{.wideshot}
28-
[![llms-tokens-usage.webp](/img/posts/llms-py-ui/llms-tokens-usage.webp)](/img/posts/llms-py-ui/llms-tokens-usage.webp)
28+
[![llms-tokens-usage.webp](/img/posts/ai-chat/llms-tokens-usage.webp)](/img/posts/ai-chat/llms-tokens-usage.webp)
2929
:::
3030

3131
Screenshot also shows support for new **Edit** and **Redo** features that appears after hovering over any **User**
@@ -37,7 +37,7 @@ Support for Dark Mode which inherits the browser's dark mode preference or can b
3737
with the **Dark Mode toggle** in the top-right of the UI.
3838

3939
:::{.wideshot}
40-
[![dark-attach-image.webp](/img/posts/llms-py-ui/dark-attach-image.webp)](/img/posts/llms-py-ui/dark-attach-image.webp)
40+
[![dark-attach-image.webp](/img/posts/ai-chat/dark-attach-image.webp)](/img/posts/ai-chat/dark-attach-image.webp)
4141
:::
4242

4343
### Monthly Cost Analytics
@@ -46,7 +46,7 @@ The **Cost Analytics** page provides a comprehensive overview of the usage costs
4646
Clicking on a day will expand it to show a detailed breakdown of the costs that was spent per model and provider.
4747

4848
:::{.wideshot}
49-
[![analytics-costs.webp](/img/posts/llms-py-ui/analytics-costs.webp)](/img/posts/llms-py-ui/analytics-costs.webp)
49+
[![analytics-costs.webp](/img/posts/ai-chat/analytics-costs.webp)](/img/posts/ai-chat/analytics-costs.webp)
5050
:::
5151

5252
### Monthly Tokens Analytics
@@ -55,7 +55,7 @@ Similarly, the **Tokens Analytics** page provides a comprehensive overview of th
5555
given month. Clicking on a day expands it to show a detailed breakdown of the tokens that was spent per model and provider.
5656

5757
:::{.wideshot}
58-
[![dark-analytics-tokens.webp](/img/posts/llms-py-ui/dark-analytics-tokens.webp)](/img/posts/llms-py-ui/dark-analytics-tokens.webp)
58+
[![dark-analytics-tokens.webp](/img/posts/ai-chat/dark-analytics-tokens.webp)](/img/posts/ai-chat/dark-analytics-tokens.webp)
5959
:::
6060

6161
### Monthly Activity Log
@@ -65,7 +65,7 @@ the page itself provides a comprehensive and granular overview of all your AI in
6565
Model, Provider, Partial Prompt, Input & Output Tokens, Cost, Response Time, Speed, Date & Time.
6666

6767
:::{.wideshot}
68-
[![analytics-activity.webp](/img/posts/llms-py-ui/analytics-activity.webp)](/img/posts/llms-py-ui/analytics-activity.webp)
68+
[![analytics-activity.webp](/img/posts/ai-chat/analytics-activity.webp)](/img/posts/ai-chat/analytics-activity.webp)
6969
:::
7070

7171
Activity Logs are maintained independently of the Chat History so you can clear or cleanup your Chat History
@@ -90,7 +90,7 @@ llms --check groq kimi-k2 llama4:400b gpt-oss:120b
9090
:::
9191

9292
:::{.wideshot}
93-
[![llms-check.webp](/img/posts/llms-py-ui/llms-check.webp)](/img/posts/llms-py-ui/llms-check.webp)
93+
[![llms-check.webp](/img/posts/ai-chat/llms-check.webp)](/img/posts/ai-chat/llms-check.webp)
9494
:::
9595

9696
As they're a good indicator for the reliability and speed you can expect from different providers we've created a
@@ -150,7 +150,7 @@ When needed you can backup and transfer your entire chat history between differe
150150
and **Import** features on the home page.
151151

152152
:::{.wideshot}
153-
[![llms-home.webp](/img/posts/llms-py-ui/llms-home.webp)](/img/posts/llms-py-ui/llms-home.webp)
153+
[![llms-home.webp](/img/posts/ai-chat/llms-home.webp)](/img/posts/ai-chat/llms-home.webp)
154154
:::
155155

156156
**Export Request Logs**
@@ -165,7 +165,7 @@ To maximize readability there's full support for Markdown and Syntax highlightin
165165
languages.
166166

167167
:::{.wideshot}
168-
[![llms-syntax.webp](/img/posts/llms-py-ui/llms-syntax.webp)](/img/posts/llms-py-ui/llms-syntax.webp)
168+
[![llms-syntax.webp](/img/posts/ai-chat/llms-syntax.webp)](/img/posts/ai-chat/llms-syntax.webp)
169169
:::
170170

171171
To quickly and easily make use of AI Responses, **Copy Code** icons are readily available on hover of all messages
@@ -183,15 +183,15 @@ Images can be uploaded directly into your conversations with vision-capable mode
183183
Visual AI Responses are highly dependent on the model used. This is a typical example of the visual analysis provided by the latest Gemini Flash of our [ServiceStack Logo](/img/logo.png):
184184

185185
:::{.wideshot}
186-
[![attach-image.webp](/img/posts/llms-py-ui/attach-image.webp)](/img/posts/llms-py-ui/attach-image.webp)
186+
[![attach-image.webp](/img/posts/ai-chat/attach-image.webp)](/img/posts/ai-chat/attach-image.webp)
187187
:::
188188

189189
### 🎤 2. Audio Input & Transcription
190190

191191
Likewise you can upload Audio files and have them transcribed and analyzed by multi-modal models with audio capabilities.
192192

193193
:::{.wideshot}
194-
[![attach-audio.webp](/img/posts/llms-py-ui/attach-audio.webp)](/img/posts/llms-py-ui/attach-audio.webp)
194+
[![attach-audio.webp](/img/posts/ai-chat/attach-audio.webp)](/img/posts/ai-chat/attach-audio.webp)
195195
:::
196196

197197
Example of processing audio input. Audio files can be uploaded with system and user prompts
@@ -213,7 +213,7 @@ capable models to extract insights, summarize content or analyze data.
213213
Perfect for research, document review, data analysis and content extractions.
214214

215215
:::{.wideshot}
216-
[![attach-pdf.webp](/img/posts/llms-py-ui/attach-pdf.webp)](/img/posts/llms-py-ui/attach-pdf.webp)
216+
[![attach-pdf.webp](/img/posts/ai-chat/attach-pdf.webp)](/img/posts/ai-chat/attach-pdf.webp)
217217
:::
218218

219219
## Custom AI Chat Requests
@@ -232,7 +232,7 @@ their AI requests with advanced options including:
232232
- **Verbosity** settings
233233

234234
:::{.wideshot}
235-
[![llms-settings.webp](/img/posts/llms-py-ui/llms-settings.webp)](/img/posts/llms-py-ui/llms-settings.webp)
235+
[![llms-settings.webp](/img/posts/ai-chat/llms-settings.webp)](/img/posts/ai-chat/llms-settings.webp)
236236
:::
237237

238238
## Enable / Disable Providers
@@ -245,15 +245,15 @@ By default Providers with Free tiers are enabled first, followed by local provid
245245
cloud providers which can all be enabled or disabled in the UI:
246246

247247
:::{.wideshot}
248-
[![llms-providers.webp](/img/posts/llms-py-ui/llms-providers.webp)](/img/posts/llms-py-ui/llms-providers.webp)
248+
[![llms-providers.webp](/img/posts/ai-chat/llms-providers.webp)](/img/posts/ai-chat/llms-providers.webp)
249249
:::
250250

251251
## Search History
252252

253253
Quickly find past conversations with built-in search:
254254

255255
:::{.wideshot}
256-
[![llms-search-python.webp](/img/posts/llms-py-ui/llms-search-python.webp)](/img/posts/llms-py-ui/llms-search-python.webp)
256+
[![llms-search-python.webp](/img/posts/ai-chat/llms-search-python.webp)](/img/posts/ai-chat/llms-search-python.webp)
257257
:::
258258

259259
## Smart Autocomplete for Models & System Prompts
@@ -264,15 +264,15 @@ Only models from enabled providers will appear in the drop down, which will be a
264264
providers are enabled.
265265

266266
:::{.wideshot}
267-
[![llms-autocomplete.webp](/img/posts/llms-py-ui/llms-autocomplete.webp)](/img/posts/llms-py-ui/llms-autocomplete.webp)
267+
[![llms-autocomplete.webp](/img/posts/ai-chat/llms-autocomplete.webp)](/img/posts/ai-chat/llms-autocomplete.webp)
268268
:::
269269

270270
## Comprehensive System Prompt Library
271271

272272
Access a curated collection of 200+ professional system prompts designed for various use cases, from technical assistance to creative writing.
273273

274274
:::{.wideshot}
275-
[![llms-system-prompt.webp](/img/posts/llms-py-ui/llms-system-prompt.webp)](/img/posts/llms-py-ui/llms-system-prompt.webp)
275+
[![llms-system-prompt.webp](/img/posts/ai-chat/llms-system-prompt.webp)](/img/posts/ai-chat/llms-system-prompt.webp)
276276
:::
277277

278278
System Prompts be can added, removed & sorted in `~/.llms/ui.json`
@@ -295,7 +295,7 @@ System Prompts be can added, removed & sorted in `~/.llms/ui.json`
295295
Access the thinking process of advanced AI models with specialized rendering for reasoning and chain-of-thought responses:
296296

297297
:::{.wideshot}
298-
[![llms-reasoning.webp](/img/posts/llms-py-ui/llms-reasoning.webp)](/img/posts/llms-py-ui/llms-reasoning.webp)
298+
[![llms-reasoning.webp](/img/posts/ai-chat/llms-reasoning.webp)](/img/posts/ai-chat/llms-reasoning.webp)
299299
:::
300300

301301
## Get Started Today

0 commit comments

Comments
 (0)