Projects is an open-source Jekyll website template by the coala community that turns project ideas written in markdown into a searchable, filterable directory for mentorship and student outreach programs such as Google Summer of Code (GSoC) and Google Code-in (GCI).
What is Projects?
Projects is a static website generator built on Jekyll and Ruby, with an AngularJS-powered front end that displays the project listings. Its input is a set of markdown files defining projects and FAQs, stored in the _projects and _faq folders; its output is a static site (live example at projects.coala.io) that students can browse, search, and filter.
Key Features
- Markdown-based project definitions — Mentors write each project as a markdown file with a defined structure in
_projects, ensuring all required points are covered. - Search and filter — Students can search and filter the project list, making it easier to find relevant ideas than a long static page.
- Automatic mentors list — The mentor list is generated from the projects, eliminating the need to maintain a separate mentors file.
- Multi-language support — Translations live in
data/localefolders with per-languageprojects.jsonandfaq.json; new languages are registered inresources/js/app.js. - FAQ management — Users add FAQs by writing a markdown file in
_faqwith a question in the front matter and the answer in the body. - Jekyll static output — Runs via
bundle exec jekyll serve, outputs static HTML/CSS/JS, and is deployable to services like Netlify (listed in the project topics). - Built for GSoC, theses, and GCI — The project explicitly welcomes upstream changes to make it generic for other organizations and initiatives.
Who is it for?
- Open-source organizations running GSoC or GCI — Advertise project ideas to students in a structured, filterable format instead of a plain wiki page.
- Mentors and program admins — Define and iterate on project ideas using a proper review process, and get a mentors list generated automatically from project metadata.
- Students looking for projects — Browse and filter a curated list of proposed projects, then see full details only when needed.
What can you do with it?
- Program coordinators: Describe each project as a markdown file and instantly get a polished, filterable project website for their cohort.
- Localization contributors: Add a new language by creating a translation folder under
data/localeand copying the JSON metadata and markdown content from an existing translation (e.g., Bahasa or Hindi). - Hackathon or thesis organizers: Reuse the same project-listing workflow for research theses or other initiatives, since the site explicitly supports non-GSoC use.
How does it work?
- Install asdf-vm, then Ruby, then Jekyll and Bundler via
gem install jekyll bundler. - Clone the repository from
https://github.com/coala/projects.git. - Run
bundle installthenbundle exec jekyll serveand open127.0.0.1:4000orlocalhost:4000in your browser. - Add project definitions as markdown files in
_projects, and FAQs in_faq; the site regenerates on save.
FAQ
How do I add a project?
Create a markdown file in _projects following the structure shown in the sample definition at _projects/example.md. The format lets the site parse the project title, mentor, description, and other fields into structured data.
How do I add a FAQ?
Create a markdown file in _faq with a Question front matter field and the answer in the body. The site will display it in the FAQ section.
Which languages are supported?
The site ships with English plus Bahasa and Hindi translations in data/locale. To add a new language, follow the steps in the Multi Language Support section: create a folder under data/locale, add faq.json and projects.json, and register the language in resources/js/app.js.







