home

Serve Markdown at Lightning Speed with SEMDGO πŸš€

Apr 14, 2025

-Shafin Hasnat

As developers, sometimes all we need is a clean, no-fuss way to serve markdown files, whether it’s for documentation, personal blogs, or internal wikis. That’s where SEMDGO (pronounced sem-dee-go) comes in.

What is SEMDGO?

SEMDGO stands for SErve MarkDown with GO, and it does exactly what the name promises. It’s a lightweight, high-performance markdown server built with Go, designed to serve markdown content as web pages with minimal configuration.

Forget about bulky frontend frameworks, static site generators, or fiddling with HTML. SEMDGO delivers a simple yet powerful way to publish .md files, cleanly rendered and instantly accessible.

Key features

SEMDGO is built with simplicity and performance in mind. Whether you’re deploying on a full-fledged server or a tiny single-board computer, it delivers consistent and reliable markdown serving. Here are some of the core features that make SEMDGO stand out:

Getting started

Serving markdown file with semdgo is easy. First prepare your markdown site with README.md entrypoint on root. Then put your content files and folders inside the /var/semdgo/content/ directory of the semdgo container and run it. Below given Dockerfile and docker-compse example to use semdgo-

SEMDGO with docker

First craete your contents with README.md on root-

content/
β”œβ”€β”€ README.md
β”œβ”€β”€ blog/
β”‚   β”œβ”€β”€ blog1.md
β”‚   └── img.png
└── docs/
    └── guide.md

Then use the Dockerfile to build your content site image-

FROM shafinhasnat/semdgo
COPY ./content/ /var/semdgo/content/
CMD ["./semdgo"]
Then simply build and run it.

Alternatively you can use the following docker-compose-

services:
  semdgo:
    image: shafinhasnat/semdgo
    container_name: semdgo
    ports:
      - "80:80"
    volumes:
      - ./content/:/var/semdgo/content/

Why Semdgo

The charm of SEMDGO lies in its simplicity. It’s perfect for:


Source code β€” github



Read on medium