Settings

Theme

Ask HN: What langauges to learn if I wanted to build a site like nomadlist.com

5 points by ybalkind 9 years ago · 7 comments · 2 min read


I subscribe to the sentiment that a good way to learn development is by taking on a project. I have a few projects in mind for online directories similar to nomadlist.com.

So far I've been building them in Wordpress and hiring freelancers to do the bits that the plugin does not allow natively. But I cant seem to get the right kind of filters and cutomisation that I would like and have contemplated what it would take to learn to build it myself.

If my desired outcome was a directory site such as nomadlist.com with lots of filters, good performance, and a CMS, and assuming I was willing to take on a few months worth of learning, what would be a good learning path?

One option I suppose is to learn PHP and Wordpress so that I can take on the customisation of my wordpress site.

But I would prefer to give myself options outside of Worpdress and to learn to build a site from scratch.. Would love to hear some thoughts from the dev community.

The wordpress option is probably more realistic given my timeline, but I do know CSS and HTML already so maybe it is possible to learn something more advance? You tell me

Note: I could have asked what languages were used to build nomadlist, but I purposefully phrased the question differently because I presume that the languages he chose might night be the best/recommended languages for a newbee trying to reach the same outcome.

pieterhg 9 years ago

Hi! I made Nomad List so maybe I can tell you more. I wrote it in plain JS with only jQuery. The backend is PHP. They communicate through simple POST requests (see the Network tab when you filter). The database is SQLite for simplicity sake.

I'd recommend building something with a language that is easy for you to learn and that gives you freedom to make it complex or not. That's PHP for me. A big reason why I say this is because you don't want to spend too much time coding while validating your website/app idea.

You can always switch language/stack later.

I decided to go framework-less, which was a great decision early on. And I still like it although once you get more traffic and features, everything inevitably turns into spaghetti and you need to stay very knowledgable about your code to keep being able to work on it. Stuff like user sign up and login I'd love to have outsourced to a framework (for example this week login broke for no reason).

Also some parts of the site run on off the shelf software. The forum runs on Discourse, the chat runs on Slack etc.

I was obsessed with which tools to use before I made Nomad List, but then when it went viral I had to work with whatever I knew and I hear that from a lot of people. You work with what you know at that time.

Good luck :)

  • ybalkindOP 9 years ago

    Oh wow, great to get such direct feedback, thanks! Interesting to hear that you use PHP. Although I'm not a developer I lurk on forums a lot and it seems PHP gets a bad rap so interesting to see a site that is well known in HN circles using it.

    While I've got you on the line I have to give my 2 cents about your scores for Johannesburg. firstly, our weather is sublime, secondly I would say that freedom of speech, racial tolerance and female freindliness, is at least good if not great. Air quality I think is at least okay if not good.

    But I'm a bit biased, and I guess its all subjective :)

    Happy to provide any other Joburg info if you need.

    • pieterhg 9 years ago

      Sure :)

      PHP 7 is very improved and can stand up to most other langauges now I think.

      Facebook and Slack are also built on PHP.

      I think asking what tools people use is probably the wrong question though. You can build successful projects with most modern languages. It's more about your style of coding I think. My style is extremely minimalistic in effort and pragmatic. Not a lot of testing either.

      Thanks for the feedback on Johannesburg! You can click some of the values as they're editable. Others are from international data sets (like racial tolerance and free speech).

    • callaars 9 years ago

      Don't let people's opinions about languages get the best of you. In the end you need to use what you are comfortable with, as it is about results first, then about optimization. If you're comfortable with PHP, great, use that. If you're comfortable with Python, also great, use that.

  • richjdsmith 9 years ago

    Hey Pieter, love what you're doing!

    Quick question on your stack: you don't use any CSS frameworks? How do you do mobile without punching a hole in your MacBook's screen?

    • pieterhg 9 years ago

      Haha, I use Chrome's emulator which covers most use cases. I use SCSS with CodeKit but only so I can do @import's of for example my global.css into specific page CSS files. Not any crazy stuff. I'd love to use variables though as that'd save time, although a find and replace over 20 files in Sublime Text also works fine!

      It's really important my site works well on mobile. So I've spent a lot of time adding countless media queries. Simply keep adding more until it works on every device (in the emulator).

anilgulecha 9 years ago

It's not language related -- you could build a simple webservice with any language and db. You could take a course on basics of building web-applications in any popular language (Ruby on rails, nodejs or php) and start out there.

Of course if you just want to get a directory out there, you're on the right track of maybe using wordpress with a theme, and some plugins. The language doesn't have much to do with how popular something will be.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection