SSG.NET has the goal of allowing ASP.NET Core MVC developers to generate static (client-side only) web applications, while allowing them to reuse the concepts and tools they are already familiar with: Partial Views, Tag Helpers, Layouts, and so on.
This should facilitate using free/cheap hosting without forcing developers to learn JavaScript SPA frameworks, but also without forcing them to handle individual HTML files which would require them to duplicate a lot of code.
Using SSG.NET is as simple as developing your ASP.NET Core MVC website (while keeping in mind the restrictions mentioned below), followed by running the SSG through the console, either manually or in some automated pipeline.
SSG.NET works by running your application's Views directly through ASP.NET Core internals in a process similar (but greatly simplified) to what happens when you run your application.
SSG.NET is free, Open-Source Software, and you can use it for any personal/commercial purposes, under the conditions of the MIT license .
SSG.NET supports 3 route casing strategies: kebab casing the URLs, lower casing the URLs, and keeping the original route.
With kebab casing, SSG.NET will transform URLs such as /Blog/SomeLongName into /blog/some-long-name and will accomodate numbers based on the original case: Abc2A => abc2-a; A2bc => a2bc; 2Abc => 2-abc; etc.
Localization is known to work (and officially supported) through view file localization, in other words: Index.cshtml, Index.es.cshtml, and Index.fr.cshtml would generate 3 different HTML files.
Other types of localization, such as through the @Microsoft.AspNetCore.Mvc.Localization.I*Localizer classes may or may not work, and need testing.
While not a part of SSG.NET per se, we provide a fully functional blog template ready to be consumed as a GitHub template repository . This application supports:
This site is built using SSG.NET and is built through a GitHub Action, using the following options, and published (for free!) to Netlify :