Ask HN: Simple client websites – What do you use?

20 points by mkhalil ↗ HN
For a client, let's say a lawn care company who needs a few pages, maybe a portfolio and email quoting service? I notice a lot of people use Wordpress, but I'm not too familiar with it and it seems like there's a ton for a client to look at (menus/etc..) when they want to go in and change stuff.

I'm a frontend dev (Ruby/Rails + JS [React]), and don't want use a wordpress/php plugins. I also hate their templating system.

How about single page websites? Do you spin up a wordpress just for that?

Also hosting. One VPS for all? Do I host one and charge them or just sign them up for their own hosts with their credit cards?

I have been doing client websites as a side for a while now and I just can't seem to find something that works for ME.

32 comments

[ 0.24 ms ] story [ 78.9 ms ] thread
I use wordpress, but I'm not happy.

I really wonder why there is nothing that really streamlines things for the enduser.

What I want (some of which can be botched in to wp with plugins):

- pretty forms without much php (ACM does the job for wordpress here, but with some PHP)

- lego blocks of form fields, repeatable

- a nice rich text editor

- hide every button that is not necessary

- display instructions next to the editor

A few CMS I tried:

- wordpress: bloated and you still feel the blog inside, no lego blocks, a few strange quirks (try explaining how to make an empty line in the editor, haha)

- Concrete5: (is this still a thing?) the nicest, true inline WYSIWYG editor, but too small (few plugins, back in the day a bit buggy)

- modX: (is this still a thing?) too basic, you don't want to reinvent the wheel

- markdown based flat file CMS': Markdown is just not sufficient, so these have to make a non-markdown header in the files, often just maintainable through a editor interface. Here i tried: yellow CMS and Grav.

- - Grav: quite nice except the mentioned quirks. Really nice image handling, currently not client-friendly but a (payed) admin interface is in the making and might close this gap. Feels a but young here and there (e.g. can push via git, but than need to clear the cache manually in the admin interface)

- - yellow: poorly documented, breaking updates, small

What's your opinion of BlogSpot?
not sure what that is :)

is that what became blogger by google?

Yeah. The URL is still name.blogspot.com. But now they call it Blogger.
I never used it for anything with any design.
The templating engine on BlogSpot is not fun at all.
How so? (I quite like it. I am looking for insights.)

Thanks.

1) WordPress isn't the greatest, and I think you are right in that there is a lot of bloat for some simple sites. It would be nice if there was a "WordPress Lite" or something similar.

In the meantime, I favor WP for small clients for a couple reasons. It is fairly easy to teach them to use and you can lock it down somewhat with user roles. This can help prevent accidental alterations to the layout.

Because WP is fairly common, if for some reason the client moves on from me, the next developer is not handed some custom code they have to figure out.

However, if it is only a 1-2 page site I typically just do a static HTML or simple PHP site depending on needs.

2. For VPS, it is so cheap now, I just give them each a VPS. I just bill out the hosting costs to them each month with a couple extra $$ for "management costs".

My strategy would be $30 USD for hosting/maintenance (which would be a mask for a 5 dollar digital ocean box that multiple clients will use).
I was similar, although I charged $50 month for hosting/maintenance and gave each client their own droplet/VPS. I would typically go with the $10 or $20 droplet depending on the client, but the monthly fee was the same.
If you use Rails create your own micro cms or just do a simple html website with rails added in as needed.

I'm a fullstack developer Rails and Laravel and I develop WordPress Sites and Plugins. My main focus is web applications now but I have some legacy clients with basic websites.

WordPress is painful to deal with, most clients don't end up making their own changes with it anyway, it's bloated, has security issues, is slower loading than a Rails/Laravel site.

For you I'd recommend creating the sites in Html/CSS/Rails.

Try to sell your clients on a subscription that includes design, development, hosting and up to once monthly updates of existing content. Have packages that cover up to 5, 10, 15 pages, then as they add pages you can increase their subscription price. This has worked well for me for most clients. I'm sure you could get a high maintenance one here or there that could bombard you with requests for changes. But you can always increase their plan price occasionally if they are becoming a high demand client.

As far as hosting, a $5 digital ocean droplet would be enough for most small business brochure sites, then each one is one their own VPS. You could stack them on one VPS but I like having them on their own.

I use laravel forge to spin up the droplets and deploy repos, it also has build in support for lets encrypt so you can add SSL at no cost.

