When a project is open source, that means anybody can view, use, modify, and distribute your project for any purpose. These permissions are enforced through an open source license.
To understand how it works, imagine your friend is having a potluck, and you bring a cherry pie.
- Everybody tries the pie (use)
- The pie is a hit! They ask you for the recipe, which you provide (view)
- One friend, Alex, who’s a pastry chef, suggests reducing the sugar (modify)
- Another friend, Lisa, asks to use it for a dinner next week (distribute)
- Collaboration: Open source projects can accept changes from anybody in the world. Exercism, for example, is a programming exercise platform with over 350 contributors.
- Adoption and remixing: Open source projects can be used by anyone for nearly any purpose. People can even use it to build other things. WordPress, for example, started as a fork of an existing project called b2.
- Transparency: Anyone can inspect an open source project for errors or inconsistencies. Transparency matters to governments like Bulgaria or the United States, regulated industries like banking or healthcare, and security software like Let’s Encrypt.
One of open source’s biggest draws is that it does not cost money. “Free of charge”, however, is a byproduct of open source’s overall value.
Generally speaking, you should open source your project when you feel comfortable having others view, and give feedback on, your work.
No matter which stage you decide to open source your project, every project should include the following documentation:
An open source license guarantees that others can use, copy, modify, and contribute back to your project without repercussions. It also protects you from sticky legal situations. You must include a license when you launch an open source project.
- README
- What does this project do?
- Why is this project useful?
- How do I get started?
- Where can I get more help, if I need it?
For more inspiration, try using @PurpleBooth’s README template to write a complete README.
A CONTRIBUTING file tells your audience how to participate in your project. For example, you might include information on: * How to file a bug report (try using issue and pull request templates) * How to suggest a new feature * How to set up your environment and run tests
In addition to technical details, a CONTRIBUTING file is an opportunity to communicate your expectations for contributions, such as: * The types of contributions you’re looking for * Your roadmap or vision for the project * How contributors should (or should not) get in touch with you
Finally, a code of conduct helps set ground rules for behavior for your project’s participants. This is especially valuable if you’re launching an open source project for a community or company
Pick a name that is easy to remember and, ideally, gives some idea of what the project does.
Congratulations on open sourcing your first project. No matter the outcome, working in public is a gift to the community. With every commit, comment, and pull request, you’re creating opportunities for yourself and for others to learn and grow.
This is a template for making fun Twitter bots with Glitch and the Twit node.js library. For a bit more advanced version of this starter project see twitterbot-advanced.
- Create a new Twitter account and a new Twitter app. (See how.)
- Update the
.env
file with your Twitter API key/secrets and change theBOT_ENDPOINT
(it could just be random letters). - Update
server.js
with some cool Twitter bot code. (Make sure your bot follows Twitter's rules and is overall not a jerk.) - Set up a free service (cron-job.org, Uptime Robot, or a similar one) to wake up your bot every 25+ minutes and tweet. Use
https://YOUR_PROJECT_NAME.glitch.me/BOT_ENDPOINT
as a URL to which to send the HTTP request.
The included example tweets out "hello world 👋". Check out the Twit module documentation for more examples of what your bot can do.
You can find more tutorials and open source Twitter bots on Botwiki. Be sure to join Botmakers and submit your bot to Botwiki :-)
For more bot starter projects on Glitch, check out the official Botwiki page on Glitch.
🙇