{"id":2801,"date":"2022-04-11T13:36:52","date_gmt":"2022-04-11T11:36:52","guid":{"rendered":"https:\/\/www.plus.hr\/blog\/?p=2801"},"modified":"2026-11-03T16:30:26","modified_gmt":"2026-11-03T15:30:26","slug":"next-js","status":"publish","type":"post","link":"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/","title":{"rendered":"Next.js"},"content":{"rendered":"<h2>Next.js &#8211; zamjena za WordPress?<\/h2>\n<p>Ve\u0107 neko vrijeme u potrazi sam za novim alatom\/frameworkom koji bi mi pomogao u potpunosti zamjeniti WordPress koji trenutno pokre\u0107e vi\u0161e od 40 % svih web stranica. U u\u017eem popisu su bili\u00a0Umbraco Remix, <strong>Next.js<\/strong>.<br \/>\nPopis stvari koje ocijenjujem prilikom odabira:<\/p>\n<ul>\n<li>Programski jezik koji znam<\/li>\n<li>Server side rendering<\/li>\n<li>Modularnost<\/li>\n<li>SEO friendly<\/li>\n<li>Bogat eko sistem<\/li>\n<li>Jednostavnost <a href=\"https:\/\/plus.hr\/web-hosting\/\">hostinga<\/a> aplikacije<\/li>\n<\/ul>\n<p>Sve do zadnje to\u010dke je Next.js zadovoljio, bez ikakvih problema.<br \/>\nNa\u0161ao sam se s zahtjevnom zada\u0107om upogoniti Next.js na svom serveru gdje imam cPanel hosting.<\/p>\n<p>Cpanel ima podr\u0161ku za Node.js aplikacije, ali jo\u0161 se nikad nisam susreo da je netko napravio deploy Next.js-a na cPanel. Ono \u0161to je va\u017eno za pripaziti je to da mogu pokrenuti &#8220;BUILD&#8221; aplikacije, ubacivati enviroment varijable i mogu\u0107nost pokrenutanja custom javascript datoteke.<\/p>\n<p>Hajmo probati.<\/p>\n<figure id=\"attachment_2812\" aria-describedby=\"caption-attachment-2812\" style=\"width: 708px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2812\" src=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2022\/04\/cna-1.png\" alt=\"Create-next-app\" width=\"708\" height=\"818\" \/><figcaption id=\"caption-attachment-2812\" class=\"wp-caption-text\">Create-next-app<\/figcaption><\/figure>\n<p>Sad kad imam spremnu aplikaciju pokre\u0107emo &#8220;<strong>npm run dev<\/strong>&#8221; i provjeravam da li sve uredno radi.<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_2814\" aria-describedby=\"caption-attachment-2814\" style=\"width: 728px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-standard wp-image-2814\" src=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2022\/04\/localhost-1-728x421.png\" alt=\"Next aplikacija na localhost-u\" width=\"728\" height=\"421\" \/><figcaption id=\"caption-attachment-2814\" class=\"wp-caption-text\">Next aplikacija na localhost-u<\/figcaption><\/figure>\n<p>Next.js aplikacija je spremna. Vrijeme je za odlu\u010diti kako napraviti deploy na cPanel. Ono \u0161to prvo moram napraviti je GIT repozitorij s kojeg mogu preseliti aplikaciju na server, uz to moram i dodati server.js file gdje je entry point <a href=\"https:\/\/nextjs.org\/docs\/pages\/guides\/custom-server\">aplikacije<\/a>.<\/p>\n<p><code><\/code><\/p>\n<pre class=\"language-js\"><code class=\"language-js\"><span class=\"token comment\">\/\/ server.js<\/span>\n<span class=\"token keyword\">const<\/span> <span class=\"token punctuation\">{<\/span> createServer <span class=\"token punctuation\">}<\/span> <span class=\"token operator\">=<\/span> <span class=\"token function\">require<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'http'<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token keyword\">const<\/span> <span class=\"token punctuation\">{<\/span> parse <span class=\"token punctuation\">}<\/span> <span class=\"token operator\">=<\/span> <span class=\"token function\">require<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'url'<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token keyword\">const<\/span> next <span class=\"token operator\">=<\/span> <span class=\"token function\">require<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'next'<\/span><span class=\"token punctuation\">)<\/span>\n\n<span class=\"token keyword\">const<\/span> dev <span class=\"token operator\">=<\/span> process<span class=\"token punctuation\">.<\/span><span class=\"token property-access\">env<\/span><span class=\"token punctuation\">.<\/span><span class=\"token constant\">NODE_ENV<\/span> <span class=\"token operator\">!==<\/span> <span class=\"token string\">'production'<\/span>\n<span class=\"token keyword\">const<\/span> hostname <span class=\"token operator\">=<\/span> <span class=\"token string\">'localhost'<\/span>\n<span class=\"token keyword\">const<\/span> port <span class=\"token operator\">=<\/span> <span class=\"token number\">3000<\/span>\n<span class=\"token comment\">\/\/ when using middleware `hostname` and `port` must be provided below<\/span>\n<span class=\"token keyword\">const<\/span> app <span class=\"token operator\">=<\/span> <span class=\"token function\">next<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span> dev<span class=\"token punctuation\">,<\/span> hostname<span class=\"token punctuation\">,<\/span> port <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token keyword\">const<\/span> handle <span class=\"token operator\">=<\/span> app<span class=\"token punctuation\">.<\/span><span class=\"token method function property-access\">getRequestHandler<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\n\napp<span class=\"token punctuation\">.<\/span><span class=\"token method function property-access\">prepare<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token method function property-access\">then<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token arrow operator\">=&gt;<\/span> <span class=\"token punctuation\">{<\/span>\n  <span class=\"token function\">createServer<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">async<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token parameter\">req<span class=\"token punctuation\">,<\/span> res<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token arrow operator\">=&gt;<\/span> <span class=\"token punctuation\">{<\/span>\n    <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<\/span>\n      <span class=\"token comment\">\/\/ Be sure to pass `true` as the second argument to `url.parse`.<\/span>\n      <span class=\"token comment\">\/\/ This tells it to parse the query portion of the URL.<\/span>\n      <span class=\"token keyword\">const<\/span> parsedUrl <span class=\"token operator\">=<\/span> <span class=\"token function\">parse<\/span><span class=\"token punctuation\">(<\/span>req<span class=\"token punctuation\">.<\/span><span class=\"token property-access\">url<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">true<\/span><span class=\"token punctuation\">)<\/span>\n      <span class=\"token keyword\">const<\/span> <span class=\"token punctuation\">{<\/span> pathname<span class=\"token punctuation\">,<\/span> query <span class=\"token punctuation\">}<\/span> <span class=\"token operator\">=<\/span> parsedUrl\n\n      <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>pathname <span class=\"token operator\">===<\/span> <span class=\"token string\">'\/a'<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\n        <span class=\"token keyword\">await<\/span> app<span class=\"token punctuation\">.<\/span><span class=\"token method function property-access\">render<\/span><span class=\"token punctuation\">(<\/span>req<span class=\"token punctuation\">,<\/span> res<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'\/a'<\/span><span class=\"token punctuation\">,<\/span> query<span class=\"token punctuation\">)<\/span>\n      <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>pathname <span class=\"token operator\">===<\/span> <span class=\"token string\">'\/b'<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\n        <span class=\"token keyword\">await<\/span> app<span class=\"token punctuation\">.<\/span><span class=\"token method function property-access\">render<\/span><span class=\"token punctuation\">(<\/span>req<span class=\"token punctuation\">,<\/span> res<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'\/b'<\/span><span class=\"token punctuation\">,<\/span> query<span class=\"token punctuation\">)<\/span>\n      <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span>\n        <span class=\"token keyword\">await<\/span> <span class=\"token function\">handle<\/span><span class=\"token punctuation\">(<\/span>req<span class=\"token punctuation\">,<\/span> res<span class=\"token punctuation\">,<\/span> parsedUrl<span class=\"token punctuation\">)<\/span>\n      <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span>err<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\n      <span class=\"token console class-name\">console<\/span><span class=\"token punctuation\">.<\/span><span class=\"token method function property-access\">error<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'Error occurred handling'<\/span><span class=\"token punctuation\">,<\/span> req<span class=\"token punctuation\">.<\/span><span class=\"token property-access\">url<\/span><span class=\"token punctuation\">,<\/span> err<span class=\"token punctuation\">)<\/span>\n      res<span class=\"token punctuation\">.<\/span><span class=\"token property-access\">statusCode<\/span> <span class=\"token operator\">=<\/span> <span class=\"token number\">500<\/span>\n      res<span class=\"token punctuation\">.<\/span><span class=\"token method function property-access\">end<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'internal server error'<\/span><span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">}<\/span>\n  <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token method function property-access\">listen<\/span><span class=\"token punctuation\">(<\/span>port<span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token parameter\">err<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token arrow operator\">=&gt;<\/span> <span class=\"token punctuation\">{<\/span>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>err<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">throw<\/span> err\n    <span class=\"token console class-name\">console<\/span><span class=\"token punctuation\">.<\/span><span class=\"token method function property-access\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`<\/span><span class=\"token string\">&gt; Ready on http:\/\/<\/span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${<\/span>hostname<span class=\"token interpolation-punctuation punctuation\">}<\/span><\/span><span class=\"token string\">:<\/span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${<\/span>port<span class=\"token interpolation-punctuation punctuation\">}<\/span><\/span><span class=\"token template-punctuation string\">`<\/span><\/span><span class=\"token punctuation\">)<\/span>\n  <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><\/code><\/pre>\n<p>Uz to zamjenio sam I \u0161to skripte rade u project.json:<\/p>\n<p><code><\/code><\/p>\n<div>\n<div><code>  \"scripts\": {<\/code><\/div>\n<div><code>    \"build\": \"next build\"<\/code><\/div>\n<div><code>  },<\/code><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<p>Sad kad imam aplikaciju na GIT-u, vrijeme je za deploy. Usmjerio sam poddomenu https:\/\/next.rapic.eu prema serveru gdje mislim napraviti hosting Next.js aplikacije.<\/p>\n<h3>Cpanel<\/h3>\n<p>Sada trebam kreirati Node.js aplikaciju na<img loading=\"lazy\" decoding=\"async\" class=\"size-standard wp-image-2819 alignleft\" style=\"font-style: inherit\" src=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2022\/04\/nodeapp-1-728x109.png\" alt=\"Kreiranje Node.js aplikacije u cPanelu\" width=\"728\" height=\"109\" \/><span style=\"font-size: 18px\">\u00a0serveru. Odaberem verziju Node-a, ubacim se u direktorij gdje se nalazi aplikacija i ime startup datoteke. <\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-size: 18px\">Nakon \u0161to se sve ispuni i potvrdi s \u201cCreate application\u201d pojavi se opcija pokretanja NPM Install i Run JS script.<\/span><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-standard wp-image-2818\" style=\"font-style: inherit\" src=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2022\/04\/ispunjeno-1-728x381.png\" alt=\"Ispunjene postavke Node.js aplikacije u cPanelu\" width=\"728\" height=\"381\" \/><\/p>\n<figure id=\"attachment_2815\" aria-describedby=\"caption-attachment-2815\" style=\"width: 728px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2815 size-standard\" src=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2022\/04\/buttons-1-728x100.png\" alt=\"NPM INSTALL I RUN JS SCRIPT \" width=\"728\" height=\"100\" \/><figcaption id=\"caption-attachment-2815\" class=\"wp-caption-text\">NPM INSTALL I RUN JS SCRIPT<\/figcaption><\/figure>\n<p>Pokre\u0107em NPM Install, a zatim kod klikanja na<span style=\"font-size: 18px\">\u00a0Run JS Script odaberem build skriptu koja je jedina dostupna. (Obavezno provjeriti da aplikacija nije pokrenuta).<\/span><\/p>\n<p>Nakon toga pokre\u0107em Start APP I aplikacija izgleda ovako:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-standard wp-image-2817\" src=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2022\/04\/radi-1-728x416.png\" alt=\"Pokrenuta Next.js aplikacija u pregledniku\" width=\"728\" height=\"416\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Ovo je na\u010din koji koristim osobno, no siguran sam da ima i drugih na\u010dina. <a href=\"https:\/\/github.com\/davorrapic1\/easy-deloy\/tree\/main\">Link na Github aplikacije koja je postavljena na cPanel hostingu.<\/a><\/p>\n<p>Sve o Next.js-a mo\u017eete prona\u0107i na njihovim <a href=\"https:\/\/nextjs.org\">stranicama<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Next.js &#8211; zamjena za WordPress? Ve\u0107 neko vrijeme u potrazi sam za novim alatom\/frameworkom koji bi mi pomogao u potpunosti zamjeniti WordPress koji trenutno pokre\u0107e vi\u0161e od 40 % svih web stranica. U u\u017eem popisu su bili\u00a0Umbraco Remix, Next.js. Popis stvari koje ocijenjujem prilikom odabira: Programski jezik koji znam Server side rendering Modularnost SEO friendly [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":3837,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[54],"class_list":["post-2801","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-izrada-web-stranica","tag-cms"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Next.js: mo\u017ee li zamijeniti WordPress? - Plus Hosting<\/title>\n<meta name=\"description\" content=\"Ve\u0107 neko vrijeme smo u potrazi alatom koji bi mi pomogao u potpunosti zamjeniti Wordpress. U u\u017eem popisu su nam bili\u00a0Umbraco Remix i Next.js.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/\" \/>\n<meta property=\"og:locale\" content=\"hr_HR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Next.js: mo\u017ee li zamijeniti WordPress? - Plus Hosting\" \/>\n<meta property=\"og:description\" content=\"Ve\u0107 neko vrijeme smo u potrazi alatom koji bi mi pomogao u potpunosti zamjeniti Wordpress. U u\u017eem popisu su nam bili\u00a0Umbraco Remix i Next.js.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Plus Hosting blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-04-11T11:36:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-03T15:30:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2022\/04\/nextjs-cpanel-e1719389465573.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"604\" \/>\n\t<meta property=\"og:image:height\" content=\"436\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Plus Hosting\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisao\/la\" \/>\n\t<meta name=\"twitter:data1\" content=\"Plus Hosting\" \/>\n\t<meta name=\"twitter:label2\" content=\"Procijenjeno vrijeme \u010ditanja\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2022\\\/04\\\/11\\\/next-js\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2022\\\/04\\\/11\\\/next-js\\\/\"},\"author\":{\"name\":\"Plus Hosting\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#\\\/schema\\\/person\\\/546d59581335c51d7ef2b8bd83bcf033\"},\"headline\":\"Next.js\",\"datePublished\":\"2022-04-11T11:36:52+00:00\",\"dateModified\":\"2026-11-03T15:30:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2022\\\/04\\\/11\\\/next-js\\\/\"},\"wordCount\":396,\"publisher\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2022\\\/04\\\/11\\\/next-js\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/nextjs-cpanel-e1719389465573.jpg\",\"keywords\":[\"CMS\"],\"articleSection\":[\"Izrada web stranica\"],\"inLanguage\":\"hr\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2022\\\/04\\\/11\\\/next-js\\\/\",\"url\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2022\\\/04\\\/11\\\/next-js\\\/\",\"name\":\"Next.js: mo\u017ee li zamijeniti WordPress? - Plus Hosting\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2022\\\/04\\\/11\\\/next-js\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2022\\\/04\\\/11\\\/next-js\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/nextjs-cpanel-e1719389465573.jpg\",\"datePublished\":\"2022-04-11T11:36:52+00:00\",\"dateModified\":\"2026-11-03T15:30:26+00:00\",\"description\":\"Ve\u0107 neko vrijeme smo u potrazi alatom koji bi mi pomogao u potpunosti zamjeniti Wordpress. U u\u017eem popisu su nam bili\u00a0Umbraco Remix i Next.js.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2022\\\/04\\\/11\\\/next-js\\\/#breadcrumb\"},\"inLanguage\":\"hr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2022\\\/04\\\/11\\\/next-js\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"hr\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2022\\\/04\\\/11\\\/next-js\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/nextjs-cpanel-e1719389465573.jpg\",\"contentUrl\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/nextjs-cpanel-e1719389465573.jpg\",\"width\":604,\"height\":436,\"caption\":\"Nextjs - CPANEL\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2022\\\/04\\\/11\\\/next-js\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Next.js\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/\",\"name\":\"Plus Hosting blog\",\"description\":\"Plus Hosting blog: savjeti o hostingu, domenama i WordPressu\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"hr\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#organization\",\"name\":\"Plus Hosting\",\"url\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hr\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/plus-hosting-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/plus-hosting-logo.png\",\"width\":640,\"height\":640,\"caption\":\"Plus Hosting\"},\"image\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#\\\/schema\\\/person\\\/546d59581335c51d7ef2b8bd83bcf033\",\"name\":\"Plus Hosting\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hr\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/07f9c32002cbe0aba57dad3700650e87e434c204e2738cb948303128b270fe6a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/07f9c32002cbe0aba57dad3700650e87e434c204e2738cb948303128b270fe6a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/07f9c32002cbe0aba57dad3700650e87e434c204e2738cb948303128b270fe6a?s=96&d=mm&r=g\",\"caption\":\"Plus Hosting\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Next.js: mo\u017ee li zamijeniti WordPress? - Plus Hosting","description":"Ve\u0107 neko vrijeme smo u potrazi alatom koji bi mi pomogao u potpunosti zamjeniti Wordpress. U u\u017eem popisu su nam bili\u00a0Umbraco Remix i Next.js.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/","og_locale":"hr_HR","og_type":"article","og_title":"Next.js: mo\u017ee li zamijeniti WordPress? - Plus Hosting","og_description":"Ve\u0107 neko vrijeme smo u potrazi alatom koji bi mi pomogao u potpunosti zamjeniti Wordpress. U u\u017eem popisu su nam bili\u00a0Umbraco Remix i Next.js.","og_url":"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/","og_site_name":"Plus Hosting blog","article_published_time":"2022-04-11T11:36:52+00:00","article_modified_time":"2026-11-03T15:30:26+00:00","og_image":[{"width":604,"height":436,"url":"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2022\/04\/nextjs-cpanel-e1719389465573.jpg","type":"image\/jpeg"}],"author":"Plus Hosting","twitter_card":"summary_large_image","twitter_misc":{"Napisao\/la":"Plus Hosting","Procijenjeno vrijeme \u010ditanja":"3 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/#article","isPartOf":{"@id":"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/"},"author":{"name":"Plus Hosting","@id":"https:\/\/www.plus.hr\/blog\/#\/schema\/person\/546d59581335c51d7ef2b8bd83bcf033"},"headline":"Next.js","datePublished":"2022-04-11T11:36:52+00:00","dateModified":"2026-11-03T15:30:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/"},"wordCount":396,"publisher":{"@id":"https:\/\/www.plus.hr\/blog\/#organization"},"image":{"@id":"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/#primaryimage"},"thumbnailUrl":"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2022\/04\/nextjs-cpanel-e1719389465573.jpg","keywords":["CMS"],"articleSection":["Izrada web stranica"],"inLanguage":"hr"},{"@type":"WebPage","@id":"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/","url":"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/","name":"Next.js: mo\u017ee li zamijeniti WordPress? - Plus Hosting","isPartOf":{"@id":"https:\/\/www.plus.hr\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/#primaryimage"},"image":{"@id":"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/#primaryimage"},"thumbnailUrl":"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2022\/04\/nextjs-cpanel-e1719389465573.jpg","datePublished":"2022-04-11T11:36:52+00:00","dateModified":"2026-11-03T15:30:26+00:00","description":"Ve\u0107 neko vrijeme smo u potrazi alatom koji bi mi pomogao u potpunosti zamjeniti Wordpress. U u\u017eem popisu su nam bili\u00a0Umbraco Remix i Next.js.","breadcrumb":{"@id":"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/#breadcrumb"},"inLanguage":"hr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/"]}]},{"@type":"ImageObject","inLanguage":"hr","@id":"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/#primaryimage","url":"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2022\/04\/nextjs-cpanel-e1719389465573.jpg","contentUrl":"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2022\/04\/nextjs-cpanel-e1719389465573.jpg","width":604,"height":436,"caption":"Nextjs - CPANEL"},{"@type":"BreadcrumbList","@id":"https:\/\/www.plus.hr\/blog\/2022\/04\/11\/next-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.plus.hr\/blog\/"},{"@type":"ListItem","position":2,"name":"Next.js"}]},{"@type":"WebSite","@id":"https:\/\/www.plus.hr\/blog\/#website","url":"https:\/\/www.plus.hr\/blog\/","name":"Plus Hosting blog","description":"Plus Hosting blog: savjeti o hostingu, domenama i WordPressu","publisher":{"@id":"https:\/\/www.plus.hr\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.plus.hr\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"hr"},{"@type":"Organization","@id":"https:\/\/www.plus.hr\/blog\/#organization","name":"Plus Hosting","url":"https:\/\/www.plus.hr\/blog\/","logo":{"@type":"ImageObject","inLanguage":"hr","@id":"https:\/\/www.plus.hr\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2026\/11\/plus-hosting-logo.png","contentUrl":"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2026\/11\/plus-hosting-logo.png","width":640,"height":640,"caption":"Plus Hosting"},"image":{"@id":"https:\/\/www.plus.hr\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.plus.hr\/blog\/#\/schema\/person\/546d59581335c51d7ef2b8bd83bcf033","name":"Plus Hosting","image":{"@type":"ImageObject","inLanguage":"hr","@id":"https:\/\/secure.gravatar.com\/avatar\/07f9c32002cbe0aba57dad3700650e87e434c204e2738cb948303128b270fe6a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/07f9c32002cbe0aba57dad3700650e87e434c204e2738cb948303128b270fe6a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/07f9c32002cbe0aba57dad3700650e87e434c204e2738cb948303128b270fe6a?s=96&d=mm&r=g","caption":"Plus Hosting"}}]}},"_links":{"self":[{"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/posts\/2801","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/comments?post=2801"}],"version-history":[{"count":2,"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/posts\/2801\/revisions"}],"predecessor-version":[{"id":4346,"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/posts\/2801\/revisions\/4346"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/media\/3837"}],"wp:attachment":[{"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/media?parent=2801"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/categories?post=2801"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/tags?post=2801"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}