I don't think there is one go to CMS that will fit all purposes, if you know WP and your client is happy with it, why not use it?
My initial questions would be, what are you familiar with and what are the client's requirements and narrow it down from there?
If you are familiar with WP but don't want to create a theme, maybe you want to look into a headless CMS?
My personal preference goes to Strapi with NextJS as I am strongest in JS/TS
Unfortunately, it looks that the founders gave up the project...
You should definitely give a look at https://strapi.io. Its admin panel is not a visual programming interface, but it saves a lot of development time and let you the ability to code your own logic.
Would using a headless CMS like Contentful/GraphCMS (SaaS0 or Strapi (self-hosted) be an option? It allows you as a developer to define the forms and have complete control over how the website is generated. It keeps things very simple and foolproof for the end-user.
Strapi could be your friend here:
- Rich Text Editor (https://medium.com/strapi/v3-alpha-12-graphql-rich-text-editor-redesigned-dashboard-25023dc4f090)
- API First
- Open Source (built with Node.js) / Self hosted
Disclaimer: I am one of its creators.
Use strapi. It's french like radiofrance.fr . I love strapi for simple jobs. There is a Tut for svelte & strapi on their website. Look here: https://strapi.io/
The official strapi blog has a tutorial for Strapi + SvelteKit + Tailwindcss
https://strapi.io/blog/how-to-create-a-blog-with-svelte-kit-strapi
It has some mistakes, e.g. it's npx create-strapi-app instead of create-strapi-project , but I found it a good enough starting place when I tried playing with svelte with headless cms for the first time.
You can try strapi. It is a headless CMS. It is written in NodeJS. You can use any database you want.You can use GraphQL or rest. It has user roles and auth flow. You can manage content easily with out of the box web ui. You can extend functionality easily as it is written in NodeJS.
I don't like storing data in firebase due to being nosql. My data eventually ends up being relational. Managing relational data with nosql databases can become overcomplicated.
I’ve been a big proponent of the “batteries included” stacks for rapid development. Laravel and Rails definitely hit the mark. The node ecosystem needs more fully integrated stacks. And less at the same time! There are too many ways to skin the cat. I totally understand where you’re coming from.
All of the other comments here point to good options like Sails and whatnot. +1.
If you want something Rails-like, but even less code, try Strapi https://strapi.io . I use it when I’ve got to get a full data driven API built in hours. Literally a few hours. I can’t vouch for it in high volume production environments but it’s damn good for rapid development and proof-of-concept work.
Excellent feedback, comparing WordPress to Node.js is not very relevant.
Tharinduptk, it would be interesting to know more precisely what features you are exactly looking for: authentication, admin panel, database system (MongoDB, Postgres, MySQL...), performances, API first or server side views, etc.
Like mexican_restaurant said, you are probably going to have a lack of flexibility and performances using WordPress. Node.js is a great alternative, especially if you chose an easy-to-use solution, like Keystone.
I would also notice Strapi (disclaimer: I am one of its creators): it provides an customisable admin panel and a plugin system. You will probably find some similarities with what you are used, and could consider it as the WordPress of the APIs, for Node.js. Let me know if you have any question about it.
Check out Strapi + Postgres - https://strapi.io
Strapi gives you email authentication, user roles, an admin dashboard, and REST and GraphQL out of the box. And then if you need to, you can override the defaults and customize the endpoints logic as you want.
This is what use on all my projects now : I use Strapi + Postgres with docker-compose and deploy the whole thing on a VPS.
Funnerdfactofthedaythatnooneherecaresabout #1:
Port number 1337 (The number used in this post's title) is the default port used by the Strapi CMS:
https://strapi.io/documentation/developer-docs/latest/setup-deployment-guides/configurations.html#server
Not really answering your question, but you could maybe take a look at strapi instead of Wordpress as a headless cms. The Wordpress rest api is a bit slow in my experience, especially when you have a large website. Strapi could be a solution, although it requires some more setup then Wordpress.
Sure happy to help. Strapi is just a nodejs server. It handles requests and for some endpoints gives you a ui. You need to connect strapi to a database to store data. MySQL and PostgreSQL databases need to be run on a separate server. Heroku for example, gives you a PostgreSQL server by an addon.
After these setup, you create content types(these are tables in your db) from the strapi's ui. If you follow this guide you can get restaurants by making a get request to http://localhost:1337/restaurants
Sorry, didn't lookup Strapi...in that case, it looks like digitalocean have a 1-click droplet deployment option, which leads me to recommend you just try and use Digitial Ocean for all your backend stuff, and DO is pretty user friendly with pricing you can understand vs AWS, GCloud etc.
You would spin up a Strapi droplet on DigitalOcean, I'm sure the smallest $5 VM will be big enough and separately host your React app on their app platform (free tier). Your domain on Namecheap you will point to DigitalOcean's Name servers i.e ns1.digitalocean.com and you can manage the DNS records on Digital Oceans networking page. So Namecheap is just your domain renewal every year, that's it.
The other option that is big for new apps etc. is Heroku...but I don't think it is as easy to use, but they do have a free tier...
I'd be interested to hear what other people recommend for you.
Hi, you can find the explanations here: https://strapi.io/documentation/developer-docs/latest/getting-started/troubleshooting.html#why-can-t-i-create-or-update-content-types-in-production-staging
Hola mira lo primero es segmentar la aplicación vas a tener dos lados se podría decir uno para el que busca una persona y otro para el que publica su servicio o profesión, el lenguaje backend, yo usaria Node js y alli implementaria strapi porque fácilmente puedes crear una api y hacer deploy en Google cloud o azure, etc. Para las transacciones podrías usar stripe y está te permitirá hacer pagos, yo del lado Frontend usaria react js por que sería muy sencillo desarrollar la interfaz y en dado caso que ocupen una app fácilmente poder hacerlo en react native.
Good catch! But also... their docs from v1 to v3 (two major releases) are equally daunting... and the first sentence is literally:
>"To be honest with all of you, the migration process won't be easy."
😬
Strapi allows you to create custom content types. Location Coordinates or Geo Data, can easily be create and incorporating into your application. Have you done the Getting Started tutorial? https://strapi.io/documentation/3.0.0-beta.x/getting-started/quick-start-tutorial.html - you will get a little tour of the various features available and how to use them.
Feel free to post or DM additional questions.
​
Ps. I am the Developer Advocate at Strapi
I came from WordPress (after about ten years) and joined the Strapi team as their Developer Advocate. Strapi is a Nodejs MIT licensed headless CMS. We just launched Beta and continue to move fast and add features.
You can checkout strapi at https://strapi.io/. We have many users using Vue, React and Angular. The integration with your front-end is not going to be an issue.
Strapi.io is a free, roll your own, option and has reached Beta status, but know that GraphQL support comes by way of a plugin, and you cannot use the GraphQL endpoint for authentication.
Sanity.io is really solid, but you are limited to three users on the free plan, which if you're just building a small internal app, might be fine. However, their GraphQL implementation is still in beta status.
​
I personally would just look at using or building an Apollo Server + Prisma boilerplate and customize it to your projects use case.
Deploying node services is quick, easy, and cheap these days. For example, spinning up a $5 pre-configured droplet on Digital Ocean takes 2 minutes, and I can't imagine it would take you more than half a day to set up your project fully the first time (including reading docs to find out how to SSH into it, setting up your DNS etc).
After you've got Strapi deployed go in the admin panel and create your post types and whatnot. Bam now you have a full fledged API.
Spin up another pre-configured node droplet, install your front-end framework of choice on it (eg React) and go at it.
There's very little back-end knowledge required to do any of this, all these modern services are very good at hand-holding and usually have excellent documentation. All you really need to do is know how to use a front-end framework of your choice to consume a REST/GraphQL API - the remainder is basically trivial.
Re: #3 - https://strapi.io/documentation/3.x.x/guides/i18n.html
Re: #4 - This is too complicated https://i.imgur.com/UpGAWTw.png ? After you set it post types this is what your customer would see when trying to create a post.
Try https://strapi.io/? I've built a large volunteer management site with a Keystone administration side. Don't use it for a gallery. Upload and image handling is terrible. Keystone is going through a total rewrite now with version 5.
​
Contentful is pretty good if you don't want to handle the server side stuff, but I think you're limited to a particular number of records.
https://strapi.io/documentation/configurations/configurations.html#database
you can use mysql with strapi:
{ "defaultConnection": "default", "connections": { "default": { "connector": "strapi-hook-mongoose", "settings": { ... }, "options": { "authenticationDatabase": "", "ssl": true, "minimize": true } }, ... "mysql": { "connector": "strapi-hook-bookshelf", "settings": { "client": "mysql", "host": "localhost", "port": 5432, "username": "strapi", "password": "root", "database": "" }, "options": {} } } }
Keep an eye on Strapi. It's media library features are pretty basic at the moment, but my guess is that will change fairly soon. Probably going to be your best bet though from what I've found so far.
That's an unfortunate story but I'm curious if the proper scope was set up beforehand. Seeing this post from their blog makes me think it wasn't since they themselves don't yet have a migration guide posted (as of 1/4/22). https://strapi.io/blog/announcing-strapi-v4
I'd reach out to them and ask for a preliminary copy or anything else related to it and develop a strategy based on that.
(I'm making an assumption this wasn't done, dismiss my comment if it was.)
You're the guy who is trying to use Strapi with WordPress, right?
From Strapi's site:
> Webhooks use HTTP POST requests. When an event is triggered, a first app sends an HTTP POST payload to the URL of a second app configured in the webhook.
https://strapi.io/blog/webhooks
WordPress is not setup to ingest data from Strapi. You will need to build a bridge, unless there is some plugin that I don't know about. Where you build the bridge is some what flexible, and you can do it in any language that handles HTTP. I would personally use JS/typescript because that is what I'm most comfortable with. You just need to know how to work with HTTP requests and APIs.
So, you setup a webhook in strapi. When the trigger action happens, it sends the data to the webhook URL. It sends the data in JSON. You need to be able to parse that data, reassign it to the WP data structure and then send it as a POST request to WP.
You could do this with a custom WP endpoint in the REST API if you want to work in PHP. Or if you wanted to work in JavaScript you could build a 3rd app that sits in the middle that accepts the HTTP post from Strapi, formats the data to match the WordPress data structure, and then sends it to WP's REST API. This could an Express app or even a serverless function.
This is a bunch of work just to use WP.
You can create a login mutation, passing in username and password and returning jwt token, and then attach that token to consequent graphql calls, in line with https://strapi.io/blog/a-beginners-guide-to-authentication-and-authorization-in-strapi
Would ensure I put a lot of thinking into the operational and technical aspects of the setup.
Operational considerations: Everything from logistics (full value chain) to end delivery at the customer needs to be thought through. Many people just jump straight into the project of setting up a webshop without putting too much thought into the processes of inventory, fulfillment, etc. This eventually end in a bit of a mess with processes that leads to dissatisfied customers, inventory struggles and in general unscaleable set ups
Technical considerations: Your tech stack is you foundational fundament behind your business, but too many businesses nowadays start off with a simple Squarespace, Shopify or Woocommerce shop without realizing that these platforms usually have a scaling limit. Consider using some solutions that give you scaling flexibility on your tech stack e.g. open-source solutions like Medusa, Strapi, etc. that can be easily modified over time
Hello. I also made this transition recently and it is a very effective way to have dynamic blocks with the strapi is to apply a model with dynamic zones, as well as the tutorial in the post on the strapi website Pages on the fly with dynamic zones
Have you seen this: https://strapi.io/blog/how-to-publish-your-blog-posts-from-strapi-to-multiple-platforms
You'll need a script / app between strapi -> wordpress to take the strapi post and push it to wordpress through the rest api or graphql. The above tutorial uses an AWS lambda function but you could create a node app or use a php script. I would personally serverless javascript.
As far as dynamic routes, WP has it's own routing setup that you can override under the hood. Routes are already dynamic but there is a slug field that it looks for first. Dynamic routing is a tool in frontend frameworks that allows you to setup queries based on the URL. You can do the same thing is WP using something like this:
CRM or CMS? Based on your explanation, I feel like you mean CMS, in which case you should check out strapi
bonus link to strapi w/ nuxt stuff
It's called headless CMS. When disconnected from the front end, unlike a WordPress site or something similar, you are able to use whatever frontend technology you want. For example, you can run a react frontend and still get the benefits of a content management platform with something like Strapi. There are many others like it, but it's a great alternative to managing all your own content.
I would say Strapi for CMS. They have a really strong OS solution and have just released Strapi 4.0 which is really sweet; https://strapi.io/v4
Can see Medusa already have a pre-built integration. Nice!
You can use email authentication with Jwt provided by strapi out of the box or choose from many auth providers for instance if you want to use Auth0 I found this article helpful https://strapi.io/blog/auth0-provider-and-strapi-tutorial
It sounds like your marketing team needs to take advantage a CMS feature like Strapi's dynamic zones.
You essentially set up blocks your editors can use in the CMS that have corresponding components in React / Next. Then you create a flexible content component that checks to see if they're present and renders them out if they are. You can set it up so they have the ability to make landing pages like this as well, which sounds like what you're after.
I'm sure this is possible with another CMS like Contentful or Sanity, but I don't have experience setting those up this way. Good luck in your research.
On mobile, so forgive the poor formatting.
So Strapi has core services and controllers. https://strapi.io/documentation/developer-docs/latest/development/backend-customization.html#controllers
These are used automatically when a new collection (Books, in your case) is created. You can override these services and controllers (and most anything else in Strapi) if your needs are more specific than what these core services offer. You override settings and functions by means of “extensions” and overrides in Strapi v3.
The folder you talked about for books has a particular structure to it. Overriding the controllers for books, for example, is in the api/books/controllers.js file
In short. Whenever there is a question about where to go/read for more information on Strapi, the answer will always include their always improving documentation.
Hope this helps.
I have the same problem. try this:
you must run the Strapi development version locally and push changes to git, so the production version pulls changes and restart itself. this is very messy I think compared to a simple CMS like WordPress. but It's OK. if you have the budget you can simply use DigitalOcean's app platform. or something else. But the workflows are the same in anyu platform. you work with Git. but configurations and maintenance are don't exist in something like app platforms.
Use next.js with a headless cms like https://strapi.io and forget about Wordpress.
Unless you already have good knowledge of php or want to learn it.
Strapi is headless out of the box and has good examples with next.js
Take a look at the Gatsby corporate starter. https://strapi.io/starters/strapi-starter-gatsby-corporate
There you have a collection type called Pages and it has a lot of dynamic zones available. Each dynamic zone is actually attached to a react component.
Thank you, both I and the team really appreciate hearing this.
There is certainly a great many people standing behind me, but I do try to (and sometimes fail to) be everywhere at once.
If you want to keep up to date on the v4 stuff, I recommend https://strapi.io/v4
u/eazieLife you're right, the size of the build is way too big.
That being, you're right, the size of the build is way too big.s gonna be drastically reduced in Strapi v4. Also, when going to production, please make sure you start your project in production mode by running "yarn build" (or "npm run strapi build") and then "NODE_ENV=production yarn start" (or "NODE_ENV=production npm start").
Disclaimer: I'm one of the creators of Strapi.
I can’t comment on anything else, yes all those specs are nice to have. Make sure you’re building the strapi panel on a different server, it requires 2 GB mem to build.
> Strapi will not build with 1G of RAM. At the moment, deploying the Strapi Admin interface requires more than 1g of RAM.
I can’t find a better link, but it was well known among the community when I got into strapi a couple years ago.
Hi! I had the same question and as far as I know it is not possible with the community edition. If your project is open source or you’re a student or something you can apply for a free Enterprise licence though: https://strapi.io/free-enterprise-edition Good luck!
Check out Strapi It's a headless CMS, creates API for your database. I once used it with PowerShell a while ago since I couldn't figure out how to query and write to databases with PowerShell. Worked out okay
I’d recommend taking a look at Strapi. It generates pretty clean tables in MySQL, Postgres, and more. It is built on node, and offers a graphql plugin that works great out of the box. https://strapi.io
Headless CMS for self hosting go to strapi. https://strapi.io/
But you should check out bildr. https://www.bildr.com/
They allow export of html/css to self host and if you talk to the team they can help you isolate and host the backend separately as well.
Could also use bildr to integrate with firebase or strapi.
Another option for you would be wappler. https://wappler.io/. Wappler is way more low code and DIY, but gives you extreme ownership of all your stuff.
Hey!
Just wanted to let you know that multi-language support is now available as the internationalization feature was released last week (available in v3.6)
https://strapi.io/blog/announcing-content-internationalization-v3-6
Hi there, it's ok to feel that you don't know a thing, than feel that you get it and back to the unknown again:) this is what I'm coming through in the past 8 years :) when I'm speaking with ppl that way more senior than me I'm hearing the same story:) I switched to frontend engineering from wp development in about a year ago and this tutorial changed my life https://strapi.io/blog/build-a-blog-with-vue-strapi-and-apollo I defenetly suggest you to start from vue because it's much more intuitive than react and vue's documentation is awesome! When you will feel a bit more confident with basic I suggest to add Vuex (vues state menager) to the story and just filter the data from there,and separate the business logic from UI)
Best wishes!
Check strapi.io, you can create any components, stack them one on top of the others in a Dynamic Zone and build your pages on the fly.
You also have starters and templates to get started with some components ready.
Thanks for pointing this out, it's a common gotcha. Strapi briefly mentions it on their docs
Also, for the same reason, you can't use a local SQLite database with Heroku
Try this
Override controller's create function
```
const { parseMultipartData, sanitizeEntity } = require('strapi-utils');
module.exports = {
/**
* Create a record.
*
* u/return {Object}
*/
async create(ctx) {
let entity;
if (ctx.is('multipart')) {
const { data, files } = parseMultipartData(ctx);
if(...your logic){
ctx.throw(400, "This title exists");
}
entity = await strapi.services.restaurant.create(data, { files });
} else {
if(...your logic){
ctx.throw(400, "This title exists");
}
entity = await strapi.services.restaurant.create(ctx.request.body);
}
return sanitizeEntity(entity, { model: strapi.models.restaurant });
},
};
```
What database are you using? Unique is one of the validations frustratingly only supported on MongoDB. https://strapi.io/documentation/developer-docs/latest/development/backend-customization.html#models
Well what do you mean "when account is upgraded"? Is it some built in logic from strapi or something else you added?
Each model has lifecycle hooks you can tap into. So one possibility is tapping into the beforeUpdate or afterUpdate hooks.
The "account upgrade" should trigger an update on the model and this is where you can add additional business logic to change the user role.
Take a look at the example here https://strapi.io/documentation/developer-docs/latest/concepts/models.html#example-10
Where they are hashing a password on the user before it's created in the db
All the strapi UI does is write out things to files. That's why you can't make changes in production and why in dev, it restarts after you make the changes.
When you add a field to a model, it will write new code to a JavaScript file in the directory and then reload the server with the new code.
This means that all the setup and files are easily editable and fully transparent.
https://strapi.io/documentation/developer-docs/latest/concepts/file-structure.html
The user object will have a user model where you can manage it's lifecycle. It will also have a settings file that defines the properties and their type.
Many parts of the roles and creations can be modified with plugin extensions. New ones that add extra functionality or overriding their built in ones to modify or add functionality.
https://strapi.io/documentation/developer-docs/latest/concepts/customization.html#plugin-extensions
Between routes, policies, controllers, models, services, extensions, middlewares & plugins, you can pretty much customize any part you want.
If anything, the only tricky part to actually customize is the Admin UI
Hello again, been working with Strapi since a few days and just came across that guide, I think it can be helpful for your project.
Sounds to me that you want a headless CMS solution. I have used https://strapi.io/ and like it but go take a look at what's available. If you use next js you should check out https://next-auth.js.org/ so you don't reinvent the wheel.
I really love STRAPI.
Fits well with Next.js and you get rest api endpoints out of the box. Even has JWT auth set up for you so might be a good fit. Open source and I set it up on heroku with cloudinary for images.
You can use my blog backend template if you want to try it out quickly:
Hello! Sorry for late response.
But on my work, we have a NGIX local server that runs our intranet and some others services...
Never done anything using ngix or something like that....
So I'll need to correct ppl to do this step? https://strapi.io/documentation/developer-docs/latest/deployment/nginx-proxy.html#nginx-upstream
Trying to hit all 6 points...I'm thinking maybe strapi.io for backend admin panel for managing products. Front end in some minimal HTML template you can probably purchase on the cheap.
Then maybe something like snipcart or shopify lite for checkout process
But I don't understand the "no payments" part. What is a checkout process if you're not paying?
Is https://strapi.io along the lines of what you're looking for? Seems to align with your stack. It will give you a nice, flexible web UI out of the box, as well as a nice REST api for you to access any custom UI you need beyond that.
You're getting a lot of good advice here. I'd like to add that often it's nice to just use a headless CMS to do this for you.
I'm working with strapi at the moment but you can read about a lot of different types of headless CMS over at jamstack
Strapi let's you choose your database during setup but it does force you to build all of your tables through their own framework.
Without knowing too much about your requirements, I could recommend wordpress (don't flame me people) which if you know enough can be hacked to do a lot of different things. You could use Strapi (https://strapi.io/) to build your data models and API but then you'd need to throw a UI site together and host it.
I have no experience with Django but python is pretty easy to learn.
Using some kind of SaaS provider will obviously mean less infrastructure setup and management for you, which could lead to much faster development.
Google just came out with a new “Beta” product last month called Google Tables. You can literally create a database using your spreadsheets with this...but it’s only free up to 1000 rows max per table. 10,000 rows max for each table is $10 month. I’ve been using it for several different projects and I love it so far: https://tables.area120.google.com/about#/
Of course, there are dozens, if not hundreds, of open source databases you can employ...but they all require at least some basic technical knowledge to design and setup...and some require expert knowledge.
That being said, I starting using an open source tool called Strapi for one of my projects, and it does provide a GUI for essentially creating a database (a few different kinds of databases actually) that you could technically search using it’s built in tools...but it’s main purpose is to create an easy GUI backend for your data so you can expose the data via an API...which might be nice if you want to ever use that data in a front end or customer facing service one day. But Strapi is really easy to setup...and if you use a no-sql dB, you can theoretically sync your entire “site” across multiple computers with Dropbox or Google Drive. Check it out: https://strapi.io/
And here’s a decent tutorial: https://youtu.be/6FnwAbd2SDY
I figured out my problem. It had to do with the build and project versions not being the same. Basically follow these steps: https://strapi.io/documentation/3.0.0-beta.x/guides/update-version.html#upgrading-your-dependencies
I found links in your comment that were not hyperlinked:
I did the honors for you.
^delete ^| ^information ^| ^<3
You can find a list of all the published upload providers in npm
Sadly there is no provider for next.js, but in the strapi docs (haven't read it though) they shows you how to implement (or at least where) your custom upload provider
EDIT:
you may need to add some api endpoints to your next.js back-end so you can send the images there
Been using straps recently. It’s really great but it’s also not very mature and missing some critical features. One thing it doesn’t have yet is publish status/draft system, which you typically need in a blog. They have a guide here in their beta though which could be given a try.
no mate im using strapi.io with a mongodb as backend. The first stack was on wordpress but i droped it to replace with nuxtjs & strapi. Strapi has graphql build in and can be utilizied but since i worked on this project by myself i started with restapi(more familiar) and that on later development i might change to graphql. Sorry for my english, is not my main language
Are you looking to make an API for your app? Maybe it would be good to look into a CMS.
I'm currently using Strapi for all content in my app. It seems to suffer none of the problems I've had with previous CMS. I highly recommend it.
I used strapi for a school project of mine, it's build on node.js and can be deployed on a multitude of platforms. Heads up some aspects of the documentation can be a bit stale and needs some googling to get it to work but overall it was a good experience.
Aka you want to know how to keep the db credentials out of your git rep right?
If so there are a few popular ways to do it but the way strapi recently supports is using a .env file with your creds listed in it and you list this file in your .gitignore file so its not added to your source control. Then in your config files you can reference what is in your .env file. This page explains how to do that:
https://strapi.io/documentation/v3.x/concepts/configurations.html#formats
sorry if there is anything weird above, I did this on my phone...
I've never used Contentful, so I can't comment on it. But both it and Strapi are considered a "headless CMS" so functionally they accomplish the same goal. There's obviously a number of difference between the two but a big one is that Contentful is provided only as a service whereas Strapi you can host yourself (pros and cons to doing it either way). Both would provide a backend UI for someone to login and create new content/pages (without having to edit code).
I've only used Strapi before. Their docs are pretty simple and cover hosting it in a number of different environments (AWS, DigitalOcean, Azure, Google, etc.). When I did basically what you're trying to do, I just followed their guide here.
The only way I could see this working without a backend is if the site was only ever access from a single computer and you never had to store sensitive data. Then you maybe could store the data in localStorage. But honestly, that's not what localStorage is for. You really need a backend for this kind of stuff.
Yep, you can easily write your own upload provider! Here's their own local one
But I think you're talking about hosting the frontend on your own servers as well, right? In that case, just set up a static webserver and use it to serve your static built website!
Yes, you can use your own server to host your static files like images https://strapi.io/documentation/3.0.0-beta.x/plugins/upload.html
Not perfect yet (some bugs) but already ready to use is https://strapi.io/. I used it for my private resume website using different "Post-Types" and dynamic components which are easy to configure. It's a lightweight node.js cms and for common use you don't event have to touch the code. Here's a nice tutorial for using it with Gatsby: https://strapi.io/blog/building-a-static-website-using-gatsby-and-strapi
Node is a Javascript runtime, you can run Javascript code with Node.js without opening a browser.
Since you already know Javascript, the next step is learn how to use Strapi (I know nothing about Strapi so I can't help you), and then learn how to create web request with Node.js.
As for making web request in Node.js, you can look at the list of alternative libraries to request, pick one and learn.
Request is a popular Node.js module to make web request, but the package is "depreciated" (put into maintenance mode), so I suggest you pick an alternative.
r u able to do this? You’ve to copy that folder and put into the extension folder. That’s how strapi works. Please check how to do the customisation: https://strapi.io/documentation/v3.x/concepts/customization.html. If u need any help, I can help u.
Well, to elaborate: Ideally I'd use a product that bundles a (headless) CMS with React, such that from the get-to I'd have a nice looking React site backed by the CMS. For example, I've come across strapi.io, which looks like a nice headless CMS, but I'd need to start the React bit from scratch, meaning setting up everything from user sign-up, login, user authentication, page layout, menus, and so forth myself. I know these things comes a modules etc for React, so I wouldn't need to implement all of them, but I'd need to get them up and running in my React app and get them to look nice.
In comparison, traditional CMS'es such as Wordpress typically provide you with a usable backend as well as frontend, and one typically only need to adjust to taste. I'm considering going for something like Django CMS, but though I'd first look into setups with React based frontend.
a headless cms can actually be super easy to use, ive been using strapi and its super easy. you can just define data models with the ui, for example Articles, and define what fields it has, for example Title, Subtitle, Body, Image. from there it's a simple api call from the frontend to get an array of the objects and you can dynamically render the page based on that. you can just give clients the login to the strapi app where they can interact with the ui to manage what articles they have.
is your system up to date? also use docker if you're not already, it should be much easier - https://strapi.io/documentation/3.0.0-beta.x/installation/docker.html
I don't think it handles the migration, however it modifies your scheme automatically, but these are two different things. This means, if you add a new column for example it should be OK, but if you modify a column which contains data, the scheme modification can cause problematic side effects. For example if you modify the type of a column from string to number. It's a better approach to add a new column, and copy the values from the old one to the new, and convert it if necessary.
Only you can handle these type of modifications, and you should, unless you may end with a corrupt database. You can do that by writing a DB script, or you can use the bootstrap function to write migration codes: https://strapi.io/documentation/3.0.0-beta.x/concepts/configurations.html#bootstrap
Hello! You can update the default WYSIWYG in Strapi.
Here is a guide if you want - https://strapi.io/documentation/3.0.0-beta.x/guides/registering-a-field-in-admin.html#setup
Maybe check out Strapi or KeystoneJS. They're both self hosted node based headless CMSs. Even if you don't use them, you might be able to get some ideas.
The other thing to point out is that the various SaaS headless CMSs do tend to have a reasonable free tier so you might at least be able to start that way.
I just recently wrote a post on possible headless CMSs (specifically for Gatsby but they're not tied to Gatsby in any way) It might give you a few more options. Hope it helps!
I'm gonna get downvoted to oblivion, but I suggest to use WordPress instead, along with the SEO Framework plugin for WordPress. You will be able to build it really fast, and if you don't want to rely on obscures theme frameworks, you can make your custom theme.
The JS alternatives are:
>https://vuejs.org/v2/cookbook/serverless-blog.html
I strongly suggest to stick with WordPress
Hey man, check out strapi.io, It's a great back-end solution. It might be overkill for what you need, but I recently found it and I've fallen in love. Prior to strapi.io I was writing all my back-end rest api's by hand, which is great and still could be needed in some situations, but this hostable solution is just what I needed. I can't stand the idea of hosting my content on another companies server. Anyway, sorry for the slightly off-topic rant, but let me know what you think if you give it a spin!
I used Strapi for a project recently and I would recommend it for any kind of content management. It’s an open-source nodejs headless cms. It comes with a nice admin panel and gives you a pretty great API out of the box and you can add graphql using their official plugin.
For custom APIs I think you can’t go wrong with Express and MongoDB.
The more I do django I also don't like it for rest. There are better high level solutions like https://strapi.io/ .
And if you need high performance you can use asp .net core ore spring both are a lot faster than django. Which means you'll save a lot of money later after deployment...
Yes they do, there is a menu, "Roles & permissions", on the admin there you can create roles and assign permissions to them. The permissions are auto-generated for every API endpoint and you can select which endpoint should be accessible for a user. It's perfect!
And it's also have a policy module which is basically a filter (I'm coming from Java, sorry :] ). With these policies I could create some custom logic and assign to a route: https://strapi.io/documentation/3.0.0-beta.x/concepts/policies.html#usage
Haven't used professional but was scoped for a potential part of one (don't actually understand why we didn't use it). Seemed pretty good in the small amount of time I had to play with it.
Or even like this, not sure if this will work for me:
I think you are right, thank you for your suggestion. I managed to follow the Strapi tutorial but I'm still unable to properly query via slug.
Gonna investigate more...
I've used the following, hope this helps:
Contentful - I run my personal site/blog from this. Have had no problems and was pretty trivial to set up with Gatsby but have heard about people using this for enterprise projects having to spend a lot of money.
Prismic - We chose this for an enterprise project at my old company and it worked well until we started to scale, we wanted one more user and went from paying $0 to $7 per month. We then wanted a "staging" account so content editors could play around with content types and new features in isolation but to do an import we then had to pay $50 (I think?) per month for both accounts. The support was not good either, I could tell they were trying but it was pretty apparent they were developers who had little experience dealing with customers.
Strapi - This is "host it yourself" and I've had a lot of fun playing around with it. If you host it on Heroku, you can set up a separate app to ping it every 5 mins so the server doesn't sleep and it works really well for 1 site.
>I want a "dashboard" / "panel" where I can create a post of the blog from it
You want a Content Management System (CMS). There are a lot of different ways you can go about this, for example:
You should also consider whether you need to have a back-end at all. Static site generators like Gatsby and NextJS along with a headless CMS are very popular and sites like Github, Contentful and Netlify have integrations which make these easy to use. There are plenty of blog templates and guides to get you started with that kind of stack.
This video should give you an introduction https://www.youtube.com/watch?v=fY3mBJSDA44