Skip to content

Commit

Permalink
Update pages.
Browse files Browse the repository at this point in the history
  • Loading branch information
Layoric committed Nov 2, 2023
1 parent 339e705 commit b6cda1b
Show file tree
Hide file tree
Showing 2 changed files with 151 additions and 201 deletions.
117 changes: 22 additions & 95 deletions MyApp/_pages/about.md
Original file line number Diff line number Diff line change
@@ -1,114 +1,41 @@
---
title: App Hosting Costs
title: ServiceStack Blazor
---

<a href="https://jamstack.org">
<svg xmlns="http://www.w3.org/2000/svg" width="1.2em" height="1.2em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256" class="w-14 h-14 float-left mt-2 mr-4">
<path d="M128 0C57.221 0 0 57.221 0 128c0 70.778 57.221 128 128 128c70.778 0 128-57.222 128-128V0H128z" fill="#F0047F"></path><path d="M121.04 134.96v93.312c-49.663-2.837-89.64-42.345-93.215-91.81l-.097-1.502h93.312zm90.962 0c-2.6 49.664-38.816 89.64-84.159 93.215l-1.377.097V134.96h85.536zm.112-91.074v85.648h-85.648V43.886h85.648z" fill="#FFF"></path>
</svg>
</a>

The modern [jamstack.org](https://jamstack.org) approach for developing websites is primarily concerned with adopting
the architecture yielding the best performance and superior UX by minimizing the time to first byte from serving
pre-built static assets from CDN edge caches.

## Cheaper Hosting
## Blazor for .NET 8

<a href="https://jamstack.org">
<svg xmlns="http://www.w3.org/2000/svg" width="1.2em" height="1.2em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 64 64" class="w-14 h-14 float-left mt-2 mr-4">
<path d="M61 20.9C54.8 15.3 48.6 9.6 42.4 4C33.3 17.8 17.9 30.1 3.3 39c-.4 1.9-.8 3.7-1.3 5.5C8.4 50.3 14.8 56.2 21.2 62C36.3 53.7 52.3 41.9 62 28.5c-.3-2.5-.7-5-1-7.6" fill="#699635"></path>
<path d="M22.4 54.6C16.1 48.8 9.8 43 3.5 37.3c15.7-8.9 28.9-21 38.6-35.3C48.4 7.8 54.7 13.5 61 19.3c-9.7 14.3-22.9 26.4-38.6 35.3" fill="#83bf4f"></path>
<g fill="#699635">
<path d="M20.8 50.8c-4.2-3.8-8.4-7.7-12.6-11.5c.3-.2.5-.3.8-.5c.8-.5 1-1.4.3-2.1l-.6-.6C21.4 28.3 32.4 18.3 41 6.7l.6.6c.7.6 1.7.5 2.3-.2c.2-.2.3-.5.5-.7c4.2 3.8 8.4 7.7 12.6 11.5c-.2.2-.3.5-.5.7c-.6.8-.5 1.9.2 2.6l.6.6C48.7 33.3 37.7 43.3 25 51.1l-.6-.6c-.7-.6-1.9-.7-2.8-.2c-.3.2-.5.3-.8.5m-9.9-11.4c3.4 3.1 6.8 6.2 10.3 9.4c1.3-.4 2.8-.3 4 .3C36.8 41.7 46.9 32.5 55 21.8c-.7-1.1-.8-2.5-.3-3.7c-3.4-3.1-6.8-6.2-10.3-9.4c-.9.8-2.2.9-3.3.3C33 19.8 22.9 29 11.3 36.4c.6 1 .5 2.2-.4 3"></path>
<path d="M20 37.3c1.1-.4 2.3-.3 3.1.4c-.5.4-1.1.8-1.6 1.2c-.2-.2-.7-.2-.9 0c-.3.2-.4.5-.1.7c.2.2.7.2 1 0c1.2-.8 2.9-.9 3.8 0c.7.7.8 1.7.1 2.5c.2.2.4.3.6.5c-.5.3-1 .7-1.5 1c-.2-.2-.4-.4-.6-.5c-1.1.3-2.3.2-3-.5c.6-.4 1.1-.7 1.7-1.1c.2.2.7.2 1 0c.3-.2.3-.5.1-.7c-.2-.2-.6-.2-.9 0c-.7.5-1.6.7-2.4.6c-.6-.1-1.1-.3-1.5-.6c-.7-.7-.7-1.6-.1-2.4c-.2-.1-.3-.3-.5-.5c.5-.3 1-.7 1.5-1c-.1.1.1.2.2.4"></path>
<path d="M43.2 15.9c.9-.6 2-.6 2.7.1l-1.2 1.5c-.2-.2-.6-.2-.8.1c-.2.3-.2.7 0 .9s.6.2.8-.1c.9-1.1 2.4-1.3 3.3-.5c.7.7.9 1.8.5 2.8c.2.2.4.3.6.5c-.4.5-.7.9-1.1 1.4c-.2-.2-.4-.4-.6-.5c-.9.5-1.9.5-2.6-.2c.4-.5.9-1 1.3-1.5c.2.2.6.2.8-.1s.2-.7 0-.9c-.2-.2-.6-.2-.8.1c-.5.6-1.3 1-2 1c-.5 0-1-.2-1.4-.5c-.7-.7-.9-1.7-.5-2.7c-.2-.1-.3-.3-.5-.5c.4-.4.8-.9 1.1-1.4c0 .2.2.3.4.5"></path>
<path d="M40.2 35.5c-3.2 2.9-8.6 2.8-11.7 0c-3.1-2.9-2.9-7.4.3-10.3c3.2-2.9 8.2-3.2 11.3-.3c3.2 2.8 3.3 7.7.1 10.6"></path>
</g>
<path d="M21.8 24.5l18.9 17.3c2.2-1.8 4.2-3.7 6.2-5.7L28.1 18.8c-2 1.9-4.1 3.8-6.3 5.7" fill="#ffdd7d"></path>
<path d="M40.8 49.4c2.1-1.6 4.2-3.3 6.2-5V36c-2 2-4.1 3.9-6.2 5.7v7.7" fill="#dbb471"></path>
<path d="M12.1 24.7c1.1-.4 2-1 2.9-1.7c.9-.7 1.7-1.4 2.6-2.2c.9-.7 1.8-1.5 2.8-2c1-.6 2.3-.9 3.4-.7c-1.1.2-2.1.7-3 1.4c-.9.6-1.7 1.4-2.6 2.1c-.9.7-1.8 1.5-2.8 2.1c-1 .6-2.2 1-3.3 1" fill="#8d9998" id="ssvg-id-money-with-wingsa"></path>
<path d="M39.8 33.1s4.9 1.4 16.3-1.6s6 29.8-14.8 29.8c-2.3 0-2.4-2.9 4-8.1c0 0-9 2.1-5.1-4.6c0 0-6.4 1.1-3.5-4c0 0 1.3-3.8.1-8.1c.1 0 .8-2.2 3-3.4" fill="#e8e8e8"></path>
<g fill="#d1d1d1">
<path d="M61.5 34.7c.2 8.8-6.8 23.4-20.7 23.4h-.2c-1.3 2.1-.7 3.3.7 3.3c15.8-.1 22.7-18.9 20.2-26.7"></path>
<path d="M54.3 39.5c-3 10.8-15 11.7-15 11.7c-.5 2.3.5 3.3 1.8 3.3c4.4.1 12.6-7.2 13.2-15"></path>
<path d="M45.9 39.5c-7.1 10-9.6 6.3-9.6 6.3c-1.8 4 2.9 4 3.7 3.1c2.3-2.5 6-7.7 5.9-9.4"></path>
</g>
<g fill="#8d9998">
<path d="M40.5 58.4c1.2-1.6 2.7-2.9 4.2-4.2c1.5-1.3 3-2.6 4.5-4c1.4-1.4 2.8-3 3.8-4.8c1-1.8 1.5-3.9 1.3-5.9c-.2 2-.9 3.9-2 5.5s-2.4 3.1-3.8 4.5s-2.9 2.7-4.3 4.2c-1.5 1.3-2.8 2.9-3.7 4.7"></path>
<path d="M39.3 51.2c.4-1.1 1-2 1.7-2.9c.7-.9 1.4-1.7 2.2-2.6c.7-.9 1.5-1.8 2-2.8c.6-1 .9-2.3.7-3.4c-.2 1.1-.7 2.1-1.4 3c-.6.9-1.4 1.7-2.1 2.6c-.7.9-1.5 1.8-2.1 2.8c-.6 1-1 2.2-1 3.3"></path>
</g>
<path d="M30.2 24.2s-1.4-4.9 1.6-16.3S2 1.9 2 22.7c0 2.3 2.9 2.4 8.1-4c0 0-2.1 9 4.6 5.1c0 0-1.1 6.4 4 3.5c0 0 3.8-1.3 8.1-.1c0-.1 2.2-.8 3.4-3" fill="#e8e8e8"></path>
<g fill="#d1d1d1">
<path d="M28.6 2.5C19.8 2.3 5.2 9.3 5.2 23.2v.2c-2.1 1.2-3.2.7-3.2-.7C2 6.9 20.8 0 28.6 2.5"></path>
<path d="M23.8 9.7c-10.8 3-11.7 15-11.7 15c-2.3.5-3.3-.5-3.3-1.8c-.1-4.4 7.2-12.6 15-13.2"></path>
<path d="M23.8 18.1c-10 7.1-6.3 9.6-6.3 9.6c-4 1.8-4-2.9-3.1-3.7c2.5-2.3 7.7-6 9.4-5.9"></path>
</g>
<path d="M4.9 23.5c1.6-1.2 2.9-2.7 4.2-4.2c1.3-1.5 2.6-3 4-4.5c1.4-1.4 3-2.8 4.8-3.8c1.8-1 3.9-1.5 5.9-1.3c-2 .2-3.9.9-5.5 2s-3.1 2.4-4.5 3.8s-2.7 2.9-4.2 4.3c-1.4 1.5-2.9 2.8-4.7 3.7" fill="#8d9998"></path>
</svg>
<a href="https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor">
<img src="/img/blazor.svg" class="w-14 h-14 float-left mt-2 mr-4" alt="Blazor for .NET 8" />
</a>

A consequence of designing your UI decoupled from your back-end server is that it also becomes considerably
cheaper to host as its static files can be hosted by any web server and is a task highly optimized by CDNs
who are able to provide generous free & low cost hosting options.

## [/MyApp.Client](https://github.com/NetCoreTemplates/blazor-tailwind/tree/main/MyApp.Client)

This template takes advantage of its decoupled architecture and uses [GitHub Actions to deploy](/docs/deploy)
a copy of its static UI generated assets and hosted on:

### GitHub Pages CDN
Blazor in .NET 8 continues to provide an innovative way to build interactive web UIs using C# instead of JavaScript. With Blazor, you can build reusable web components and enjoy a consistent development experience across client and server-side code.

### [blazor-wasm.jamstacks.net](https://blazor-wasm.jamstacks.net)
## ServiceStack.Blazor Library

This is an optional deployment step which publishes a copy of your .NET App's `/wwwroot` folder to this templates
[gh-pages](https://github.com/NetCoreTemplates/blazor-tailwind/tree/gh-pages) branch where it's automatically served from
[GitHub Pages CDN](https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages) at **no cost**.

It's an optional but recommended optimization as it allows the initial download from your website to be served
directly from CDN edge caches.

## [/MyApp](https://github.com/NetCoreTemplates/blazor-tailwind/tree/main/MyApp)
<a href="https://docs.servicestack.net/blazor">
<img src="/img/blazor.svg" class="w-14 h-14 float-left mt-2 mr-4" alt="ServiceStack.Blazor Components" />
</a>

The .NET 6 `/MyApp` backend server is required for this App's dynamic functions including the Hello API on the home page
and its [built-in Authentication](https://docs.servicestack.net/auth).
The ServiceStack.Blazor library brings the power of ServiceStack to Blazor applications. It enables seamless integration of ServiceStack services into your Blazor projects, ensuring a productive development experience and efficient runtime performance.

The C# project still contains the complete App and can be hosted independently with the entire App served
directly from its deployed ASP.NET Core server at:
## AutoQueryGrid with AutoQuery Services

### Digital Ocean
<a href="https://docs.servicestack.net/templates/blazor-components#autoquerygrid">
<svg class="float-left mt-2 mr-4" fill="#000000" width="3.2em" height="3.2em" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<path d="M 10 6 C 11.544 7.76 12.275797 10.149375 12.216797 12.609375 C 16.184797 14.279375 22.141437 18.73 23.398438 25 L 28 25 C 26.051 14.31 14.918 6.77 10 6 z M 8 13 C 12.67 17.913 8.81 24.582 4 25 L 22.970703 25 C 21.500703 18.289 11.95 13.533 8 13 z"/>
</svg>
</a>

### [blazor-wasm-api.jamstacks.net](https://blazor-wasm-api.jamstacks.net)
Leverage AutoQueryGrid alongside AutoQuery services to rapidly build data-driven applications. This combination allows for automatic generation of CRUD operations, saving development time and ensuring consistency across your application.

But when accessed from the CDN [blazor-wasm.jamstacks.net](https://blazor-wasm.jamstacks.net) that contains a
copy of its static `/wwwroot` UI assets, only its back-end JSON APIs are used to power its dynamic features.

## Total Cost
## AutoForms for any Service

<a href="https://www.digitalocean.com/pricing">
<svg xmlns="http://www.w3.org/2000/svg" width="1.2em" height="1.2em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 192" class="w-24 h-24 float-left mt-0 mr-8">
<g fill="#0080FF">
<path d="M127.806 103.432v24.705c41.874 0 74.478-40.453 60.78-84.332C182.6 24.63 167.363 9.393 148.188 3.407c-43.88-13.698-84.333 18.906-84.333 60.78h24.762c.003 0 .006-.006.006-.006c.004-26.28 26.01-46.596 53.639-36.57c10.236 3.714 18.4 11.877 22.117 22.112c10.027 27.612-10.26 53.609-36.516 53.646V78.744l-.004-.002h-24.686c-.002 0-.004.004-.004.004v24.686h24.637zm-24.642 18.974H84.197l-.004-.005v-18.969h18.976v18.97s-.002.004-.005.004zm-18.958-18.974h-15.9c-.007 0-.012-.004-.012-.004V87.535s.005-.012.012-.012h15.888c.007 0 .012.005.012.005v15.904z"></path>
<path d="M22.096 153.198c-3.219-2.234-7.225-3.366-11.906-3.366H0v32.329h10.19c4.67 0 8.677-1.195 11.91-3.55c1.76-1.249 3.142-2.994 4.11-5.184c.962-2.18 1.45-4.75 1.45-7.64c0-2.857-.488-5.395-1.452-7.543c-.966-2.16-2.35-3.857-4.112-5.046zm-16.144 2.098H9.15c3.559 0 6.488.7 8.71 2.083c2.465 1.487 3.716 4.315 3.716 8.407c0 4.215-1.254 7.171-3.726 8.79h-.002c-2.127 1.406-5.039 2.12-8.654 2.12H5.952v-21.4zm25.881 26.865h5.73v-22.77h-5.73v22.77zm2.92-32.727c-.98 0-1.823.347-2.503 1.027c-.687.655-1.036 1.486-1.036 2.468c0 .98.347 1.823 1.032 2.507c.684.686 1.528 1.033 2.507 1.033c.979 0 1.822-.347 2.508-1.033c.686-.685 1.032-1.529 1.032-2.507c0-.981-.348-1.811-1.032-2.463a3.43 3.43 0 0 0-2.508-1.032zm23.618 11.86c-1.728-1.538-3.657-2.434-5.743-2.434c-3.163 0-5.792 1.094-7.813 3.25c-2.046 2.138-3.085 4.89-3.085 8.18c0 3.213 1.022 5.956 3.042 8.156c2.035 2.128 4.679 3.206 7.856 3.206c2.209 0 4.108-.615 5.655-1.83v.525c0 1.889-.506 3.359-1.503 4.368c-.997 1.008-2.379 1.519-4.107 1.519c-2.645 0-4.303-1.04-6.321-3.767l-3.902 3.749l.105.148c.843 1.182 2.134 2.34 3.838 3.44c1.704 1.095 3.846 1.652 6.368 1.652c3.402 0 6.153-1.049 8.18-3.116c2.037-2.079 3.07-4.862 3.07-8.27v-20.68h-5.64v1.903zm-1.503 13.447c-1.001 1.138-2.287 1.689-3.93 1.689c-1.643 0-2.922-.551-3.909-1.687c-.981-1.13-1.48-2.63-1.48-4.454c0-1.854.499-3.371 1.481-4.51c.973-1.126 2.288-1.698 3.908-1.698c1.641 0 2.928.556 3.93 1.701c.997 1.138 1.503 2.654 1.503 4.507c0 1.824-.506 3.323-1.503 4.452zm12.047 7.42h5.73v-22.77h-5.73v22.77zm2.92-32.727c-.979 0-1.823.347-2.503 1.027c-.687.655-1.036 1.486-1.036 2.468c0 .98.347 1.823 1.032 2.507c.684.686 1.528 1.033 2.508 1.033a3.43 3.43 0 0 0 2.508-1.033c.685-.685 1.032-1.529 1.032-2.507c0-.981-.35-1.811-1.032-2.463a3.433 3.433 0 0 0-2.508-1.032zm15.369 3.805h-5.64v6.152h-3.277v5.222h3.276v9.458c0 2.96.591 5.078 1.758 6.294c1.17 1.222 3.247 1.841 6.174 1.841c.931 0 1.868-.031 2.784-.09l.258-.018v-5.218l-1.964.103c-1.365 0-2.275-.24-2.708-.711c-.44-.48-.661-1.494-.661-3.013v-8.646h5.333v-5.222h-5.333v-6.152zm24.998 7.855c-1.737-1.482-4.137-2.234-7.134-2.234c-1.907 0-3.69.418-5.302 1.236c-1.492.757-2.957 2.01-3.888 3.65l.058.07l3.669 3.512c1.511-2.41 3.192-3.247 5.42-3.247c1.197 0 2.19.322 2.954.955c.76.629 1.13 1.429 1.13 2.442v1.106a14.494 14.494 0 0 0-4.217-.65c-2.852 0-5.172.67-6.895 1.993c-1.746 1.34-2.63 3.255-2.63 5.696c0 2.139.745 3.877 2.222 5.169c1.49 1.246 3.35 1.879 5.533 1.879c2.181 0 4.222-.88 6.075-2.385v1.875h5.641v-14.638c0-2.771-.887-4.934-2.636-6.429zm-10.173 12.366c.65-.453 1.568-.682 2.73-.682c1.379 0 2.841.277 4.35.824v2.234c-1.246 1.157-2.91 1.745-4.947 1.745c-.992 0-1.763-.22-2.293-.657c-.52-.426-.773-.969-.773-1.656c0-.781.305-1.373.933-1.808zm17.374 8.701h5.73v-32.33h-5.73v32.33zm26.52.487c-9.19 0-16.667-7.476-16.667-16.666c0-9.19 7.476-16.667 16.666-16.667c9.19 0 16.666 7.477 16.666 16.667c0 9.19-7.476 16.666-16.666 16.666zm0-27.46c-5.952 0-10.793 4.842-10.793 10.794c0 5.951 4.841 10.792 10.792 10.792s10.793-4.84 10.793-10.792s-4.842-10.793-10.793-10.793zm37.096 18.831c-1.025 1.149-2.073 2.145-2.881 2.662v.001c-.792.508-1.792.767-2.971.767c-1.689 0-3.046-.615-4.152-1.882c-1.1-1.26-1.657-2.878-1.657-4.814c0-1.934.55-3.55 1.636-4.801c1.091-1.26 2.441-1.87 4.128-1.87c1.846 0 3.792 1.147 5.459 3.119l3.787-3.632c-2.47-3.214-5.619-4.709-9.378-4.709c-3.146 0-5.873 1.146-8.105 3.405c-2.22 2.242-3.346 5.099-3.346 8.488c0 3.39 1.125 6.254 3.343 8.512c2.22 2.26 4.948 3.406 8.108 3.406c4.148 0 7.497-1.791 9.754-5.072l-3.725-3.58zm23.516-11.447c-.812-1.132-1.918-2.043-3.29-2.71c-1.366-.665-2.96-1.002-4.734-1.002c-3.198 0-5.816 1.18-7.78 3.51c-1.908 2.31-2.874 5.183-2.874 8.539c0 3.45 1.06 6.307 3.152 8.489c2.08 2.171 4.865 3.273 8.276 3.273c3.864 0 7.035-1.563 9.424-4.645l.129-.166l-3.738-3.592c-.346.418-.837.892-1.286 1.314c-.565.534-1.097.947-1.665 1.23c-.857.426-1.817.637-2.892.637c-1.587 0-2.902-.467-3.907-1.388c-.94-.862-1.49-2.024-1.636-3.459h15.18l.052-2.091c0-1.48-.202-2.906-.599-4.24a12.37 12.37 0 0 0-1.812-3.699zm-12.523 5.361c.276-1.09.778-1.996 1.497-2.7c.776-.765 1.787-1.152 3.003-1.152c1.39 0 2.465.395 3.196 1.177c.678.722 1.06 1.621 1.14 2.675h-8.836zm34.528-6.839c-1.737-1.482-4.138-2.234-7.134-2.234c-1.907 0-3.69.418-5.302 1.236c-1.493.757-2.958 2.01-3.888 3.65l.058.07l3.669 3.512c1.511-2.41 3.192-3.247 5.42-3.247c1.197 0 2.19.322 2.954.955c.76.629 1.13 1.429 1.13 2.442v1.106a14.5 14.5 0 0 0-4.218-.65c-2.85 0-5.172.67-6.895 1.993c-1.745 1.34-2.63 3.255-2.63 5.696c0 2.139.746 3.877 2.223 5.169c1.489 1.246 3.35 1.879 5.532 1.879s4.223-.88 6.075-2.385v1.875h5.642v-14.638c0-2.771-.887-4.934-2.636-6.429zm-10.173 12.366c.65-.453 1.567-.682 2.73-.682c1.379 0 2.841.277 4.35.824v2.234c-1.247 1.157-2.91 1.745-4.948 1.745c-.991 0-1.762-.22-2.292-.657c-.52-.426-.773-.969-.773-1.656c0-.781.305-1.373.933-1.808zm34.851-11.919c-1.596-1.778-3.838-2.681-6.667-2.681c-2.273 0-4.119.653-5.5 1.94v-1.41h-5.619v22.771h5.73v-12.558c0-1.725.41-3.095 1.22-4.073c.808-.974 1.918-1.449 3.395-1.449c1.298 0 2.281.424 3.007 1.295c.729.875 1.098 2.08 1.098 3.586v13.199h5.73v-13.199c0-3.154-.805-5.65-2.394-7.42z"></path>
</g>
<a href="https://docs.servicestack.net/templates/blazor-components#auto-forms">
<svg class="float-left mt-2 mr-4" fill="#000000" width="3.2em" height="3.2em" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<path d="M 10 6 C 11.544 7.76 12.275797 10.149375 12.216797 12.609375 C 16.184797 14.279375 22.141437 18.73 23.398438 25 L 28 25 C 26.051 14.31 14.918 6.77 10 6 z M 8 13 C 12.67 17.913 8.81 24.582 4 25 L 22.970703 25 C 21.500703 18.289 11.95 13.533 8 13 z"/>
</svg>
</a>

Since hosting on GitHub Pages CDN is free, the only cost is for hosting this App's .NET Server which is being hosted
from a basic [$10 /mo](https://www.digitalocean.com/pricing) droplet which is currently hosting **25** .NET Docker
Apps and demos of [starting project templates](https://servicestack.net/start) which works out to be just under **$0.40 /mo**!

## Jamstack Benefits

Jamstack is quickly becoming the preferred architecture for the development of modern web apps with
[benefits](https://jamstack.org/why-jamstack/) that extend beyond performance to improved:

- **Security** from a reduced attack surface from hosting read-only static resources and requiring fewer App Servers
- **Scale** with non-essential load removed from App Servers to CDN's architecture capable of incredible scale & load capacity
- **Maintainability** resulting from reduced hosting complexity and the clean decoupling of UI and server logic
- **Portability** with your static UI assets being easily capable from being deployed and generically hosted from any CDN or web server
- **Developer Experience** with the major JavaScript frameworks at the forefront of amazing DX are embracing Jamstack in their dev model, libraries & tooling
With AutoForms, streamline the process of creating forms for your services. AutoForms dynamically generates form UI based on your ServiceStack services, ensuring quick setup and a user-friendly experience.

Best of all the Jamstack approach fits perfectly with ServiceStack's recommended
[API First Development](https://docs.servicestack.net/api-first-development) model which encourages development of
reusable message-based APIs where the same System APIs can be reused from all Web, Mobile & Desktop Apps
from multiple HTTP, MQ or gRPC endpoints.
Loading

0 comments on commit b6cda1b

Please sign in to comment.