What kind of dev environment should I have if I want to contribute to iNat?

it looks good. i was wondering who that guy was who was helping with all that coding. i’m happy that there are people out there helping with the development load. (thanks todtb!) i wish my skills were good enough to stand up a dev instance of the system to even begin to attempt to code, but alas they are not.


I think it takes more patience than skill. There are a lot of moving pieces. I keep meaning to put together some kind of remote workshop for people interested in development so we can just be around online for an afternoon / evening to help people get set up. Would that be of interest?


i’m tempted, although the realist on my shoulder says i probably would not code enough to justify the cost it would take me to learn the system and the languages involved, plus the cost for you to help get me up and running (although if you’re helping multiple other people get set up, then your cost / effort is minimized).

regardless of my own interest, i think it would be a great thing to offer in general, especially if you could get, say, 10-20 people (or more!) signed up. i’m sure there are plenty of people out there who would be willing to help but just don’t know where to start (especially in these days of Covid).

what kinds of tools do you all use for development? and what kind of computing power do you need to set up an instance?

There’s a pretty heavy list of dependencies you can read about at https://github.com/inaturalist/inaturalist/wiki/Development-Setup-Guide. Most problems tend to stem from version conflict with existing installations of the same software, so isolating in a virtual machine sometimes seems like a good idea, though frankly no one on the team does that b/c we all use Macs and we all like native GUI editors and it’s often hard to use a native GUI editor on the host machine that’s editing files on a virtual machine. Docker might be ideal but we don’t use it in production and since most of us are already set up for development locally we’re not super motivated to get things Dockerized.

In addition to the Macs, I think Patrick and I code in Sublime, use nvm and rvm to manage node and Ruby versions respectively, homebrew to manage a lot of software installation. I think Amanda uses Visual Studio for React Native / Seek work, I’m pretty sure Alex uses xcode and Yaron uses Android Studio for the iPhone and Android apps, respectively. In theory you should be able to get everything other than the iPhone app set up on a Linux box, and theoretically a Windows machine, though I don’t have experience getting any of these stacks up on a Windows machine.


oh nice. i think the guide should be enough right now to point me in the right direction. i think had seen the link for the Development Setup Guide before on the Github repository’s main wiki page, but it was a broken link, and i never thought to look to the page links on the right side of the page. (i fixed the broken link on the home wiki page.)

i think my biggest technical roadblock might be my machine. i suspect my 2014 Surface Pro tablet won’t have enough power – particularly storage, with just 15 GB left right now – to install everything. but we’ll see what happens…

any machine i would potentially use for development would probably run Windows. but it looks like it should be relatively straightforward to set up a Linux subsystem (https://docs.microsoft.com/en-us/windows/wsl/install-win10), which is probably the best thing to do to most closely match what you all are doing. just doing a quick search to see what it takes to get Ruby and other things running on, say, Ubuntu, it looks like there may be some small challenges, but it looks like there are well-known workarounds to get things running.

as frugal as i am, i probably would not pay $80 for Sublime, but it looks like Visual Studio Code is free, has a Ruby extension, and supports React out of the box. i downloaded it just to see it how it handles my miscellaneous HTML code, and it seems fine as a text editor, though it seems like it’ll require some time to set it up properly for debugging things, possibly connecting it to source control, etc.

so then if the machine limitations don’t stop me in my tracks, there are just going to be a lot of learning curves to overcome, as almost every language, tool, process, etc. will be new to me. so i think what you said about patience is right. it’ll just be baby steps, as time and priorities allow… and if i can get things up and running at some point, then i’ll see if i can help with some occasional coding…


(moved the above to a new topic and probably wrote a mangled description for the title, feel free to correct it)

I would love to join this!.. If it was open to anyone… or I could just be a bystander ( not used Node, Ruby or React specifically yet :grimacing: but some, varying levels of experience with Java, Python, C++, Javascript, HTML, CSS…as well as time and patience…if that would be enough to get me through the gate… :slightly_smiling_face: )

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.