{"id":24521198,"url":"https://github.com/matthijskamstra/hx-mean","last_synced_at":"2026-05-21T07:45:12.678Z","repository":{"id":40953525,"uuid":"134875864","full_name":"MatthijsKamstra/hx-mean","owner":"MatthijsKamstra","description":"Mean stack but done with Haxe. Forget angular, think vue.js and react","archived":false,"fork":false,"pushed_at":"2023-02-01T16:00:29.000Z","size":4954,"stargazers_count":2,"open_issues_count":13,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-22T02:49:11.836Z","etag":null,"topics":["haxe","javascript","js","mean","nodejs"],"latest_commit_sha":null,"homepage":"https://matthijskamstra.github.io/hx-mean/","language":"Haxe","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/MatthijsKamstra.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-25T15:44:41.000Z","updated_at":"2022-11-10T08:19:55.000Z","dependencies_parsed_at":"2023-01-30T06:16:30.181Z","dependency_job_id":null,"html_url":"https://github.com/MatthijsKamstra/hx-mean","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatthijsKamstra%2Fhx-mean","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatthijsKamstra%2Fhx-mean/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatthijsKamstra%2Fhx-mean/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatthijsKamstra%2Fhx-mean/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MatthijsKamstra","download_url":"https://codeload.github.com/MatthijsKamstra/hx-mean/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243729095,"owners_count":20338403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["haxe","javascript","js","mean","nodejs"],"created_at":"2025-01-22T02:49:16.734Z","updated_at":"2026-05-21T07:45:12.637Z","avatar_url":"https://github.com/MatthijsKamstra.png","language":"Haxe","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hx-Mean\n\n![](docs/img/banner.png)\n\n\n\nI wanted to build my MEAN stack in Haxe. So I build this example project to see if its doable.\n\n\n- [Haxe](http://www.haxe.org) The Cross-platform Toolkit for transpiling to javascript [more](READ_HAXE.MD)\n- [Bootstrap v4.1](https://getbootstrap.com/) for css framework\n- [Fontawesome v5](https://fontawesome.com) for nice icons\n- [Vue.js](https://vuejs.org/) a progressive framework for building user interfaces.\n- [Vue router](https://github.com/vuejs/vue-router) The official router for Vue.js\n- [sass](http://sass-lang.com/) CSS with superpowers\n- [LiveReload chrome extension](https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei?hl=en)\n- [hx-html](https://github.com/MatthijsKamstra/hx-html) experimental html template creation\n- Swig [docs](http://node-swig.github.io/swig-templates/docs/) [Haxe extern](https://github.com/clemos/haxe-js-kit/blob/develop/js/npm/Swig.hx)\n\n\n## About MEAN\n\n\u003e\nMEAN is a free and open-source JavaScript software stack for building dynamic web sites and web applications.\n\nThe MEAN stack is MongoDB, Express.js, AngularJS (or Angular), and Node.js. Because all components of the MEAN stack support programs are written in JavaScript, MEAN applications can be written in one language for both server-side and client-side execution environments.\n\u003e\u003e\n\nMEAN was coined by Valeri Karpov, a MongoDB developer. He introduced the term in a 2013 blog post.\n\nThe logo concept, initially created by Austin Anderson for the original MEAN stack LinkedIn group, is an assembly of the first letter of each component of the MEAN acronym.\n\nThe components of the MEAN stack are as follows:\n\n- MongoDB, a NoSQL database\n- Express.js, a web application framework that runs on Node.js\n- Angular.js or Angular, JavaScript MVC frameworks that run in browser JavaScript engines\n- Node.js, an execution environment for event-driven server-side and networking applications\n\nA number of variations on the traditional MEAN stack are available by replacing one or more of the components with similar (typically Javascript-based) frameworks. For example: In a MEEN stack, the JavaScript MVC framework Ember.js is used instead of Angular, and likewise for the MERN stack, where React.JS is used as a substitute.\n\n\n| (M) | (E) | (A) | (N)\n| --- | --- | --- | ---\n| MongoDB | Express | Angular | NodeJS\n|  |  | React |\n|  |  | Vue.js |\n|  |  | Swig |\n|  |  | Jade |\n\n\n\u003e\nPre-requisites\nYou need to have a basic understanding of all the four technologies that make up the MERN stack. You should also have npm (Node Package Manager) installed. This is NOT a tutorial on MongoDB, Express, React or NodeJS.\n\n\n\n## Json definition aka AST\n\nEasy way to make AST files for `.json`\n\n\u003chttp://matthijskamstra.github.io/hxjsondef/\u003e\n\n## Install\n\nNormally you can install with\n\n```bash\nhaxelib install\n```\n\nBut some stuff that doesn't install automaticly by haxelib.\nYou can fix that with the following commands\n\n```bash\n# haxe-js-kit for externs\nhaxelib git js-kit https://github.com/clemos/haxe-js-kit.git haxelib\n\n# I sometimes use my personal set haxe-externs\nhaxelib git hxexterns https://github.com/MatthijsKamstra/hxexterns.git\n\n# cutting edge vue.js externs\nhaxelib git vue https://github.com/MatthijsKamstra/Vue.hx.git\n```\n\n\n\n\n## Files\n\n```\n- package.json (I only use this for `watch`)\n+ bin\n\t- package.json (here are your files node.js needs to work)\n```\n\n\n# run\n\n\nThis will start:\n\n- mongodb\n- open mongobooster\n- open browswer\n- watch css/hx\n- nodemon\n\n```\nnpm run start:lazy\n```\n\n\n```\nnpm run watch\n```\n\n\n\n# misc\n\n```\n→ mongod --version\ndb version v3.6.3\ngit version: 9586e557d54ef70f9ca4b43c26892cd55257e1a5\nOpenSSL version: OpenSSL 1.0.2o  27 Mar 2018\nallocator: system\nmodules: none\nbuild environment:\n    distarch: x86_64\n    target_arch: x86_64\n```\n\nhttp://mongoosejs.com/docs/compatibility.html\n\n-  MongoDB Server 3.6.x: mongoose 5.x, or \u003e=4.11.0 with useMongoClient and usePushEach\n- MongoDB Server 4.0.x: mongoose \u003e=5.2.0\n\n\n# How does it work?\n\nMongoDB works with Mongoose\n\nExpress\n\nNode.js\n\nSome prefer a different templating system.\n\n\n# Templating\n\n- Use static files\n- Server generated templates\n- Client generated templates\n\n# Server generated templates\n\nUse templates to generate them on the server and send the template to the client\n\n- Swig [docs](http://node-swig.github.io/swig-templates/docs/) [Haxe extern](https://github.com/clemos/haxe-js-kit/blob/develop/js/npm/Swig.hx)\n- Jade (is now called Pug) [Haxe extern](https://github.com/clemos/haxe-js-kit/blob/develop/js/npm/Jade.hx)\n- ejs [Haxe extern](https://github.com/clemos/haxe-js-kit/blob/develop/js/npm/Ejs.hx)\n- Mustache\n\n# Client generated Templating\n\n- react\n- vue.js\n- (Angular)\n\n\n\n# Haxe specific templating\n\n- Haxe default templating \u003chttp://api.haxe.org/haxe/Template.html\u003e\n- https://github.com/nadako/hxmustache\n- https://github.com/haxetink/tink_template\n- https://github.com/benmerckx/ithril\n- https://github.com/ciscoheat/mithril-hx\n\n\n\n\n\n\n# externs\n\nhttps://github.com/clemos/haxe-js-kit/tree/develop/js/npm/mongoose\n\n\nhttps://github.com/clemos/haxe-js-kit/tree/develop/js/npm/socketio\n\n\nhttps://github.com/clemos/haxe-js-kit/tree/develop/js/npm/express\n\n\n\n\n\nhttps://github.com/MatthijsKamstra/hxexterns\n\n\n\nhttps://github.com/wiggin77/HxMongoNode\n\n\n\n\nhttps://github.com/abedev/hxexpress\n\n\n# ts\n\nhttps://www.npmjs.com/package/@types/express\n\nhttps://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/express\n\n\n\n\nhttps://microsoft.github.io/TypeSearch/\n\n\n\n\n\nhttps://www.npmjs.com/package/@types/mongoose\n\n\nhttps://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mongoose\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthijskamstra%2Fhx-mean","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatthijskamstra%2Fhx-mean","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthijskamstra%2Fhx-mean/lists"}