I was programming (surprise!) for various Internet startups. The last one was https://prismic.io - also my favourite one. Great team and great product.
the lichess name:
Or maybe I meant "le chess" and made a typo
In my experience I found that Google picks up content from client side rendered React apps pretty well... assuming your app loads reasonably fast.
That said, I would recommend server rendering if SEO performance is a concern.
​
​
Here's my current list of dream features:
https://prismic.io is free for one user and is super user friendly for pushing to clients. Not free however if they want more than one user, and can be complicated depending on what stack you're trying to integrate it with
Prismic (cheap) or Contentful (spendy) would seem like what you're looking for. Basically it's a front-end for content creation, which you then hook into via an API from your language of choice.
I don't know of any open-source alternatives to either of them, which is unfortunate because it's an intriguing model.
As an aside, if you're thinking about building a content site as a SPA, I'd recommend not doing that. It's best practice to shy away from hard JS requirements on sites that don't need interactivity (for example, a content site). I would recommend doing something like this instead (here using NodeJS, Babel, Koa 2.x + Contentful + Nunjucks):
import * as Koa from 'koa'; import * as Router from 'koa-router'; import * as contentful from 'contentful'; import * as nunjucks from 'nunjucks';
const client = contentful.createClient(/* settings */); const router = new Router(); const app = new Koa();
// render the latest 10 entries router.get('/', async function(ctx, next) { const entries = await client.entries({ order: '-sys.createdAt', limit: 10 }); ctx.body = await nunjucks.render('templates/index.html', { entries }); });
app.use(router.routes()); app.listen(3000);
And then use something like nginx to reverse-proxy to 3000 and serve away.
Fair warning: you're probably going to see a performance hit compared to a local DB solution because of the longer round-trip (client -> site server -> content server -> site server -> client instead of client -> site-server -> client).
But if you're using something like Drupal (which we use in-house as our CMS solution), you would have spent 5x that time in the rendering rat nest anyway. Probably a wash.
You could use an API-first CMS, also called CAAS (CMS as a service).
Here's a couple to start:
Generally you define your data scheme and hit their API to get the content.
I'm using Prismic right now on a fairly small project. They have a node SDK as well as just a js-kit, so you can hit their API in whichever way you choose. My app is solely front end right now (Vue) and it's working pretty well.
Here are a couple of ideas that would challenge you a bit while learning and implementing the basics of Angular:
We use Prismic - I haven't checked out the others but it's immensely powerful, I would highly recommend signing up as it's free for 1 user.
In regards to worrying about API calls either from a budget or performance PoV, you could try caching the responses for, say, 1 day - that way you are in charge of when this happens and you know how often you are hitting the API.
It might not be exactly what you're looking for, but I have been using prismic.io for a project at work. It's from Zengularity, the same guys who created Play.
It's a CMS backend, which means they expose a REST api which you can call from your application.
I haven't settled on something yet but I like the idea of a headless CMS feeding data into Vue or Nuxt. I experimented with headless Wordpress/Vue for a site; that worked well for my client who doesn't do any editing.
Checking out Prismic.io next.
I personally would recommend headless CMS so you don't have such a headache with content types beyond text (I'm thinking along the lines of if you want to include pictures in your blog). For work, I use Prismic, but I'm sure any headless CMS with Vue integration would do.
Both are good, but if it's hard to you to use NextJS, then you should go with SSR rendering. (Btw, there is a good article about using Next for SEO purposes https://prismic.io/blog/seo-with-react-and-nextjs)
Prismic is nice, lots of SDKs for different languages/frameworks and for 1 user it's free.
Support isn't amazing as they are a very small company but a great offering if you're wanting something to test the water.
The UD in my name is for an old gaming community I used to run a good while back. Usually it'd be SeerUK, but alas, that was taken!
I've seen a couple like prismic.io and contentful. Out of the two I think I preferred contentful, prismic's editing experience let it down IMO. I also am mainly interested in something self-hosted, as if I were to try sell something built on one of the PaaS solutions it'd be a lot more difficult to convince the client it wasn't going to just randomly disappear at some point.
You have not included any requirements for the CMS, so the answers will be pretty broad strokes.
I recommend avoiding heavy all-in-one solutions altogether and building from the ground up. Check out the document management system prismic. You can build any kind of front end on it that you want (MVC, SPA, Hybrid, Mobile App, etc..).
Ghost is written in some other templating/frontend setup and not Angular. If you're set on Ghost but you want the rest of your site to be in Angular you probably just want to use Ghost just for blogging. I've also written simple blog into my Angular app using Prismic.io to handle the content. There are some nice prismic angularjs modules.
Check out https://prismic.io/ - It's very new, they just released about a month ago. It seems very interesting, the idea is that it's a content repository where you hook into their API to display the content.
It's completely language agnostic. They have 8 different technologies you are able to use: https://developers.prismic.io/
Anyway, it might be worth looking in to!
Wordpress is a whole other beast. With Wordpress you need work with PHP, MySQL, and then HTML/CSS/JavaScript on the front-end.
With a headless CMS you need HTML/CSS/JavaScript and the ability to fetch data from the CMS API.
An easy headless CMS to get started with is Prismic. Here’s an example using it with Next.js.
As someone already mentioned, Prismic sounds like a great fit for you. I have used in on a production website, giving full control to someone with zero technical background and she's loving it.
Two main points that you will love: * It has a free plan * They have something called content slices, which is essentially your drag and drop feature that you requested
If you have any questions, let me know. Will gladly share more of my experiences!
If you're not in the market for actual development jobs and your clients get what they want from you I say keep doing what you're doing.
That being said, being familiar with a cms would be a solid addition to your toolset.
It's very appealing for clients to have the ability to edit their own content.
Check out https://prismic.io/. It has a very generous free tier and integrates well with javascript
I have worked with Prismic (https://prismic.io) and it’s fine (they have a gem too), you might want to look at it as an option.
While it served its purpose as a quick initial solution, a headless CMS still then requires a lot of maintenance work from the dev, to actually render the content to the right structure/layout etc. If it’s likely the marketing team will want to be adding sections, restructuring and experimenting with design/layout (rather than simply changing text on the page) then be ready to get a lot of “we need this other change before next week!”
So depending on the needs & in such short time scales, you might consider a ready-to-go WYSIWYG solution completely outside the Rails app, eg Wordpress, which gives them more power and control over content and structure and potentially limits your input to simply the theme ...
You can create your own, but if you only need simple entities with images and texts I recommend to use an existing CMS. For example I used prismic for some project and it's pretty cool. You can define multiple entity with custom attributes and several attribute type. In the free plan you only get one user to edit the content but I think that's enough usually.
What makes you think those instructions are for React? Looks generic to me. You could probably use webpack to bundle it.
It looks like there are docs for their api here without needing a library: https://prismic.io/docs/rest-api/basics/introduction-to-the-content-query-api
I use primic for my next.js application and iam very happy with how things work. They also have examples for rails:
https://prismic.io/blog/start-up-your-website-with-manageable-content-astutely
This is a headless cms though
Prismic.io is easy. And to edit content. They have free accounts for a few admins, and their accoutns are easy to transfer ownership to someone else. But they aren't Observable focused api, but they do have good JS docs.
Many angular folks say Firebase is the easiest, though i've never integrated with them.
Contentful user here.
I recently evaluated Strapi as an alternative to Contentful in our stack. It is extremely extensible, but unfortunately it was unsuitable for a few reasons:
I also evaluated Prismic, which is a viable alternative except for one thing. They have no write API ( https://prismic.io/docs/rest-api/basics/does-prismic-have-a-write-api )
In the end, we are staying with Contentful. Although expensive, it does everything we need it to out of the box.
I think you are missing my point, WordPress isn't important, in fact you can swap it with anything you want , maybe you like contenful, maybe you like prismic, the CMS isn't important.
The point is to have a blazing fast static website, right now there is a big trend of web performance with static site generators etc.
There is a lot of benefits including Speed , Security and SEO, it has also some drawbacks but mostly of functionality so nothing to worry about in a blog.
Basically a standard WordPress website will always be Worse on Speed Security and SEO (if they have same content etc) that its static counterpart.
I found links in your comment that were not hyperlinked:
I did the honors for you.
^delete ^| ^information ^| ^<3
Hey! This is great. Have you considered using the gatsby-image package for lazy loading image assets? I think it might improve the UI a bit more.
You should try playing around with Prismic.io , the slices feature is quite cool. I'm not a huge fan of the UX in contentful - it's quite clunky
If you're looking for a service, and need a good UX for content editors then check out Prismic: https://prismic.io/
They have a feature (slices) that let you define the editability of components, e.g. you could lock a heading of a menu component and define the images and text as swappable, this way you don't have to lock down everything, or give editors too much power to mess things up. It's quite clever combined with their overall great UX.
It's more like a integrated CMS than an API, despite GraphQL. Thats the downside, it's best for web only.
Ok cool, thanks for the info.
Yeah our first impression was sticking with Magento 1.9 as the backend and using VSF as the front-end as well. I spoke to the guys at Divante a few months ago about this and they seemed fine with it. We have reached out to some of the core partners of VSF to get quotes from them as well. Are you cool with using OpenMage-LTS for patches etc moving forward?
​
One of the concerns for me with staying on M1 is that potential nagging feeling of "gonna need to upgrade the website at some stage." I feel like sticking on M1 is just pushing the upgrade down the curb. Your thoughts on this?
Currently, I'm more inclined to do a vanilla install of M2, setup extensions, customisations, migrate data etc and then use VSF for the front-end. This is mainly from a security and peace of mind aspect.
But truth be told, I'm too and frooing, honestly, at times I feel like this decision is almost a carbon copy of making our platform choice in 2011 (when we build the original M1 site.) I've looked at BigCommerce, Moltin, Reaction Commerce. So many, there is no "best answer" so you have to just make your choice and take the plunge I suppose.
I've seen Prismic.io, is it any better than using Wordpress as the CMS? https://github.com/develodesign/vsf-wp
>I’ve checked out there Github/Roadmap, it still seems to immature, like, issues with basic things.
We've decided to move forward with VSF backed by Magento 1.9. This allows us to focus our time and energy on 'revenue' generating areas while maintaining our heavy investment in the backend. I only found out about Deity near the end of my research. We had a few meetings with the Divante team and they were professional and knowledgeable. We're not using them to build it, we're building it ourselves.
The biggest "gap" I'd say we've found so far is Wishlists not synching. We're looking at possibly using Prismic.io for the CMS aspect, though it has a few gaps also - we do a lot of scheduling of campaigns and currently use Amasty Banners for this. We *may* look at using an open source headless CMS instead or potentially running a json / graphql response from Amasty Banners.
Another consideration is bulk 301 redirects. We run nginx everywhere, so we've decided that at least in the short term, we will probably write a small script that will dump out Magento's url rewrites into an nginx "map" file like this: https://stackoverflow.com/a/40576333
The final main issue we had was that the documentation for setting up for Magento 1.9 isn't very clear and the example configs use a lot of Magento 2 urls, so we had to scour through the mage1.9 controllers to find the correct urls and then had to deal with CORS issues. We're also using the Mage1.9 checkout, not the VSF checkout.
Depending on the scope of the site I like Netlify CMS for smaller stuff and Prismic for larger sites.
Both use GraphQL though. I don’t know if that’s a deal breaker or not. I know a lot of devs that don’t like reaching for newer tech just because it’s shiny and new. That said I like GraphQL because it’s more straightforward than other API standards.
I've looked recently. For example, I'm using Nuxt for my frontend, which they support, but look at this monster page of setup and tweaks you have to do to get it working. Also I was worrisome to use it after I saw this config change that is necessary:
js
head: {
script: [
{ innerHTML: '{ window.prismic = { endpoint: "' + PrismicConfig.apiEndpoint + '"} }' },
{ src: '//static.cdn.prismic.io/prismic.min.js' }
],
__dangerouslyDisableSanitizers: ['script'],
},
I just want endpoints/data/cms/permissions, not a massive dependency I have to include in my bundles.
>r/javascript612k Members
>
>All about the JavaScript programming language!
>
>Joined
gatsby is a static site generator NOT a cms.
People need to stop confusing the two, they are completely different.
prismic.io is a cms.
https://prismic.io/docs/reactjs/getting-started/prismic-nextjs
The headless CMS is basically just an API you call to. So you can make a static site with JavaScript to pull in the data or use something like Gatsby to generate static pages for you: https://prismic.io/docs/reactjs/getting-started/prismic-gatsby
Thought I'd throw this out there but if you are only teaching front-end why don't you use the free tier of a hosted service like Contentful or Prismic. This would make it to where you don't have to worry about managing the backend at all and can just focus on teaching how to consume the api on the frontend.
The free versions have limits on number of users but I'd wager if you reached out to them saying it's for educational purposes, they would be willing to work something out.
Just a thought. I'm not sure what your lesson plan looks like but it could be better than hosting / managing it yourself
Using wordpress as the backend might not be the best solution. Its very heavy on using both backend and frontend. You can technically not use the front, writing some php to do so, but then thats changing the core wp. Which then leads to not being able to update without breaking.
If you're just looking for a headless backend, you could look at something like https://prismic.io/. Where you make all the post types and such and they gove you an api to use. Then you could use any front end framework or library your heart desires.
Well it depends how much you're willing to spend on platforms like contentful.com, sanity.io or prismic.io.
​
To give you an ida I've build something with the following stack:
Front-End:
Back-End:
​
You can create whatever whatever endpoints you need with ACF and expose them to the public api.
All you have to do is create your services call with the `baseURL` and add your endpoint.
Example: `fetch('http//site.com/wp-json/wp/v2/endpoint')`
I like to use Prismic as their "Slices" feature works really well with Gatsby. Take this blogpost as an example: The info box, the code boxes with titles, labels, images - they are all slices in Prismic. You can have a look at my github to see the source.
NetlifyCMS just generates markdown files, so technically no on that. Prismic has a generous free tier (https://prismic.io/pricing), and if you really want to save API calls you can just retrieve blog posts during the nuxtServerInit lifecycle stage and store them in the Vuex store if you want.
Under "the best web examples", I do like Stripe and Monzo. However, https://prismic.io/ feels like it's giving me a giant F-U when I visit and see that unreadable, booger-green landing page.
https://www.magicleap.com/ is very cool but I don't see how it fits in an article about "simple UI & UX principles". And hell, I've scrolled through it 3 times and still don't know what it is.
Correct but still when using a headless CMS if they want to add a picture or another section to the homepage for example they need to contact me, I then need to update the structure and add it to the headless CMS. While in WordPress you can just add another row (via plugins), drag and drop it and done. I am currently using prismic.io but to be honest it is quite cumbersome to do stuff.
Yeah, I was thinking about it all wrong. I was used to the idea of a "blog" meaning, "you host it."
I found https://prismic.io/ and I'm going to experiment using it, or just building my own version for the practice. Decoupling, woo!
Both Wordpress and Drupal are well aged, but that's a matter of pros/cons. I recommend using something like Prismic to set up your content editors with a solid UI while giving you a decent API to build against.
Having your content management and API from the get-go is invaluable when developing a site. Doing this and building your front end with the MEAN stack gives you the fastest, most flexible formula.
To continue, the worst projects I've worked on as a front-end developer were those where the API was being built by others at the same time. These things have ways of evolving beyond any expectation - cutting out the dynamic of the back-end makes the whole process smooth as butter.
The only service I know of that comes quite close to those first 4 points is https://prismic.io
Sadly, it's not a CMS; it's actually more like a content repository.
I believe CMSs and the wysiwyg lies should burn in hell :)
Thanks for the recommendations, I suppose I should've defined my use case though. I am looking for something to write a blog on that I can serve to my own front end, and I would prefer that something to be free. It seems like prismic is exactly what I want.