What is Gomix? The Programmer Edition


#1

I know this seems a little against the spirit of HyperDev/Gomix — but is there a description of the platform/service/system written for folks who have a bit of experience as programmers/web-developers? I’m having a little trouble wrapping my head around what we can, and can’t, do with the platform and I find that uncertainty paralyzing. This is my fault, not Gomix’s.

From whwat I can see, on the backend it looks like I get server running some sort of server side javascript system (is this NodeJS?). I also see I get an in-browser IDE. I also see there’s a packages.json file which (I think?) is an NPM file which (also I think) means I can pull in any NPM package into my project and then require away. The NPM packages.json lets me start up an express server, and then we’re off to the races.

What’s unclear is what other things (if any) Gomix provides on the backend. The mongodb project (https://gomix.com/#!/project/mongodb) makes it clear Gomix can talk to these sorts of systems, but does it do anything to help/provide me with a datastore or other backend systems (MongoDB, PostgreSQL, memcached, MySQL, etc.)? Or is the Gomix mindset more a “run your own datastore elsewhere, and shouldn’t you be using someone’s API instead?”

Also, on the frontend, it’s clear Gomix (via Node and express) can serve any file I drop in, so the possibilities are endless, but are there any systems for managing and importing frontend libraries? Or is the Gomix philosophy “use a CDN for that, like we did with jQuery”.

Finally, a lot of modern javascript tools require some sort of “write code in this thing we made up, run some build scripts, and spit out compiled/transpiled/etc. frontend code”. Does Gomix have support, or a replacement for, for these sorts of things? Or is the Gomix philosophy “We don’t want you trapped at the bottom of Russian Nesting Dolls”.

I realize, and expect, the answer to many of these question may be “Gomix doesn’t do that”. This makes total sense – I’m just looking for some information, or an intro, on where Gomix has drawn those lines.


#2

hi @astorm - I’ll try and help you out!

Gomix provides you with your own container that allows you to run both frontend and backend code, edited with a browser-based editor and it takes care of the hosting and deployment for you - providing you with your own URL that’s instantly available.

The backend is just Node.js for now, but we plan to add support for others soon - like Python, Ruby, PHP etc. Packages.json does allow you to install any NPM package and they should just work. So you can use Express for your server, that’s what many of our examples use, but you could just as easily swap out that package and use hapi.js, Restify, whatever.

The container you get has a persistent filesystem, so you can store data locally in files as a flat-file database, or store your database files there instead if you’re using SQLite (see example: https://gomix.com/#!/project/sqlite3-db), NeDB (see example: https://gomix.com/#!/project/ne-db) or something else. But you can choose to use third-party hosted services too (such as https://gomix.com/#!/project/mongodb-sync). We’re thinking about other ways to expose storage options to users as it’s a common stumbling point.

We plan to support and have tutorials covering frontend build pipelines and we’ll be adding a command line feature for more advanced users. But you can use bash scripts and NPM’s scripts to do some of that kind of thing. We don’t currently provide root access to install stuff yourself to the container, but we can add stuff to the base image for you if you come across something you need for now.

There’s a little more detail about this kind of stuff here: https://gomix.com/help/faqs/