Skip to content
An open-source blogging platform · built on .NET

Self-hosted blogging, beautifully crafted.

Inkwell is a free, self-hosted .NET blogging platform for writers who care about typography, ownership, and the long-form web. Quiet, opinionated, and free forever. Run it on your own infrastructure.

MIT licensed Multi-tenant by default No telemetry, ever

The Editorial Desk

useinkwell.app/desk/posts/the-quiet-web
Draft · saved 12:48 PM
Publish

On the quiet web, and why we still write here

By Eliot Mercer · Essay · 8 min read

There is a kind of reading that has gotten quieter in the last decade. It is not the reading of feeds or of summaries; it is the reading we used to do in long rooms, with long sentences, by writers who knew their own minds.

Most of the web is built to interrupt that reading. The blog, in its original form, was not. It was a paginated, dated, indexed object — a thing you could subscribe to and, more importantly, a thing you could leave alone.


Inkwell is an attempt to bring that object back into reach — without dragging it through a marketplace of plugins, a maze of dashboards, or someone else’s hosting bill

What’s in the box

Six decisions, made well.

Inkwell ships the things you actually need to publish — and almost nothing else. No plugin marketplace, no telemetry, no surprise updates.

01

Multi-tenant by default

Host many blogs from a single install. In Cloud mode each tenant is isolated by its URL slug, with its own Layout, Preset, and posts — without a second deploy.

02

Self-hosted, always

You own the database, the posts, the images, and the URLs. No cloud account, no API key, no vendor between you and your readers.

03

Layouts & Presets

20 editorial Layouts paired with 16 colour Presets — a wealth of tasteful looks out of the box. Swap them without a rebuild or a migration.

04

A visual editor, or Markdown

Compose visually with no markup, or write any post in Markdown with a server-rendered preview. Draft, schedule, send it for review, and publish. Every save is a revision you can restore.

05

Built on .NET 10

ASP.NET Core MVC with Dapper and raw SQL. Server-rendered HTML, fast cold starts, a single deployable. Familiar to every .NET team you know.

06

Open source, MIT

Fork it, audit it, ship your own variant. We build in public on GitHub, and we read every pull request from writers and developers alike.

Layouts & Presets

One platform. Infinite voices.

Inkwell separates structure from surface. A Layout decides how a blog reads. A Preset decides how it feels. Mix them.

Vol. XIV · No. 03
Magazine

An editor’s letter, a leader column, and three departments — laid out with the rhythm of a printed monthly. Generous margins, drop caps, and pull quotes that resolve where you expect them.

FeatureEssay
MagazinePreset 01
Grid · Index
Grid
A card-and-tile index. Posts arranged as a responsive grid of cover cards — ideal for image-led or high-volume publications that want everything visible at a glance.
TilesVisual
GridPreset 02
Classic · 042
Classic
The traditional blog. A reverse-chronological river of dated entries, one after another — the format the web was built to read.
Reverse-chronDated
ClassicPreset 05
Modern · Selected
Modern
Large type, generous whitespace, contemporary contrast. A bold, present-day look for publications that want to feel current and confident.
Large typeBold
ModernPreset 06
Open source

Free, forever. Built in the open.

Inkwell is MIT-licensed and developed in public on GitHub. No paid tiers. No hosted upsell. The repository is the product. New to running your own blog? Our guide compares the best self-hosted blogging platforms across every major stack.

$ git clone github.com/marutisoftwaresolutions/inkwell Copy
.NET 10
Runtime
20
Layouts
MIT
License
How it works

From clone to published, in three commands.

Inkwell is a single .NET solution. If you can deploy an ASP.NET Core app, you can run your own publication.

  1. i.

    Clone

    Pull the repository and restore packages. One solution, no Node, no build matrix.

    $ git clone github.com/marutisoftwaresolutions/inkwell
    $ cd inkwell && dotnet restore Blog.slnx
  2. ii.

    Configure

    Copy the example settings, point the connection string at your SQL Server, and run. The schema applies itself on first boot.

    "ConnectionStrings": {
      "DefaultConnection": "Server=.;Database=inkwell;..."
    }
  3. iii.

    Publish

    Build a single binary, drop it behind your reverse proxy of choice, and write.

    $ dotnet publish Blog.Web -c Release -o out
    $ dotnet out/Blog.Web.dll
Optional · paid services

When you’d rather not do it alone.

The platform stays free. The help, when you want it, is offered by Maruti Software Solutions — the team that builds Inkwell. Pick a service, send a brief, and we’ll come back with a fixed quote in two working days.

i. Installation

A turnkey install

We deploy Inkwell on your server, point your domain, set up TLS, and hand you the keys.

From US$499one-time Fixed quote after a short brief
  • Production deployment on your infrastructure
  • Database provisioning & backups configured
  • TLS, reverse-proxy, and DNS handover
  • One tenant, one Layout, one Preset
  • 30-day post-launch warranty
iii. Enhancement

A custom feature

Built-to-spec features merged into your fork — or upstreamed, with credit, if it belongs there.

From US$99/ hour Billed hourly · quoted per feature
  • Discovery call & written scope
  • Fixed-bid project quote per feature
  • Pull request against your fork
  • Tests, documentation, and migration scripts
  • Two rounds of revisions included
