3 ms·
Okay here is what you really must do if you are ambitious about building everything yourself. Break your application down into smaller applications that exploi
by sova 10y ago
Okay here is what you really must do if you are ambitious about building everything yourself.
Break your application down into smaller applications that exploit a particular feature. For example, if you are making a chat application, first make a simple Node.js site that can post to a Database and Read from the database and render a post in html.
Maybe add some extra functionality.
Then go on and make a really simple site that uses sockets to make a simple group chat box or something simple like a haiku sharing site (to tell you what I made).
Moving on, you can finally synthesize these two approaches and make your ambitious app. You already know how each component-that-is-kinda-tricky works so you can go into your huge awesome superapp with confidence that you'll get the layering right and not forget anything.
So that's about it, go in chunks.
I am a designer and if you are building everything from scratch I highly recommend you do two things:
1) read the book "Understanding Comics" by Scott McCloud. He talks about the "Infinite Canvas" which is a great metaphor for what a screen is capable of.
2) get plain paper, pencils, scissors, tape, and coloring equipment and make cut-outs of every screen. You can even make buttons, slide cut-out divs across the screen, simulate behavior in a tangible and visible way. It is by far the best way to prototype a web-app.
3) Focus on making something people love. Yeah yeah you keep your job or not, makes no difference to me. You'll have something. File at the local temp agency for a coding gig PT in the meantime and work 3 days and spend 4 on your projects.
If you are confident in your products and their appeal, have some corroboration from would-be users, go for it.
Money? I don't know, my idea is that you make something awesomely useful and people will use it, and from there you can bank on the traffic in some way. Maybe you run your own "hey here are some ads" service or just rely on "one-dem-giants" and let funds slowly trickle in. Monetization is sadly important, but if you are making something people will use then I don't think you need to consider it as much. Of course, I'm not rich, and that may be the reason why, so take this here chunk with a couple grains of pepper perhaps.
If you want environment+coding recommendations I say:
Node.js + MongoDB (or Redis?)
Use WebSockets (if you must use socket.io for the syntax be sure to upgrade it by adding a line to use micro web sockets (uws)... findable on your local githubs)
Or Ajax^
If you have more time and more float, I would say take the time to read BraveClojure. Most simple web apps would become:
Compojure for routing, Enlive or Hiccup for templating, and some Database.
Once you want to do more javascripty/real-time interactions, I say stick with Node.js and Sockets ... but if you are looking for long-term expansion of an app (that has research-potential in the future) you gotta build it from the ground up with the best possible tools of your time.
So yeah, just some thoughts. Be creative and make something beautiful, friend. Societal Value > Profit.
That said, hope you make a bunch doing it.