grow your website
one blog at a time
[Why seedBlogs?] -- [Examples] -- [Download] -- [Documentation]

Why seedBlogs?

The Problem You need to build a website for a small organization, say a community action group or some other type of non-governmental organization. The website is mostly filled with static content (essentially an online brochure), but the organization wants to update its website periodically with new information (for example, meeting minutes, upcoming events, or news items). Furthermore, the organization is largely populated with non-technical people (you, the web master, may be the only one capable of updating a website "the old fashioned way" using FTP or SCP). Did I mention that you are a volunteer web master?

Most of these organizations are currently using static websites: updates are funneled through one person (the web master) and posted manually by editing HTML files. Web masters burn out quickly under such a tedious workload. There must be a better solution, maybe something from the "pushbutton publishing" revolution.

What about generic blogging software? Blogs make it easy for non-techs to post updates, but they are quite rigid in terms of presentation (a single list of posts). Integrating a generic blog into an existing, mostly-static brochure in a clean way would require a lot of software customization. With most blogging software, the blog is the website, not just part of the website.

What about monolithic community portals? CMS/portal packages like Drupal, CivicSpace, and Mambo are generally more flexible and customizable than blogs, but they are also quite complicated. You may not need to know HTML to post content, but wading through the various configuration and administration screens (hey---even the front-page screen) can be overwhelming and frustrating. Furthermore, these systems are too big and feature-rich for your organization, and their focus on many-user communities (with prominent log-in forms, etc.) is simply overkill. As with generic blog packages, the CMS is the website and is difficult to integrate as a subordinate part of an existing brochure site. The irony here is that these monolithic portals are designed with your kind of organization in mind. The problem, perhaps, is that these portals try to be all things to all organizations, thus becoming overly complicated.

The Solution What we need is a simple, modular building block that we can use to add dynamic content to any website. Not a blog-centric website or a gigantic CMS, but a kind of mini-blog that we can "plug in" wherever we need it.

seedBlogs is exactly this kind of website-building primitive. After setting up a single MySQL database and installing two PHP files (seedBlogs.php and settings.php), you can plug new seedBlogs into your website as you need them. You are free to design your website however you want, inserting dynamic, updatable sections where they make sense, and hand-coding static content wherever is appropriate. After you set up a few seedBlogs on your site, posting and editing dynamic content becomes just as easy as using webmail. In other words, your non-technical organization members will be able to maintain the website on their own with very little help from you.

For example, you might have a "features" section on your front page with a list of recent stories or updates---you could use a seedBlog for this. You might also have a "news" box in a sidebar with recent headlines---seedBlogs can handle this as well. On a completely separate sub-page, you might have another features-type section, but this time with updates about one particular sub-project that your organization is running---seedBlogs can do this too.

How much coding does it take to insert a seedBlog into your website? Almost none. The following PHP block is all that is needed to create and display a seedBlog that is named "news" in the database:
 include_once( "seedBlogs.php" );
 seedBlog( "news", 0 );
The first line in the block includes the seedBlogs.php file so that the various seedBlogs functions are available. The second line contains a seedBlog function call, which displays a seedBlog. The argument 0 after "news" tells seedBlogs to show only headlines and hide the blocks of intro text for each post. A slightly more complex function call, seedBlogFormatted, can be used to control exactly how a given seedBlog is presented. Two additional functions, seedBlogs_showLoginBox and seedBlogs_showSearchBox, can be used to display login and search forms wherever you want them. These four simple function calls allow you to sculpt dynamic content into your website, leaving the rest of your site's design and structure up to you.

Flexibility from Simplicity Despite its simple design, seedBlogs is an amazingly flexible and powerful tool for dynamizing websites. Several advanced features are included. For example, all posts in your seedBlogs system are fully searchable, and RSS 2.0 feeds can be generated automatically.

The real zinger is that seedBlogs can be used to do almost everything that blog and CMS packages can do, but with more design freedom and less headache. For example, if you want to build a standard-issue blog site, you can simply display a single seedBlog as the centerpiece of your main page. If you want a community-driven portal site featuring user-submitted content, you can do that too: simply display the seedBlogs login box in a prominent location to give your site the feel of a login-centric CMS.

A Focus on Security seedBlogs was implemented using secure coding practices, and several factors contribute to the security of a seedBlogs installation. First, seedBlogs is completely database-driven, and the code never manipulates the file system or runs shell commands. This implementation style eliminates a large number of potential security holes. Second, all user-submitted data that is passed into SQL queries is filtered to remove characters that might break the query. Thus, malicious users cannot manipulate the database in unexpected ways by submitting specially-formatted data to seedBlogs. More generally, seedBlogs development conforms to the best security practices suggested by a number of sources. For more information, see:
--Security (PHP Manual)
--OWASP Top Ten Vulnerabilities
--PHP Security Mistakes

seedBlogs Features

Modular PHP / MySQL building block

Add dynamic content to any website

Build your website your way

Entire post database is searchable

Simple and effective user management system

RSS 2.0 feed support

seedBlogs in Action

seedBlogs Demo

My Worklog

Seedcorn Website

Project Links

Support My Work

Suggest Features

Report Bugs

Hosted by:

seedBlogs source code is free software (GNU GPL).
All website content has been placed in the public domain.