iv. Studio

A bespoke theme

A custom Layout and Preset, designed for your masthead — typography, palette, the whole room.

From US$2,400one-time No license fees or ongoing royalties
  • Brand & typography consultation
  • Custom Layout (templates & partials)
  • Custom Preset (palette, type, spacing)
  • Responsive across every breakpoint
  • Source files, yours to keep
Something bigger — migration from WordPress, multi-publication rollout, training? Start a custom engagement →
Invoiced in USD · EUR & GBP quotes available on request · NET-15 terms · Hosted from India & the UK
Frequently asked

Questions, answered plainly.

What is Inkwell?
Inkwell is a free, open-source, self-hosted blogging platform built on .NET 10. It is multi-tenant by default, fully themeable through Layouts and Presets, and designed for writers who care about typography, content ownership, and a calm editorial experience. You install it on your own server, point a domain at it, and publish — no cloud account or subscription required.
Is Inkwell free?
Yes. Inkwell is completely free and open source under the MIT license. There are no paid tiers, no usage limits, no telemetry, and no vendor lock-in. The source code on GitHub is the entire product. Optional paid services — installation, support, custom development, and bespoke themes — are available from Maruti Software Solutions for teams that want hands-on help.
What is Inkwell built with?
Inkwell is built on ASP.NET Core MVC targeting .NET 10, with Dapper and raw SQL for data access rather than an ORM. It produces clean, server-rendered HTML for performance, SEO, and accessibility. It uses Microsoft SQL Server (2019+ or SQL Server LocalDB for development) and ships a Dockerfile for containerised deployments.
How do I self-host Inkwell?
Clone the repository from GitHub, configure appsettings.json with a database connection string and your tenant list, then run dotnet publish. Inkwell ships a Dockerfile and runs on Linux, Windows, or macOS. Any reverse proxy — nginx, Caddy, or IIS — will work. The full install guide is at useinkwell.app/docs#install.
How does Inkwell compare to WordPress or Ghost?
Inkwell is smaller, faster, and more opinionated than either. Unlike WordPress, it ships no plugin marketplace and requires no PHP runtime. Unlike Ghost, it runs on the .NET stack and is multi-tenant by default — one binary serves many blogs. It is purpose-built for writers who want a calm, server-rendered, single-binary publication, not a CMS to continuously administer.
Can I run multiple blogs from one Inkwell install?
Yes. Multi-tenancy is built in, not a paid extension. In Cloud deployment mode one install serves many blogs, each tenant resolved and isolated by its URL slug, with its own Layout, Preset, and posts. A self-hosted install runs as a single-owner site by default. There is no per-tenant fee and no second deploy required.
Do you offer paid help — installation, support, or custom features?
Yes. Maruti Software Solutions, the team behind Inkwell, offers four optional paid services: a turnkey installation from US$499, a monthly support retainer from US$299, custom feature development at US$99 per hour, and bespoke Studio themes from US$2,400. The platform itself remains free and MIT-licensed. Visit the Services page at useinkwell.app/services to send a brief.
Is Inkwell GDPR compliant?
Yes. Because Inkwell is entirely self-hosted, all data — posts, subscriber lists, author accounts, and any analytics — stays exclusively on your server. Inkwell makes no outbound connections to third-party services, sends no telemetry, and requires no cloud account or external API. You control the database, the backups, and the data retention policy. This architecture makes Inkwell inherently compatible with GDPR, CCPA, and other data sovereignty regulations — you are the sole data controller.
Can I publish content in languages other than English?
Yes. Inkwell renders whatever content your authors write. Post titles, body text, tags, and author bios support any Unicode language — Arabic, Japanese, German, French, Portuguese, Hindi, and more. The Editorial Desk interface itself is in English, but there is no restriction on the language of the content you publish. Full right-to-left (RTL) layout support is on the roadmap for a future release.
Is Inkwell suitable for enterprise or multi-author teams?
Yes. Inkwell is multi-tenant by design — in Cloud deployment mode one installation can host multiple independent publications, each isolated by its URL slug with its own Layout and Preset. Admin, Editor, and Author roles with granular permissions, contributor bylines in Magazine layout, and an immutable audit trail make it well-suited for media teams, agencies, and enterprise publishing operations. Optional paid support retainers and custom feature development are available from Maruti Software Solutions for teams that need SLA-backed assistance.
What are the minimum server requirements to run Inkwell?
Inkwell requires .NET 10 and Microsoft SQL Server 2019+ (or SQL Server LocalDB for development and low-traffic sites). A minimum of 512 MB RAM and 1 vCPU is sufficient for a single-tenant blog with moderate traffic. Multi-tenant deployments serving high traffic benefit from 2 GB RAM and a dedicated SQL Server instance. Inkwell runs on Linux (recommended), Windows Server, and macOS, and ships a Dockerfile for containerised deployments.
The Inkwell Letter

Quiet dispatches from the workshop.

One letter a month. Release notes, essays on the craft of publishing, and the occasional theme. Unsubscribe whenever.

No tracking pixels. No drip campaigns. Plain text, sent from a person.