{"repo":"SharpPress/SharpPress","free":true,"listed":false,"github":"https://github.com/SharpPress/SharpPress","clone":"git clone https://github.com/SharpPress/SharpPress.git","description":"The CMS that grows with you. SharpPress is a modular, plugin-first content management system built on .NET 8 with a built-in admin panel and RESTful API. Start with a simple blog and scale into a full web platform — all through hot-loadable plugins that extend everything at runtime without ever restarting the server.","language":"C#","stars":10,"topics":[],"license":"MIT","category":"dashboards-admin","readme_excerpt":"SharpPress A plugin-first CMS built with C# / .NET 8. Think WordPress but for people who like C# and don't want to fight EF Core migrations. It gives you an admin panel out of the box (posts, users, media, the usual), but every piece of it can be swapped or extended with plugins. Drop a DLL in the plugins folder and it just loads — no restart needed. Why this exists I wanted something that felt like a normal CMS to use, but where I could actually hack on the internals without fighting the framework. So: MySQL for storage, a powerful custom ORM that builds tables from your C# classes automatically, JWT + cookie auth, and a plugin system that hot-loads DLLs into isolated contexts so they don't step on each other's dependencies. What it can do - Posts, pages, blog stuff — categories, tags, scheduled publishing, slugs like /blog/my-post - Users — JWT + cookies, 2FA, roles (User/Mod/Support/Admin), auto lockout after too many failed logins - Media — upload images/video/audio/docs, auto thumbnails, safe file paths - Plugins — hot-loaded, run in their own AssemblyLoadContext , can be turned on/off without restarting the server - Real-time stuff — WebSocket server + an event bus so plugins can react to things happening in the system - The boring important stuff — gzip compression, in-memory caching, health check endpoint, graceful shutdown Getting it running You need .NET 8 SDK and MySQL 8. Edit config.json (it generates itself on first run) and drop in your MySQL details: Then just ","default_branch":null,"files":null,"tree":[],"storefront":"/r/SharpPress","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/SharpPress/SharpPress/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}