📢 Announcing New Local Dev Setup Options for Contributing to Forem!
Tags: hacktoberfest23, meta, opensource, documentation
Published: 2023-09-22 00:57:02

It's almost that time of the year again: [Hacktoberfest](https://hacktoberfest.com/)! The month-long celebration of supporting open-source. If you were ever on the fence or just curious about [Forem](https://www.forem.com/about) but lacked the time to properly set up a local development environment, I'm excited to share with you all a few **new** expedited ways that we cooked up ahead of this event. 

Here are a few ways to quickly get started with contributing to DEV:

## Github CodeSpace & Gitpod: The absolute fastest way
Both of these tools are cloud development environments. They are good for quickly poking around the codebase and the go-to daily driver tool. Because they are web-based, they have the added benefit of being able to run on any computer, tablet, or even your phone if you want the extra challenge. Both tools are similar and come with free plan hours, so you are free to choose. Our cloud environment comes with all the dependencies installed and the database seeded. Click on one of the options below to get started!

[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new/forem/forem)

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/forem/forem)

## VS Code with Dev Containers
**Forem now supports dev containers!** This means you can have a flexible containerized development environment with all the required dependencies set up in under 15 minutes on most modern machines. All you need is:

- [Docker](https://www.docker.com/)
- [VS Code](https://code.visualstudio.com/) with the [dev container extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) installed
- Our [Forem repository](https://github.com/forem/forem) cloned

Open up your VS Code and use the command in the command palette, `Dev Containers: Rebuild and Reopen in Container`, and you're ready to go!

![image](https://github.com/forem/forem/assets/15793250/157a58a4-41f4-4114-bfce-da1380151d8c)

## Containerized setup with `dip` gem
Want the convenience of containerized setup without having to deal with learning and running Docker commands? `dip` gem is here to help. The folks at [Evil Martians](https://evilmartians.com/chronicles/ruby-on-whales-docker-for-ruby-rails-development) devised this CLI tool that provides a native-like interaction. Once you have [Docker](https://www.docker.com/) installed and our [repository](https://github.com/forem/forem) cloned:

1. `gem install dip`
1. `dip provision` to build images and download dependencies
1. `dip rails s` to start the server!


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/muipiore2smv40egrddl.gif)

The one downside to this method is that it will still rely on your system's Ruby, but the benefits truly outweigh the cons. To see more commands, run `dip ls`. You are free to use any Code Editor if you go this route (vs being tied to VS Code).

## DIY setup aka bare metal
Setting up manually is **always** an option! If you have a preference or want additional flexibility in the tools for your craft, you are free to set up however you want. Forem does not use dependencies that stray too far off the beaten path, but it won't exactly be trivial if this is your very first Rails app setup. **We are revamping this documentation to make this process even more straightforward, so stayed tuned!**

We hope that offering these options will smoothen the path of your coding journey. Please let us know if you encounter any issues by opening up a bug issue in [our issue queue](https://github.com/forem/forem/issues/new?assignees=&labels=bug&projects=&template=bug_report.md&title=). 

Happy Coding and Happy Hacktoberfest!