What is Sputnik? (000014)

There are two ways to look at Sputnik: as a simple wiki or as a web platform. Those may seem like contradictory requirements, but we aim to satisfy both. Let's tackle them separately:

Sputnik Is a Simple Wiki

Out of the box Sputnik behaves like a wiki with all the standard wiki features: editable pages, mild protection against spam bots (you need an account to edit pages, but anyone can create an account with no questions asked), history view of pages, diff, and an RSS feed for site changes. Support for protected pages and "superusers" (users who can edit protected pages) is coming soon. Sputnik uses Markdown for formatting, and aims to follow Wikipedia conventions otherwise. A basic Sputnik installation consists of just a few source files that add up to less than 2000 lines of code. (See Comparisons for details.) So, if you want a wiki that you can understand, this may be a good option. Please go to Installation if you want to get started.

Sputnik Is Whatever You Want It to Be

At the same time, Sputnik is designed to be extensible with almost no bounds. A simple change of templates can and perhaps a few spoons of Lua code can turn it into a photo album, a blog, a calendar, a mailing list archive viewer, or almost anything else. (See Demos for some examples.) So, you can think of it as a web platform of sorts. In addition to allowing you to add custom bells and whistles to a wiki, Sputnik provides a foundation for anything that's kind of like a wiki but not quite. Sputnik stores its data as versioned "pages" that can be editable through the web (just like any wiki), but at the same time it allows those pages to store any data that can be saved as text (prose, comma-separated values, lists of named parameters, Lua tables, mbox-formatted messages, XML, etc.) While by default the page is displayed as if it carried Markdown-formatted text, the way the page is viewed (or edited, or saved, etc.) can be overriden on a per-page basis. If you want, you can let your users edit their data (e.g. a list of upcoming events) as Lua Tables (you still get the benefits of diff, history, etc.) but display them as in a custom format (e.g. a fancy-looking calendar). If you want, you can then further add a custom "edit" view to give then an AJAXy edit interface. If you later have nothing better to do, you can even add a custom diff . In the extreme case, each page can act as a placeholder for a script that generates the content on the fly. As a result, you can add functionality to Sputnik with just a small amount of code.

To get a better idea of what Sputnik can do, look at the Conceptual Model and the Demos.

Powered by Sputnik | XHTML 1.1