Good luck getting a system setup that works for you.

How do you justify to the client charging per page? What about page complexity? Like an about me page vs an interactive map.
This is mainly for brochure style websites so a page is a typical page, content and images. The per page charge is generally for the ongoing maint. so as the site grows the monthly fee for hosting/updates grows.

For speciality pages or something really complex those are quoted as a one time fee to create them. If they don't take a lot of time I might just create them under the subscription model as well. The clients understand that the per page pricing is for a typical webpage, custom pages, functionality and forms are quoted as they are requested.

I'm curious what people would think of Squarespace for this? Personally I have no opinion/experience, but if a friend asked for my help that would be the first thing to come to mind.
Yeah for shopping portals, definitely a premade solution is a nice way to go. Easy and if you give the credentials to the client they can do it themselves... depends on how invested one is.
I personally just use either Drupal, for complex websites because it's very customisable and flexible, or just write something in PHP with my own framework base.

For hosting, for smaller static-ish sites I register a shared hosting account and give the client login, for bigger websites a VPS just for the site, that I charge separately to update, and all ports except 80, 443, 21 and 22 are closed.

I can highly recommend grav: https://getgrav.org/ It uses Twig for templates, stores all data in files (Markdown) and the Admin panel is easy to extend with custom fields without writing code. Additionally there's an OK form builder, which can be used to build basic forms and perform basic operations (e.g. store data in files, send e-mails, etc.) but for anything more complex you would need to write a plugin.

I've written a few plugins for it, one specifically for creating albums and galleries for portfolios and I think that it's easy and a straightforward process.

This looks like the perfect CMS for my next project. Any chance of you sharing albums and galleries plugin?
Well I built it for a client and will have to see if it's OK to make it open source.
My main complaint are the blueprints that are needed for forms. The syntax feels overly complex and the output is not pure markdown anymore (escaped markdown stuffed in to a single line at best).

Also I see the admin interface as not client-proof :), they'd get lost and mess it all up.

I agree with you. While I do not necessarily think that the syntax feels overly complex (it's just YAML) the entire blueprint tends to get hard to read and complex if you add a dozen elements and tabs.

IMHO blueprints are great for a few simple cases, but anything beyond that requires writing a plugin. And plugins are easy to create and integrate in the Admin panel.

And also the Admin panel can be made client-proof. Panels like Configurations/Themes/Plugins can be easily disabled for individual users.

Now, the hardest part would be the "Pages" section which gives too much control to the client and therefore the ability to mess up the structure of the site. This is something I am currently thinking about solving with another plugin which would allow the client to modify content, without modifying the structure of the pages.

But in general I think that the way grav handles media, assets and routing is awesome and I really enjoy working with it.

Kudos to the grav team :).

you are totally right and yes, media handling is beautiful :)
WordPress, because simple websites tend to not stay simple.

Yes, WordPress is bloated and quirky in some ways but it gets the job done, works with every hosting service under the sun and you get plugins for any use case you can imagine.

For my own websites that I know will definitely stay simple I use plain HTML templates and GitHub Pages.

I really admire that you're challenging basic assumptions here; that every little site needs a full cms instance, or vps. That's a lot of infrastructure for something that should be pretty basic. I also questioned those assumptions and came up static file hosting service with a CORS api backed by sql. I promote it here pretty regularly. https://www.lite-engine.com

I'd really love to work with someone like yourself to iron out what you're needs are! Drop an email to support at the link above if you'd like to chat more.

Wordpress with some tweaks is fine. Also, joomla. Hidden unwanted menus, use a barebone theme, create some settings or custom posts types... That's it. Well, better than write it by my own. I Already made it, and after I changed to Wordpress, my simple small CMS sites were being developed 5x faster.
Have a look at https://craftcms.com I have used it a couple of time. What I really like about it is you have complete control of what gets to edit/add. And interface for the client is as simple or complex as needed.
There are many sites that showcase their simplicity with free software:

  https://www.palletsprojects.com/ (python / lektor)
    - source: https://github.com/pallets/website

  http://flask.pocoo.org/ (python / flask)
    - source: https://github.com/pallets/flask-website/

  https://developers.google.com/web/fundamentals/ (appengine / jekyll)
    - source: https://github.com/google/
Have you tried writing a progressive web app using Polymer?