Vapid: an intentionally simple CMS
vapid.comIs the name actually "rapid" but as said by Barry Kripke?
But a more serious question is, how is this different from the hundreds of other CMS? I am not attacking, but just trying to understand what motivated this and why someone might choose this. As someone who would need a CMS in the near future I am interested in this genuinely.
Don't say RTFM because I did, but I didn't find anything like "why use vapid?". Is this point in the gist supposed to be the clincher?
> You only need to know HTML (plus CSS and JS to the extent that your design calls for it).
It seems to be meant for people who build a lot of customizable, relatively simple websites. The devs write the HTML & CSS, and Vapid automatically generates admin dashboards for content management.
How is that different from what Django does?
Just spent 10 minutes with the demo. Here's what it appears to be:
- You create a bunch of static HTML pages with a bunch of tags like: {{field_name type=7_to_choose_from ...opts}}
- Vapid runs a node server that scans all your HTML files and parses out the tags in each html file
- The node server runs a CMS webapp (the "dashboard") that generates field inputs for the parsed tags (text inputs, image selectors, wysiwyg editors, etc... whatever matches your tag type)
- Data you input is persisted in a SQLite DB
- The node server serves up your static HTML pages as if they were any standard template (mustache, etc)
- It runs a watch server, so any changes to your files are auto updated
Onboarding demo seems to run as a 'development' server. Quick perusal of the docs don't describe what the production mode is (probably no watch server?).
That's all as far as I can tell. Seems fine for lightweight pages, as promised.
Django's admin is great, but it's semi-automatic at best: you still have to specify exactly what the models should look like. This tool seems to infer the models and forms that are required from the html.
I think Vapid is for static sites. Unlike Django, WordPress, etc, there's no backend. Correct me if I'm wrong.
There does appear to be a backend, it’s just only used to generate the static files that are eventually served.
Because in my (somewhat limited) experience with CMSs' the definition of the data in separate from the layout, which makes sense if you're building a larger site where separation of view and data makes maintenance easier.
However, if all you're doing is building a 5 page website, it's much simpler to just put in the configurable parts in the HTML as you're building it and let Vapid handle the dashboard, which the client can easily use to make small changes as needed.
Honestly, if all you're building is a 5 page website its simpler to bundle infrequent content updates into a maintenance retainer with the client. In my experience there's no such thing as a simple CMS, its either small enough that you can handle it via email, or complex enough to need something larger.
> However, if all you're doing is building a 5 page website,
Why not cut to the chase and show the client how to use FTP and a text editor? Why add more complexity beyond that?
For likely the same reason a cleaning service doesn't offer to show the customer what chemical mixture to use to clean an especially grimy tub or oven. The customer is paying for the convenience, not a tutorial, and the cleaners aren't in the "teach a man/woman to fish" business.
Because sometime clients; especially extremely non-technical one, are scared of anything that looks like code. HTML definitely looks like code. :)
Its selling point seems to be that it's "simple". Although for me Wordpress for instance is simple too in that it can be up and running within 10 minutes.
This is where we start spilling hate about Wordpress, but we won't, because we are better than that. Hold hands, everybody...
It's hard to tell from the initial docs, but I think this generates pages statically, so unlike Wordpress, you're not relying on a DB to serve content.
If that's true, it seems like the kinda missing bridge/glue between generators like Jekyll/Hugo; allowing static content without needing to be a web dev.
Kumbaya, my friend.
But seriously, in my experience, I'd rather use something other than Wordpress. There are lots of things it does well, but not usually for the projects I work on. Use the tool that works well for the project.
Made many, many WP sites over the years for clients or otherwise. It's brilliant for what it is. You can do SO much with it. Stuff like this always intrigues me though - I'd happily replace WP for client sites where they may want to make some minor amends to copy / content (and thus I can sell "you can edit it yourself" as part of the package), but they don't have to worry about updating it and all the heaviness that WP brings.
The thing I always kind of thought was crappy is that because WP has so many plugins available, it becomes difficult to build even simple sites on a different platform if there is even a small chance you may need more functionality in the future.
My go to example is a simple payment order form (or sometimes forms in general depending on the CMS/static site generator).
If I use this tool, there are no forms. Client comes back a year from now and says they want to add a form. So after much fuss we move to something with forms. Then another year later, they want to take payments for $20 T shirts. We could spin up a 3rd party service but sometimes that makes things even more complicated.
If I started on WP, I can use one of the dozen form builders that support basic payments and I would have saved my client thousands of dollars of transfer fees and hours of my own time converting data between these platforms for little gain.
I say all this as someone who builds mostly WordPress sites at this time, though I’m always trying out new things too.
WordPress is _easy_. It most definitely isn't simple.
Highly recommend watching: https://www.infoq.com/presentations/Simple-Made-Easy
I like the look of it!
The basic idea has been executed already using PHP by Perch CMS[0], but this looks like it could be a good alternative (esp. if it's open source!)
This was literally exactly what I was about to say. I tried Perch out a few months ago and I feel like this is similar... although, much more refined. I have huge respect for the people behind Perch, so I'm definitely keeping tabs there.
Honestly, I'm excited for Vapid. I've always loved implementing CMS systems. WordPress is great, with undoubtably the largest community of plugins and templates, and like the new Gutenberg editor... but I'm also starting to fall in love with the JAMstack model (i.e. Netlify, Headless CMS). Simply pushing commits to Github and sitting back. Netlify Forms is nice and easy, but their CMS sucks IMHO. Which is why I'm excited for something like Vapid. It fills that void I'm feeling.
I can picture myself spinning out all these nice custom CMS websites for clients and maybe building some custom browser plugins to make it so easy for clients (like how Tipe.io does). That feels like the future / next level.
Was going to come here to say https://grabaperch.com is similar and fantastic - Drew Mclellan and Rachel Andrew are so incredibly helpful in the forums and it's so easy to deploy it's my go-to for knocking out a site quickly for a friend.
I'm a big fan of Processwire (open source), and I also love that you need to define fields explicitly. Doesn't turn into a circus of what's defined where, when it gets a little bit complicated? I never tried this model so I'm really asking.
I don't know about Vapid, but with perch it automatically does some categorization for you. Obviously each page on your site has it's own page in the CMS for setting variables. You can also subgroup pages into sections, still just using simple templating functions. And then there is also a dedicated page for managing your various images/resources.
The main use case I think is for people who build landing pages for other people.
A static site generator is good if you're building a landing page for yourself, but if you're building a website for the butcher shop down the road, they're not gonna want to edit individual markdown files. So you throw in some Perch (or Vapid) variables and it does the rest for you. Then you can just give the shop owner a login and they can edit the site as they see fit.
The appeal is to have the ease of a static site generator (you don't have to develop your HTML with any sort of "CMS" in mind) while actually having that CMS functionality.
I'm excited about multiple products in this space, because it means I can probably switch between them in a matter of minutes/hours, realistically.
Funny, because I described it to some fellow devs as "if Perch and Jekyll had a baby."
Unrelated, but “Vapid” is an interesting naming choice. The word has a clearly negative connotation, no?
It's a memorable 5 digit .com with no purposeful typos or other trickery, and it also gets people talking (like this thread right now). I think it's perfect.
Yeah, though "Wii" sounds like urination, "iPad" sounds like a sanitary product, not even to mention "Virgin".. and, well, no one cares about those anymore :-)
People at Slack had the same doubts before they chose that name[1], but clearly it was a non-issue
[1] https://www.npr.org/2018/07/27/633164558/slack-flickr-stewar...
But in a physical context, vapid can be also mean "shallow" or "flat" which kind of matches the idea of a flat CMS, I guess.
I guess this name had more depth than I realized :)
Well, when I read the name "Vapid" and then "for people who create websites for other people" it really did bring to mind certain projects from the past. The kind of projects where you don't want the bulk of an enterprise-ready CMS getting in the way of a fast exit :-)
Website says it was deployed live by Cards Against Humanity. I doubt they really care
Depends - it's defined as "offering nothing challenging". Creating content for others to read online has become as essential as being able to write with pen on paper. So in a sense, a CMS that isn't challenging for the average Joe is indeed better off being 'vapid'
The Oxford definition is a bit more specific: "offering nothing that is stimulating or challenging; bland". It doesn't really mean effortless or intuitive, more like the simple in simpleton. (The origin is apparently from vapour and was used to describe stale wine. [1])
Uh, I guess. Usually I equate it with “dull”.
Vapid, to me, is like an agressive ignorance or boredom. Someone uninteresting and yet proud of their 'basic-ness'. Someone concerned with the valueless superficial representation over the real article.
Little nit-pick, but the code in the top image example says
{{intro type=html required=false}}
But there's still a red star next to introFixed!
https://getkirby.com/ is nice, but not open-source. https://getgrav.org/ seems similar. https://bolt.cm/ is perhaps not as sparse, but the best flat file CMS I've found (SQLite).
Kirby is really good. I've tried it a few weeks ago for a simple website (for which I would have used Wordpress) and it did the job perfectly. It's fast, efficient, has a great documentation and is really easy to set up. I have nothing bad to say about this.
I can recommend Bolt CMS for its declarative definition of content types and overall simplicity. (It's not limited to SQLite, though.)
I’m impressed with the illustration: it does a very good job of conveying just what the product is. It is, admittedly, much simpler than most products, but it’s quite an achievement all the same. I imagine that it’s a slight simplification, but perhaps only very slight.
It looks to have a couple of errors, though: the intro field in it doesn’t look right: the default editor type is wysiwyg, so I presume there should be a toolbar there in practice; and it has required=false, so I presume the red star should be missing.
I read
>The HTML is the CMS Add simple template tags to a static webpage, and Vapid will automatically generate the dashboard for you. No config files, no other languages required
While puzzling over the links (curved purple lines with end-points no arrows) over the image above. Then I guessed, HTML tabs can be added, and webform will update to reflect to the new tabs added. Right?
This took a good couple of minutes of thinking what this does. I suggest adding a video or two on the landing page with a demo. A before/after. Perhaps I'm stupid on not getting this, but I guess a lot of people are far more stupid than me.
So, it is not a dashboard for managing a static site...rather, it is a dashboard for managing static content that gets ultimately served to visitors via node...is that right? (This is not a criticism, just confirming.)
I was thinking Vapid is like http://getlektor.com and is a static renderer with a built-in admin UI. But you maybe correct that node.js is serving the files.
I loved lektor when it first came on the scene...but can't recall why I stopped using it. The concept is great: admin UI that outputs static files! For some reason, i stopped using it, and the last couple of years have been using hugo...maybe i should revisit lektor. Thanks for this reminder!
Their first blog post talking about vapid is at:
Nice, was actually checking out Jekyll the other day but this looks 10x better for the purpose of getting a simple blog up and running without all the WP bloat.
Will give it a try next week!
I've built Jekyll+ to handle editing GitHub pages, it may be worth a look; https://github.com/Wiredcraft/jekyllplus#readme
Vapid seems like what I am after, a super simple CMS for "brochure" sites.
Using page templates might allow www.surrealcms.com to manage a blog. Builtin blogging is planned for version 7.1.
Hugo + Netlify is the direction I am going now but that still seems overkill.
I've quickly played with it just now and I can't see how you could use Vapid to create new blog posts. It seems to be a simple dashboard for existing content, but I couldn't figure out how to create new content.
If it supported markdown content as a type I could almost use it.
The docs say it supports Markdown. https://docs.vapid.com/content-types#html
I took this for a test drive this morning. In addition to producing a raft of errors trying to install globally, I ran into a number of issues where the documentation didn't exactly jive with observed reality. I threw up my hands and wandered off when pasting example code from the documentation into a template caused the server to crash. General impression: fun idea, not ready for prime time.
This is great. I've been wanting something like this for a while now.
I really like the website too. Minus the small bugs people have already mentioned, the actual design and information on the front page is perfect. A lot of projects shared on HN could learn from this page, tbh (I mean that in an encouraging way, not an attack, but so many project homepages don't explain the project very well).
Great tool. Quick feedback: The div with class `.banner` is covering the login button so it can't be clicked. This on Chrome 68 Desktop.
> If you're interested in kicking the tires and are comfortable with dev environments, then install the app via these terminal commands.
So is this actually an open-source project, or is the open source just intended as a preview, and it's expected that production workloads would always be in the SaaS version?
It looks great but I'm a bit confused by the intention.
Same here. The fact that you can request for a closed beta access suggest that it's not something you could host yourself, but at the end of the page it shows how to test it yourself. Pretty confusing.
Edit: It says on the medium post: "This is a great way to get familiar with the app, and prep your site(s) for deploying on the Vapid hosted service." So yeah looks like it's going to be a SaSS.
The code is licensed MIT without restrictions and the readme says:
"Vapid can be deployed to any hosting service that supports Node.js."
A few years ago I used a small startup called 900dpi to build a few client websites that needed to allow the clients to modify certain parts of the website on the fly.
This seems similar-ish, but with a self-hosted option - which I prefer after my experience when 900dpi shuttered ;)
Seems useful!
Neat, haven't played with it but the execution looks great!
Have been working on something similar for a specific niche of CMSs, do you handle primitive lists/lists of complex types? (E.g. to create nav bars that can be modified by the CMS)
This looks really great, thank you!
I might play with it this morning, with Choo!
I can recommend Publii CMS https://getpublii.com
I was looking for something like this the other day. I'm definitely trying it out this weekend!
Really nice concept!
I like systems that keep your work focused & simple.
What a beautiful name for a CMS
What are the differences between Vapid and Grav?
Grav is in use on many production sites and their support is amazing. When I run into an issue they resolve it like I'm on a paid contract. I have a shared environment with one grav install and a dozen sites which is not a normal install. Here's a really simple blog: https://www.sendthemtomir.com/
A few demo pages would help visualize the end result, before signing up.
"For people who build websites for other people". The headline is so freaking hilarious! Haha