Simon Martin
Simon Martin

Reputation: 4231

Recommendation for very lightweight website framework

I want to update/rewrite a small (10 page), simple website; 8 pages are entirely static and could be written in html, 1 page has a contact form and the other has to display a filterable list of clubs. At the moment the site is written in classic asp and uses dreamweaver templates for consistent pages.

My requirements are

  1. A "masterpage" / Templating system, so all shared page elements are written in only 1 place.
  2. Lightweight / low overhead framework
  3. To learn a new language

I could use ASP.NET Webforms or ASP.NET MVC to get the masterpage, but they both come with overhead that isn't necessary for such a small site and on my godaddy hosting spinning up a site from cold is noticeably slower than a pure html page.

The clubs page will show a list of clubs filterable by location, but I don't want to use a database to store this list - there is another site that has the official list of clubs, but the system isn't capable of providing this as a service or other consumable resource so I would need to scrape the details periodically and cache them locally or use an iframe or something

I thought maybe Python or django might be good candidates but don't know enough to know. I now think that what I'm looking for is a "micro web framework". I've taken a quick look at the Mercurial Web Server which is written in python and that looks quite straightforward, but I don't have access to the hosted web server on Go Daddy, so can't install python...

Edit
I need this to run on my current shared hosting with GoDaddy on (IIS7)

Edit2
The list of clubs is maintained by the official HQ website, they occasionally add / remove clubs. I just need to keep my list up to date with theirs. I have been checking every few months (if I remember) and updating an MS SQL database, but that's hugely over the top. I was thinking of just pulling the details down into a json format and persisting it in a text file (once a month, or something) which I could then use as the basis of a table with jQuery filtering on. The club details are just text; Name of Club, Main contact, phone number, address and email address.

I would also like publishing to be simple, commit the code to Mercurial (or git) and have that run the site. I know bitbucket (and github) both serve static page sites (I'm not sure how I would get a contact us form to work in that environment - but it's the deployment model I would like)

The site I am looking to update is Seika Dojo

Upvotes: 2

Views: 2530

Answers (12)

H. Erd
H. Erd

Reputation: 1

I wrote MicroPie to solve my simple server needs. The repo has a bunch of examples, from simple to somewhat complex.

Upvotes: 0

Mike O'Connor
Mike O'Connor

Reputation: 2700

Pelican wasn't mentioned. It produces static pages and is done in Python. It meets all of the stated criteria.

Upvotes: 1

Cagatay Kalan
Cagatay Kalan

Reputation: 4126

Based on my experience, any 8 page static website someday needs dynamic features so it is always a good idea to start from something extensible.

Then the first decision is to use a Framework or a CMS. This depends on your expectation of the site getting bigger in the future, your ability to develop custom codes to achieve dynamic features and the structure and the requirements of the project in hand.

When we need a CMS we use,

Orchard if ASP .NET MVC 3: Take a look at our site www.dreamrain.com which looks like a static website but actually uses Orchard themes and modules for the dynamic features. If you don't need themes and modules, you can still create a 8 page website and then you can extend it in the future. Btw, we built this site in 5 days with 4 hours of development effort

Note: Orchard may need Full Trust so check its documentation and ask GoDaddy if they allow it.

WordPress if PHP,

When we need a Framework we use,

ASP .NET MVC 3 for .NET, Django or Pyramid for Python, Zend for PHP, Grails for Groovy/Java/J2EE, Play for SCALA

Upvotes: -1

Simon Martin
Simon Martin

Reputation: 4231

I've been looking around further and the goal of a templating system can be met by just using xml includes, or Embedded JavaScript to pull in the header / footer / menu sections. All the 'work' is then done on the client browser, so the web server only needs to serve up static files which is about as lightweight as you can get.

Upvotes: 0

JefClaes
JefClaes

Reputation: 3373

Well, I don't know about the other frameworks, but I have good experiences building a small site in NancyFx.

  1. NancyFx supports multiple view engines. You could use the SuperSimpleViewEngine; masterpages come out of the box.
  2. Getting started with Nancy is super easy.
  3. I think you already know .NET/C#, but Nancy takes a lot of advantage of new dynamic features which are fun to play with.

Upvotes: 2

Spacedman
Spacedman

Reputation: 94162

Cactus:

https://github.com/koenbok/Cactus

is my current favourite static site generator - it uses Django templates to create a set of pages (in the 'build' directory) from a set of templates (in the 'pages' directory) and all the usual images and css in a 'static' directory.

Do your filterable table with Javascript on the client - it doesn't sound too complex. This lovely table grid component:

http://datatables.net/

might be just the ticket.

Upvotes: 1

marbdq
marbdq

Reputation: 1235

Python is my favorite language, but I wouldn't use it for creating a simple website. I would recommend you to go with ready made CMS solutions, like Wordpress.

  • You would learn something new.
  • You won't have to implement any features (CMS + plug-ins will provide all you need).
  • You will get all the support you need.
  • It is easy to deploy on any hosting (since it's PHP based -yeap, sorry, php-).

Upvotes: 1

sparrow
sparrow

Reputation: 1957

Perhaps look at cherrypy or webpy? They are very minimalist, python web frameworks designed for something like this. (I think django is too big for this small of an app, IMHO)

Also, take a look at Sinatra if you want to learn some ruby.

Express is good for some javascript experience.

For single-page apps, backbone.js is popular and really powerful, but might not be what you want.

But most importantly, have fun learning a new language!

Upvotes: 0

danielz
danielz

Reputation: 1767

Flask and web.py would both be good choices. I don't think that Django is really suited for such a small project but you can definitely use it.

Upvotes: 0

Vidul
Vidul

Reputation: 10528

Although not exactly on the topic, since you don't need entirely static website, StaticMatic may be of interest as one of the best lightweight tools for static content generation.

Upvotes: 0

mlt
mlt

Reputation: 1659

There is no need to run monsters to serve 10 almost static pages. If you plan to pull and cache some data out of the web, it is a way to go to update static HTML.

As another author mentioned HTML5 can help you. Take a look at jQuery for table filtration. As for page regeneration with common elements consider either jekyll/hyde or org-mode (using batch processing mode with emacs). You have a plenty of languages to choose from.

Upvotes: 3

gfortune
gfortune

Reputation: 2609

See http://wiki.python.org/moin/WebFrameworks and play with a couple of the choices that tickle your fancy. I would tend toward the lighter frameworks based on what you described.

Upvotes: 0

Related Questions