Skip to content

Instantly share code, notes, and snippets.

@sizzlemctwizzle
Last active December 27, 2015 08:39
Show Gist options
  • Save sizzlemctwizzle/7297927 to your computer and use it in GitHub Desktop.
Save sizzlemctwizzle/7297927 to your computer and use it in GitHub Desktop.
Just some questions to think about before our discussion.

What server-side language/platform should we choose for our new site?

sizzle: Since we are building a site to host user scripts which are written in JavaScript, Node.js seems like the best choice. But node apis only provides basic web serving functionality. I personally use the Express framework because it makes things super simple (check the source of my site out to see for yourself).

sizzle: You also need some framework to build dynamic web pages. Although Express defaults to Jade templates, I find the amount of difference in syntax annoying and a barrier of entry to those who want to contribute. I use Mustache because its syntax is stupid simple. You just give it a JSON object and renders based on the values and structure. See my user script updater for a simple example. If we need more power, or want to render somethings on the client-side, there is also Handlebars, which extends Mustache but is also backwards compatible so we could switch to it later with little effort.

sizzle: If we want to be badasses we could use the Meteor platform instead of Express and Mustache. Watch the screen cast on the main page and prepare to have your mind blown.

What database should we use?

sizzle: I now SQL is really popular and many people are familiar with it, but I've only found one MySQL node module that actually works, and it's just very simple. We'd have to write a bunch of code around it to make it usable. MongoDB is all the rage in the node community (mainly because it ditches the relational model in favor of JSON like documents) so there is a lot of support for it. Anyway, I don't have any experience with using databases in node so I can't offer much advice.

Where should we host our site?

sizzle: Nodejitsu, mainly because they offer free basic service for opensource projects so this would be great for us starting out. The have support for Redis, CouchDB, and MongoDB databases.

What features should we offer?

sizzle: The thing I really want is integration with GitHub where you can set up a repo with all your user scripts in it (tell us where it is in account settings and set up the service hook on GH) and then the latest versions are available on our site for download. We could still have the basic upload your scripts to our site feature if you didn't want to use GH. Hell maybe we could interface with other source code repositories eventually. Other questions: Reviews? Forums? Comments? Moderation? How should things look and be organized?

How should we handle user registration?

sizzle: I think OpenID is the best solution. Here is a library for node.

How do we pay for hosting costs?

sizzle: Either we could follow the standard ad model (ick), take donations (and hold our site ransom until we get enough to pay the bills), or have people pay bonus features (since the site is open source they could just run our code somewhere else but this is like a reward system for "donations") and we could give the bonus features to people for free we thought were doing awesome or let others gift people the bonus features. I'm sure their are other creative ways we could find to get people to give us cash. We can also combine and change strategies at different points in our development (like if we go Nodejitsu then we should only ask for donations, no ads).

smk: I think an incentive could be allowing people to pay for script requests, and taking a percentage for hosting costs? Not sure if that will bring in enough, but I've seen some people on the site willing to pay for scripts.

How do we scale?

sizzle: Nodejitsu provides some pretty good tiers for if/when we need more resources. We could also rent a linux micro instance on Amazon's EC2 and move over to that if the site got huge. If we identify bottlenecks in our JS code, I can always rewrite them natively in D.

What is the name of our new site?

Should we assign people roles or just have a do what you wanna do development strategy?

@PTony
Copy link

PTony commented Nov 5, 2013

What is the name of our new site?

PTony: I think "UserScriptsKitchen" (reduced "USKitchen") would be funny and sarcastic :D. Also it have sens for newcomers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment