List of Open Source/Free Tools Every Developer Should Use
As a developer, you have to shut down those distractions and deliver high-quality websites, app or software. Thankfully, productivity tools – developer’s best friends can help in creating awesome code.
These productivity and free tools can help you save time, communicate and collaborate on your projects. In short, they help in testing applications using repeatable infrastructure, collaboration, and communication easily.
Here’s a list of tools that can improve the productivity of a developer. These tools have been around for some time and have a great rep in the market. So without much ado, let’s start.
Among DevOps tools, vagrant is widely used for the purpose of development and testing. It can be used to create a development or mimic the production environment. With Vagrant, developers can set up virtual machines by importing boxes (virtual machine templates) from the vagrant cloud, setting VM settings (like networking storage etc) and running provisioning tools like Puppet or Chef.
The best thing about vagrant is, a lot of application stacks comes bundled with the vagrant boxes. For example, if you want to develop on a LAMP stack, you can search for a LAMP box in the vagrant cloud. It will list all the available boxes developed by the community with LAMP versions. By using these boxes, you can save time in setting up the applications manually.
Vagrant lets you run sandboxed environments without messing up your workstation configurations. For example, If you want python 2 and 3 development environments, you can have two vagrant boxes running python 2 and 3.
Also, you can have your own chef cookbooks, puppet modules or ansible playbooks that can be used in the vagrant configuration file, which automates the configuration using a cookbook, module or a playbook.
Vagrant Use cases
- For repeatable development environments. You can share a vagrant file with other developers which will launch the same virtual machine as you have on your laptop. This avoids the configuration drift between developer workstation configuration.
- Load testing/ Mimicking Production environment: You can spin up vagrant boxes in a matter of seconds and destroy it for load testing or performance testing. Also, you can have a production like an environment by networking vagrant boxes together.
Also Checkout: DevOps Resource Page
If you are a developer, you will start loving this tool. Docker is an open source tool that allows developers to create and manage applications within Linux containers. Docker Hub, an online repository for docker images let download prebuilt docker images with most of the applications stacks. Developers do not need to create a VPS or mess up their existing configurations on their workstation – they can simply dive in to work on apps using these docker images.
The best part about docker is that it takes less than second to start a container.
An addition to Docker is Kinematic. Kinematic can install the Docker engine on your system. It automates the installation of Docker engine, Docker machine Virtual box backend, and other docker components. It has an excellent GUI for managing docker containers. Other features of Kinematic include the ability to search images, switching between CLI and GUI, managing ports, configuring environment variables, logs, etc. Docker is a suitable tool for creating an isolated environment.
You can also spin up containers on a vagrant box if you do not want a GUI application.
If you are someone you plays around with cloud VM’s, this tools is for you. This tool automates the image creation for your cloud provider. Also, the configurations that you write in packer are cloud agnostic. You can write a packer configuration for creating an image with specific application stack and use it with multiple cloud providers.
Also, you can use provisioners (Shell, Ansible, Chef etc..) to automate the application configuration in VM images.
Continuous Integration Tools
Jenkins is a widely adopted open source continuous integration tool, with a huge community support. It has a low learning curve. Just install it and use it to work with your Java or. NET projects. Docker images are available for most of the Jenkins versions.
Travis CI is a cloud-hosted continuous integration platform. You can use it for your open source projects. It is completely free and you don’t need a self-hosted CI setup if you use this service.
Shippable is again a cloud-hosted CI/CD solution. It has a free and enterprise mode. Shippable uses docker containers for building your workloads. It’s pretty interesting. You should check it out.
Version Control Systems
A development tool is incomplete without GitHub, a repository hosting service. It offers version control, SCM functionality and collaborating functionalities like bug tracking, task management, and others. It also offers social networking features like followers and feeds. Developers can access public repositories and submit their source code to the repositories. Also, being the largest code repository in the world, managing pull requests, and tracking issues is a breeze.
The downside of Github is that you won’t be able to create a private repository for free. However, there are paid option for private repositories.
Bitbucket is a collaborative revision control system that uses Mercurial and Git. Developers can access, unlimited free private repositories, manage or share repositories, collaborate on code and much more. Bitbucket is also integrated with JIRA, a project management tool.
If you would like to have a Github-like setup for your own, you can go for Gitlab. Once setup, you can use it to host your application code in a well-managed way. If you hate configuring software, you can use the Gitlab docker image for a single line setup.
We don’t always work on out workstation. You might want transient work environments that you can spin up on demand and tear it down when not needed. Here is where the cloud comes into play. Cloud is where the future of tech lies, integrate it with an artificial intelligence system and you get a rocking combination. With options like AWS, DO, Lightsail, developers can set up their own virtual private server in just a few clicks and pay money for the bandwidth they use in hourly basis.
AWS offers a power-packed solution with VPS and artificial engineering services like Athena, Polly, and Lex which can be utilized for developing your websites or apps ready with analytical and machine learning concepts. AWS is a must use application for developers looking for a robust infrastructure and affordable hosting solutions.
If you signup for an AWS account, you will come under a free tier program and you can spin up their services for free (Conditions apply).
DigitalOcean offers the best VPS in the market with powerful servers, lightning fast speed and awesome developer tools. The cloud instances in DO are referred to as droplets which can be deployed in just 55 seconds. It has made a whole lot of difference in the market with its intelligent strategies, low-cost solutions, and the best cloud offerings. With an extensive support through tutorials and groups, you will never have to face an unresolved issue.
If you can a $10 free credit if you signup using this link.
Another great product from the tech giant, Amazon, Lightsail offers developers an option of setting up their own VPS in just 3 clicks. Developers can get the benefit of AWS, without the hassle of learning complex services. Lightsail will do all the hard work – so you can focus on the important tasks at hand.
Docker cloud lets you orchestrate docker containers on the cloud. You can configure cloud providers like AWS, Azure or Google cloud as a backend for launching containers. Give it a try and you might like it.
Asana is the best tool that can help you in collaborating with your peers. It offers an intelligent, integrated and adaptable project management system. With Asana, you can collaborate in real time. It also enables you to manage tasks or “to do’s” via email. Comments or notes can also be added to communicate directly inside Asana and make the tasks information-laden. Separate projects can be created and within your projects, you can create different tasks. In a nutshell, Asana is a great tool for project management. Other key features include – Workspace, Projects, Tags and Inbox.
Platforms – Mobile App – iOS, Android and Web app
Slack is a great tool for online communication. It is integrated with a long list of apps like Google Calendar, Skype, Trello, GitHub, Jira and much more. If you are looking for a tool to brainstorm, communicate and collaborate, Slack is the one!
Platforms – Web app, Desktop application – Mac, Windows and Linux, Mobile app – iOS, Android, and Windows Phone.
Trello is an exciting, visual project management tool that can organize projects into boards. It has almost every feature that, can you help you in the effective organization of your tasks. Developers can collaborate in real-time. Based on Kanban, it has a great UI and whiteboard layout where you can post your to-do lists, ideas in a fun way.
Platforms – Web app, mobile app – iOS and Android
Learning is a continuous process. There are many resources out there to help you out with the latest technologies. You can make use of those resources to keep yourself updated with the technology trends. You can check out the resources for learning from here. Online Websites to Learn Programming
In the world of productivity tools and free, the ones listed here are the best. Use these tools and excel at your work!
If you think we have missed a wonderful tool, please let us know. We will add it to the list.