A Markdown site in
one PHP file

Drop index.php into any folder on shared hosting alongside your .md files. That's it.

No composer. No npm. No build step. No database. Just PHP 7.1+.

Shared hosting is underrated. You already have PHP, a domain, and a directory full of notes or docs. OwnShip turns that directory into a browsable site โ€” with navigation, themes, and clean URLs โ€” without touching your server config or installing anything.

What you get

📄

Auto-navigation

Nav tree built from your file structure โ€” files and folders sorted alphabetically together, or arranged your way with an optional _order.txt.

✏️

Markdown & HTML

Just your .md files and folders. Headings, lists, tables, code blocks โ€” rendered in-file, no CDN or dependency. Drop in a .html file and it renders in a sandboxed iframe, scripts and all.

🎨

Themes, your way

Light, Dark, and Sepia built in โ€” plus any number of your own drop-in _theme-NAME.css palettes. Readers switch with a one-click cycle or a right-click picker; their choice is saved.

🔗

Clean URLs

Optional. One .htaccess snippet and pages serve as /my-page instead of ?page=my-page.

🧱

Header & footer

Optional _header.md / _footer.html (your choice of format). A {{home}} token wires up the home link automatically.

🔧

Make it yours

Simple by default, never boxed in. Drop in a _theme.css or _theme.js and OwnShip auto-loads it โ€” restyle or extend anything, no build step.

🔍

Search

Find a page by its title or by something in its text โ€” the nav tree narrows to just the matches, with the hits highlighted. Toggle it off for single-page sites.

⌨️

Keyboard navigation

Walk the nav tree, open pages, and expand or collapse folders entirely from the keyboard. Esc toggles focus between nav and content.

🔒

Keep it private

Public by default โ€” add an optional password to gate the whole site for client previews or private drafts. For sensitive data, use your host's directory protection.

Up in three steps

1

Download index.php

Grab it from ownship.cc. The entire app is one file.

2

Add your content

Write .md, .html, or .txt files in any editor, on your own machine. Organize them in folders, or not. Then upload everything โ€” your content and index.php โ€” to your host. OwnShip builds the navigation from whatever it finds.

3

Optionally configure

Create a _site.ini next to index.php to set your site title, default theme, and whether to use clean URLs.

The guide at ownship.cc/guide/ is itself served by OwnShip โ€” same index.php, live on shared hosting. See exactly what you'll get.

Browse the Guide →
#๏ธโƒฃ
Companion app

Write locally. Publish here.

OwnMark is a free local Markdown editor built as a companion to OwnShip. Write and organise on your own machine โ€” when you're ready, upload the folder and OwnShip serves it instantly.

Learn about OwnMark โ†’

Configuration

All optional. Drop in only what you need.

Simple setup instructions in the Guide โ†’

Downloads

All files are standalone โ€” no installer, no dependencies to manage.

Requires PHP 7.1 or newer on your host โ€” standard on virtually all shared hosting.

index.php v0.9.11 The OwnShip app. This one file is all you need โ€” drop it into any folder on shared hosting alongside your .md files.

Updating? Download the new index.php and replace the one on your server. Your content, _site.ini, and custom headers and footers are never touched.

Optional โ€” local preview only, not required to run OwnShip

OwnShipPreview.bat Local preview for Windows. Double-click to serve your content on localhost:8080.
OwnShipPreview.sh Local preview for bash / WSL. Run from your content directory.

Preview scripts require PHP installed and on PATH. Set clean_urls = false in _site.ini for local use โ€” PHP's built-in server does not process .htaccess.