Developers, raise your hand if you've ever started a new project by scavenging code from past projects 🙋
We all do it. However, at Polar Labs, we decided to take a fresh perspective to this practice and offer a cleaner alternative we call StarterKits. These StarterKits are templates of technologies we use regularly, so when it comes time to start a new project, we can skip the scavenging and our library of StarterKits let us get straight to the coding.
Our approach allows us to jump into new projects almost instantly with confidence. Each of our StarterKits aims to provide the necessary nuts and bolts of the framework, getting all the plumbing in place from the get-go so we can get started right away on the application. They also utilize our open-source Helm charts to pre-bundle deployment pipelines. You can learn more about our deployment philosophy in [this post].
Ultimately, the goal of StarterKits is to dramatically reduce the time it takes to get a new project off the ground. We also contribute back to the wider open-source community by making our StarterKits available to anyone who might find them useful. We hope that over time, people expand on and contribute back to these kits, fostering a collaborative environment of continuous improvement.
Why open source?
At Polar Labs, we firmly believe in the open-source community. Each of us at Polar Labs has benefited immensely from open-source projects and code throughout our careers, and we see open sourcing our work as a way to pay it forward.
By making our StarterKits available to everyone, we create a collaborative environment where users can not only benefit from these kits but also contribute back, working together to improve them for everyone. This fosters a community-driven approach to development, ensuring that the kits evolve to meet the diverse needs of developers working on a variety of different projects with similar foundations.
Additionally, open sourcing our StarterKits provides extra value for our clients. If their project is StarterKit compatible, we can not only kickstart their project almost immediately, reducing both time and cost, but we can also indirectly continue to provide updates to the software we build for them. They can always pull the latest updates from the open-source version of the StarterKits, ensuring their projects stay up-to-date with new tools and improvements.
We consider open sourcing our StarterKits to be a win-win situation. It allows us to give back to the community, fosters collaboration, and provides tangible benefits to our clients. We're excited to see how the open-source community uses and contributes to these kits, and we look forward to the projects that will emerge as a result.
I'm a Polar Labs client - Does this benefit me?
As a valued Polar Labs client, our StarterKits provide you with several significant advantages:
- Faster project kickoffs: Our StarterKits dramatically reduce the time it takes to get your projects off the ground. By leveraging these pre-built foundations, we can dive straight into the development of your unique features and functionalities, accelerating your time to market.
- Transparency and trust: Our open-source approach fosters transparency. Your engineers have full visibility into our StarterKits, allowing them to assess our coding style, best practices, and overall approach to development. This transparency builds trust and ensures that we're aligned on technical aspects from the very beginning.
- Ongoing updates and support: Even if you're no longer actively working with us, you can still benefit from our commitment to open source. You have access to the latest updates, enhancements, and bug fixes through our public repositories. This means your project can continue to evolve and stay up-to-date even if we're no longer working together directly.
In essence, our open-source approach isn't just about giving back to the community; it's also about providing tangible, long-term benefits to our clients. By choosing Polar Labs, you're not just getting a development partner, you're gaining access to a constantly evolving ecosystem of tools and resources designed to empower your projects for the future.
Why should independent developers embrace StarterKits?
StarterKits can be a helpful tool for developers. They streamline the development process by providing a solid starting point for new projects. Here's how they can benefit you:
- Save time on initial setup: StarterKits provide a pre-built foundation, so you can skip the repetitive tasks of setting up a new project from scratch. This means you can spend more time on the unique aspects of your application.
- Simplify learning new frameworks: Getting started with a new framework can be daunting, but StarterKits make it easier. They come with pre-configured environments optimized for the framework, so you can focus on learning the core concepts instead of getting bogged down in configuration.
- Streamline deployments: StarterKits include a working Dockerfile and Bitbucket Pipelines file for out-of-the-box deployments. Even if you don't use Bitbucket, the file is easily adaptable to other CI/CD tools. This makes it simple to automate your deployment process from the start.
- Dogfooding by design: As active product developers, we're also the target users of our StarterKits. All Polar Labs projects are based on StarterKits, and we actively update them every time we make a fix or upgrade to our own projects that makes sense to merge back into the foundation.
- Continuous updates: While code doesn't expire, dependencies certainly do. All it takes is one new security exploit to make your dependencies list no longer safe to use. However, because we use our own StarterKits regularly, you can always expect us to keep our packages up to date.
By taking care of the basics, StarterKits give you more time and energy to focus on building great software.
Limitations and setting expectations:
These limitations are true as of the date of posting this article, however, as the StarterKits continue to evolve we will update this page with new updates and expectations.
- Issue reporting and fixes: We encourage you to open issues on the GitHub repos for any suggestions or problems you encounter. We do our best to respond and address issues where possible, but we can't promise immediate responses or fixes. The most effective way to contribute is by opening a pull request with your own improvements. We're always happy to review and merge community contributions, making the StarterKits better for everyone.
- Cloud provider support: Currently, our deployment pipeline is optimized for DigitalOcean, where our own projects are hosted. However, we consider our Helm charts to be a StarterKit and as such are open sourced as well. Adapting these charts to other cloud providers should be relatively straightforward, and we strongly encourage you to contribute back any modifications you make to support alternative providers. Over time, we intend to continue updating the StarterKits to broaden cloud provider compatibility.
- CI/CD tool compatibility: Our CI/CD pipeline is based on Bitbucket Pipelines. If you use a different tool, you can convert the Pipelines file to your preferred format such as GitHub Actions or CircleCI. Again, we welcome contributions in the form of pull requests that adapt the CI/CD configuration for various tools, benefiting the wider community using the StarterKits.
Ready to Get Started with a StarterKit?
You can find all of our StarterKit repositories on our GitHub organization profile. We also strive to provide matching tutorials on our website for each StarterKit, but creating those takes time, and we may not always have a tutorial available as soon as a new kit is released. You can find our current tutorials under the tag “Guides” on the Stories page. Each StarterKit also includes a README file with detailed installation instructions to guide you through the installation process.
Ultimately, our goal is to simplify new project workflows to the point where the only thing to do is fork the repository and start writing code! We believe that StarterKits have the potential to greatly reduce the friction to getting new projects off the ground, and we can't wait to see what you create with them!