{"id":39280095,"url":"https://github.com/vesparny/morpheus","last_synced_at":"2026-01-26T05:00:52.968Z","repository":{"id":21166882,"uuid":"24470284","full_name":"vesparny/morpheus","owner":"vesparny","description":"The next generation web publishing platform built with React.js","archived":true,"fork":false,"pushed_at":"2015-10-07T17:20:30.000Z","size":1998,"stargazers_count":670,"open_issues_count":14,"forks_count":42,"subscribers_count":38,"default_branch":"develop","last_synced_at":"2025-03-04T07:02:59.128Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vesparny.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-25T18:34:59.000Z","updated_at":"2025-02-16T16:47:18.000Z","dependencies_parsed_at":"2022-08-22T16:20:05.395Z","dependency_job_id":null,"html_url":"https://github.com/vesparny/morpheus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vesparny/morpheus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesparny%2Fmorpheus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesparny%2Fmorpheus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesparny%2Fmorpheus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesparny%2Fmorpheus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vesparny","download_url":"https://codeload.github.com/vesparny/morpheus/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesparny%2Fmorpheus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28767008,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T03:54:34.369Z","status":"ssl_error","status_checked_at":"2026-01-26T03:54:33.031Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-18T01:00:34.818Z","updated_at":"2026-01-26T05:00:52.957Z","avatar_url":"https://github.com/vesparny.png","language":"JavaScript","readme":"# Morpheus\n### The next generation web publishing platform\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://cloud.githubusercontent.com/assets/82070/5554757/28bfa2a8-8c73-11e4-9433-bb814bd2bf11.png\"/\u003e\n\u003c/p\u003e\n[![Build Status](https://secure.travis-ci.org/vesparny/morpheus.svg)](http://travis-ci.org/vesparny/morpheus) [![Dev dependencies status](https://david-dm.org/vesparny/morpheus/dev-status.svg?style=flat)](https://david-dm.org/vesparny/morpheus#info=devDependencies \"Dependency status\") [![dependencies status](https://david-dm.org/vesparny/morpheus/status.svg?style=flat)](https://david-dm.org/vesparny/morpheus#info=dependencies \"Dependency status\")\n\n**The idea is to create a new isomorphic web publishing platform, with the speed of a single page application, but server side rendered on the first load.**\n\n**Built with [React](http://facebook.github.io/react/), [express](http://expressjs.com/) and [browserify](http://browserify.org/).**\n\n### Working demo\n\nYou can see **Morpheus** running on my own [website](http://alessandro.arnodo.net).\n\n### Articles\n\n* [Introducing Morpheus](http://alessandro.arnodo.net/2015/01/07/introducing-morpheus)\n\n### What and Why\n\nAt the time being, developers are building entire applications in the browser using JavaScript. The big part of the logic is living on the client and it talks to the server to an API.\n\nOnce the application is fully loaded, the user can gain a good experience navigating between pages without the need of fully reloading each time.\n\nThis is good, what happens when your website is run by a crawler (google bot or whatever)? If the website can only be executed on the client it won't be able to serve HTML to crawlers, and this will have negative impacts on SEO.\n\nThis is why Morpheus is totally rendered on the server on the first load. Once done, React will attach events to the DOM, and the user will feel the benefits of a single page application, without having to wait for tedious spinners before seeing the content.\n\n\n### Getting started\n\nMorpheus doesn't need a database, it just renders static markdown files.\n\n* Choose a name for you website, for this example we will call it `my-website`. Replace it with your name in the following commands.\n* Create a directory for your blog and create a new git repo\n\n```shell\nmkdir my-website \u0026\u0026 cd my-website\ngit init\n```\n\n* Checkout the `Morpheus` repository\n\n```shell\ngit remote add morpheus -m master https://github.com/vesparny/morpheus.git\ngit pull -s recursive -X theirs morpheus master\n```\n\n* Install the dependencies, create the example post and run the application\n\n```shell\nnpm install\ngulp install #this is important, it will create an example post.\ngulp watch\n```\n\n* Access your fresh-new website at [http://localhost:3000](http://localhost:3000)\n\n* Create a new post or page inside the `content/posts` or `content/pages` folder, then commit changes.\nPlease note that the filename structure must follow the convention `yyyy-mm-dd-HHmmss-post-title.md`\nAny page or post that contains a YAML front matter block will be processed by Morpheus as a special file. The front matter must be the first thing in the file and must take the form of valid YAML set between triple-dashed lines. Take a look at the example post and page for more details.\n\nIf you have an existing repository\n\n* Add the Morpheus remote to your local repository, then merge its master branch with your local branch.\n\n\n```shell\ngit remote add morpheus https://github.com/vesparny/morpheus.git\ngit fetch morpheus\ngit checkout master\ngit merge morpheus/master\n```\n\n### What’s done\n\n- [x] The basic technology stack (React express and browserify)\n- [x] Post and pages displaying, markdown render, posts pagination.\n- [x] Server side rendering.\n- [x] Comments managed with [Disqus](https://disqus.com/).\n- [x] Configurable permalinks.\n- [x] fully working default theme (it's called **blablabla**)\n- [x] RSS support\n\n\n### What’s next\n\nBelow is a list of the things to work on immediately, with links to the relevant discussion.\n\n- [ ] Logo design ([#3](https://github.com/vesparny/morpheus/issues/3))\n- [ ] Sitemap generation ([#5](https://github.com/vesparny/morpheus/issues/5))\n- [ ] Authors page ([#6](https://github.com/vesparny/morpheus/issues/6))\n- [ ] Tag listing page ([#7](https://github.com/vesparny/morpheus/issues/7))\n- [ ] Setup testing ([#8](https://github.com/vesparny/morpheus/issues/8))\n- [ ] Reserve some routes for future development ([#9](https://github.com/vesparny/morpheus/issues/9))\n- [ ] Split react components ([#10](https://github.com/vesparny/morpheus/issues/10))\n- [ ] Create wiki taking inspiration from [Jekyll](http://jekyllrb.com/docs/home/) ([#11](https://github.com/vesparny/morpheus/issues/11))\n- [ ] Create beautiful 404 and 500 pages and handle error also on the frontend ([#12](https://github.com/vesparny/morpheus/issues/12))\n- [ ] Split Morpheus in smaller npm packages ([#13](https://github.com/vesparny/morpheus/issues/13))\n- [ ] Publish to npm ([#14](https://github.com/vesparny/morpheus/issues/14))\n\n\nPlease feel free to join the discussions ;)\n\n\n\n### Run in production\n\n* build the app for production, commit your production ready build, and run it.\n\n```shell\ngulp build --env=production\ngit add -A\ngit commit -m \"ready\"\nNODE_ENV=production node server.js\n```\n\n### Configuration\n\nYou can also override configuration in the proper environment-specific configuration file inside the `config` folder.\nBelow the production config file I use for hosting my website on OpenShift PaaS.\n\n```javascript\n'use strict';\n\nvar path = require('path');\n\nmodule.exports = {\n  log: {\n    level: 'error',\n    file: path.resolve(process.env.OPENSHIFT_DATA_DIR || '', 'log.log'),\n  },\n  debug: false,\n  siteUrl: 'https://alessandro.arnodo.net',\n  useSSL: true,\n  port: process.env.OPENSHIFT_NODEJS_PORT || 3000,\n  ip: process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1',\n  disqusComments: 'arnodo',\n  siteTitle: 'Alessandro Arnodo',\n  siteDescription: '- Just another code monkey -',\n};\n```\n\n### Contributing\n\nPR and issues reporting are always welcome :) See more in CONTRIBUTING.md file.\n\n### Contributors\n\nAll this wouldn't have been possible without these great [contributors](https://github.com/vesparny/morpheus/graphs/contributors)! So THANK YOU!\n\n### License\n\nMorpheus is open-source software released under the [MIT license](https://github.com/vesparny/morpheus/blob/master/LICENSE).\n\n### Changelog\n\nSee CHANGELOG.md file.\n\n### Stability\n\nCurrently Morpheus is in its very early stages, and it isn’t pretty. **It is far from usable.** Set it up only if you know what you’re doing, and expect it to break a lot.\n","funding_links":[],"categories":["Awesome React","📦 Legacy \u0026 Inactive Projects"],"sub_categories":["Tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvesparny%2Fmorpheus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvesparny%2Fmorpheus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvesparny%2Fmorpheus/lists"}