Configuration.md

March 16, 2026 ยท View on GitHub

Configurations

appsettings.json

The appsettings.json file has a lot of options to customize the content of the blog. The following table shows which values are used when.

{
	"BlogName": "linkdotnet",
	"BlogBrandUrl": "http//some.url/image.png",
	"GithubAccountUrl": "",
	"Social": {
		"GithubAccountUrl": "",
		"LinkedInAccountUrl": "",
		"TwitterAccountUrl": "",
		"YoutubeAccountUrl": "",
	},
	"Introduction": {
		"Description": "Some nice text about yourself. Markup can be used [Github](https://github.com/someuser/somerepo)",
		"BackgroundUrl": "assets/profile-background.webp",
		"ProfilePictureUrl": "assets/profile-picture.webp"
	},
	"PersistenceProvider": "Sqlite",
	"ConnectionString": "Data Source=blog.db",
	"DatabaseName": "",
	"Authentication": {
		"Provider": "PROVIDER_NAME",
		"Domain": "",
		"ClientId": "",
		"ClientSecret": "",
		"LogoutUri": ""
	},
	"BlogPostsPerPage": 10,
	"FirstPageCacheDurationInMinutes": 10,
	"ProfileInformation": {
		"Name": "Steven Giesel",
		"Heading": "Software Engineer",
		"ProfilePictureUrl": "assets/profile-picture.webp"
	},
	"Giscus": {
		"Repository": "github/repo",
		"RepositoryId": "id",
		"Category": "general",
		"CategoryId": "id"
	},
	"Disqus": {
		"Shortname": "blog"
	},
	"ShowReadingIndicator": true,
	"SimlarBlogPosts": "true",
	"ShowBuildInformation": true,
	"SupportMe": {
		"KofiToken": "ABC123",
		"GithubSponsorName": "your-tag-here",
		"PatreonName": "your-tag-here",
		"ShowUnderBlogPost": true,
		"ShowUnderIntroduction": true,
		"ShowInFooter": true,
		"ShowSupportMePage": true,
		"SupportMePageDescription": "Buy my book here: [My Blazor Book](https://google.com) or please contribute to my open-source project here: [My Awesome Repo](https://github.com) . This can be **markdown**."
	},
	"ImageStorageProvider": "Azure",
	"ImageStorage" : {
		"AuthenticationMode": "Default",
		"ConnectionString": "",
		"ServiceUrl": "",
		"ContainerName": "",
		"CdnEndpoint": ""
	},
	"UseMultiAuthorMode": false,
	"EnableTagDiscoveryPanel": true
}
PropertyTypeDescription
BlogNamestringName of your blog. Is used in the navbar and is used as the title of the page. Will not be shown when BlogBrandUrl is set
BlogBrandUrlstringThe url to an image which is used as a brand image in the navigation bar. If not set or null the BlogName will be shown
SocialnodeRepresents all possible linked social accounts
GithubAccountUrlstringUrl to your github account. If not set it is not shown in the introduction card
LinkedInAccountUrlstringUrl to your LinkedIn account. If not set it is not shown in the introduction card
TwitterAccountUrlstringUrl to your Twitter account. If not set it is not shown in the introduction card
YoutubeAccountUrlstringUrl to your Youtube account. If not set it is not shown in the introduction card
IntroductionIs used for the introduction part of the blog
DescriptionMarkdownStringSmall introduction text for yourself. This is also used for <meta name="description"> tag. For this the markup will be converted to plain text
BackgroundUrlstringUrl or path to the background image. (Optional)
ProfilePictureUrlstringUrl or path to your profile picture
PersistenceProviderstringDeclares the type of the storage provider (one of the following: SqlServer, Sqlite, RavenDb, MongoDB, MySql, PostgreSql). More in-depth explanation here
ConnectionStringstringIs used for connection to a database.
DatabaseNamestringName of the database. Only used with RavenDbStorageProvider
AuthProviderstring
PROVIDER_NAMEstring
Domainstring
ClientIdstring
ClientSecretstring
LogoutUristring
BlogPostsPerPageintGives the amount of blog posts loaded and display per page. For more the user has to use the navigation
FirstPageCacheDurationInMinutesintThe duration in minutes the first page is cached.
AboutMeProfileInformationnodeSets information for the About Me Page. If omitted the page is disabled completely
NamestringName, which is displayed on top of the profile card
HeadingstringDisplayed under the name. For example job title
ProfilePictureUrlstringDisplayed profile picture
GiscusnodeEnables the comment section via giscus. If left empty the comment section will not be shown.
DisqusnodeEnables the comment section via disqus. If left empty the comment section will not be shown.
ShowReadingIndicatorbooleanIf set to true (default) a circle indicates the progress when a user reads a blog post (without comments).
SimilarBlogPostsbooleanIf set to true (default) similar blog posts are shown at the end of a blog post.
ShowBuildInformationbooleanIf set to true (default) the build information (target framework and build timestamp) is shown in the footer.
SupportMenodeDonation sections configuration. If left empty no donation sections will not be shown.
ImageStorageProviderstringDeclares the type of the image storage provider (currently only Azure).
ImageStoragenodeConfiguration for the image storage provider.
AuthenticationModestringThe authentication mode for the image storage provider. Either Default or ConnectionString
ConnectionStringstringThe connection string for the image storage provider. Only used if AuthenticationMode is set to ConnectionString
ServiceUrlstringThe host url of the Azure blob storage. Only used if AuthenticationMode is set to Default
ContainerNamestringThe container name for the image storage provider
CdnEndpointstringOptional CDN endpoint to use for uploaded images. If set, the blog will return this URL instead of the storage account URL for uploaded assets.
UseMultiAuthorModebooleanThe default value is false. If set to true then author name will be associated with blog posts at the time of creation. This author name will be fetched from the identity provider's name or nickname or preferred_username claim property.
EnableTagDiscoveryPanelbooleanThe default value is true. Enables the Tag Discovery Panel, which helps users discover topics by browsing popular tags.