ServiceStack has its strong foundations as a Web and MQ Services framework whose easy and versatile HTML support makes it the ideal services framework to create Backend Systems and Web APIs, Websites, Single Page Apps, Windows Services, Self-Hosting Console Apps and Rich OSX and Winforms Desktop Apps.
x new
All ServiceStack Project Templates can be found and installed using the x new .NET Core tool that can be installed with:
dotnet tool install --global x
Apple M1
Install on Apple's new M1 Pro and M1 Max ARM chips with:
dotnet tool install -g -a x64 x
Update
Or if you had a previous version installed, update with:
dotnet tool update -g x
Explore available templates
Then run x new
to view the list of available project templates:
x new
Available Project Templates
ServiceStack is available in a number of popular starting configurations below:
Jamstack
Jamstacks
Jamstack (JavaScript, APIs, and Markup) is a modern architecture pattern to build fast, secure and easy to scale web applications where pre-rendering content, enhancing with JavaScript and leveraging CDN static hosting results in a highly productive, flexible and performant system that takes advantage of CDN edge caches to deliver greater performance & efficiency at lower cost.
Jamstack Benefits
It's quickly becoming the preferred architecture for modern web apps with benefits extending 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 major JavaScript Frameworks embracing Jamstack in their dev model, libraries & tooling
Ultimately, it's hosting your App's pre-rendered static UI assets on Content Delivery Network (CDN) edge caches close to users locations that's primarily responsible for its lightning performance.
Download new C# Jamstack Project Template
INFO
An updated list of available Jamstack project templates will be maintained at https://jamstacks.net (built with Vue SSG)
Blazor WebAssembly
The Blazor WebAssembly (WASM) template offers a pure end-to-end integrated C# solution to building a high performance web application with Blazor and ServiceStack. Due to the integrated dev model we've been able to achieve in Blazor it's become our preferred technology to use to develop Line of Business Apps since it's the only C# Razor solution adopting our preferred API First Development model with Web UIs reusing the same well-defined APIs as Mobile and Desktop Apps.
Next.js
For those preferring working with React, there's a clear choice in Nextjs.org - currently the flagship & most popular Jamstack framework backed by the folks over at Vercel, where it enjoys deep engineering talent committed to maintaining and continually improving it, so you can be confident in the longevity of the technology and the React framework maintained by Meta (Facebook).
Vite
Vite is being built for speed in the modern era and takes advantage of modern browser features like native ES modules support to remove bundling entirely during development and adopts performance leading technologies like esbuild to pre-bundle dependencies and transpile TypeScript which is able to do 20-30x faster than TypeScript's own tsc
compiler.
Ultimately its architectural choices allows Vite to deliver Lightning Fast Hot Module Reload (HMR) to remain at the developer-experience forefront of modern web development serving a growing ecosystem of frameworks with a rich typed suite of Universal Plugins.
Webpack-powered Single Page App Templates
All ServiceStack Single Page App templates are powered by Webpack which handles the development, testing and production builds of your Web App. See the Webpack Template Docs for an overview for how to utilize the templates features.
Vue SPA Template
YouTube: https://youtu.be/4HphWPrKwb0
AWS Lambda Template
This project lets you create a .NET 6 empty ServiceStack web project ready for deployment as a AWS Lambda Function wired with API GateWay and packaged via a Docker image.
YouTube: https://youtu.be/8mpGNTsSlvE
Website Templates
Website Templates contain popular starting Templates for creating Server HTML Generated Websites and HTTP APIs with ServiceStack.
Empty Starting Templates
Empty Web and Self Hosting Console and Windows Service Templates.
ASP.NET Core Web Apps on .NET Framework
Popular starting templates for creating ASP.NET Core templates on the .NET Framework.
Desktop Templates
Desktop Templates for packaging your ServiceStack Web App into different Native Desktop UIs.
ServiceStackVS VS.NET Extension
ServiceStackVS supports Visual Studio 2019-2022 and can be installed from within VS.NET:
Install ServiceStackVS
Install the ServiceStackVS VS.NET Extension by going to Tools > Extensions and Updates...
Then searching the Visual Studio Gallery for ServiceStack
Optionally it can be downloaded and installed from the VS.NET Gallery
INFO
For older versions, see the install ServiceStackVS page for more options.
Example Projects
The Example projects below contain a working demo including further documentation about each of their templates they were built with:
TypeScript React Template
TypeScript React Template incorporates today's best-in-class technologies for developing rich, complex JavaScript Apps within VS.NET and encapsulated within ServiceStack's new TypeScript React Template providing an instant integrated client and .NET server solution where you'll be immediately productive out-of-the-box whilst enabling an optimal iterative development experience with pre-configured Gulp tasks that takes care of effortlessly packaging, bundling and deploying your next App.
React Desktop Apps
React Desktop Apps take advantage of the adaptability, navigation and deep-linking benefits of a Web-based UI, the productivity and responsiveness of the React framework, the performance, rich features and functionality contained in ServiceStack and the .NET Framework combined with the native experience and OS Integration possible from a Native Desktop App - all within a single VS .NET template!
React App Template
The ReactJS App Template enables an optimal iterative dev experience for creating optimized Single Page React.js Apps. It shares the same approach for developing modern Single Page Apps in VS.NET as the AngularJS App Template by leveraging the node.js ecosystem for managing all aspects of Client App development and using the best-in-class libraries.
AngularJS App Template
The AngularJS App template in ServiceStackVS provides a modern opinionated web technology stack for developing rich Single Page Apps with AngularJS and ServiceStack.
Integrated HTML, CSS and JavaScript Minifiers
For normal server-generated websites that don't leverage Webpack to bundle their outputs you can take advantage of ServiceStack's integrated and non-invasive minification features to effortlessly enable HTML, CSS and JavaScript minification to your existing Website.
Community Resources
- Hosting an ember-cli app inside a ServiceStack (or any) MVC app by @wayne_douglas
- ServiceStack + AngularDart - Getting Started by @layoric
- License manager for Portable.Licensing using AngularJS and ServiceStack by @dnauck
- StarBucks-like real-time ordering fulfillment Single Page App built with ServiceStack, AngularJS, SignalR and Redis by @paaschpa
- Some thoughts in between SPA projects by @joeriks
- Zippy Tips Working With ServiceStack, Backbone.js, jQuery & Mono-Develop on Mac by Jacques du Preez
Example Single Page App Projects
- Meal planning per configured interval powered by AngularJS, Bower and GruntJS
- Backbone.js + Twitter Social Bootstrap API
- StackOverflow clone with Redis back-end
- Redis Admin UI built with Google Closure Library
- Backbone Todos with Redis back-end
- GitHub-like browser with complete remote file management over REST
- ServiceStack Docs with PushState support
- Angular JS View in RazorRockstars