First off, thank you for considering contributing to the Open Neuromorphic (ONM) website! We're thrilled you're here and appreciate you taking the time to help us grow. This is a community-driven project, and every contribution, no matter how small, is valuable.
This document provides guidelines for contributing to the ONM website. Please read it carefully to ensure a smooth and effective collaboration process.
Before you start, please read our Code of Conduct. We expect all contributors to adhere to it in all interactions with the project.
- Ways to Contribute
- Finding a Task: The Mission Board
- Getting Started: Local Development Setup
- How to Submit Changes
- Content Contribution Guide
- Image Guidelines
- Style and Coding Guidelines
There are many ways to contribute to the ONM website:
- Reporting Bugs: If you find a bug on the site, please report it in our GitHub Issues.
- Suggesting Enhancements: Have an idea for a new feature or an improvement? Open an issue to start a discussion.
- Adding Content: Contribute a blog post, add a new neuromorphic hardware or software entry, or update an existing page.
- Improving Code: Help us improve the website's templates, styles, or functionality.
For a more user-friendly overview of how to get involved with the community, please visit our Getting Involved page.
If you're looking for high-impact ways to contribute to the broader open-source neuromorphic ecosystem, a great place to start is our Mission Board. This page lists critical "help wanted" issues from key projects in our community, offering a direct path to making a meaningful contribution.
To work on the website locally, you'll need to set up a development environment.
- Hugo (Extended version):
0.147.7or later. - Node.js:
22.16.0or later (which includesnpm). - Go:
1.24.3or later.
-
Fork and Clone the Repository: First, fork the repository to your own GitHub account, then clone it to your local machine.
git clone https://github.com/YOUR_USERNAME/open-neuromorphic.github.io.git cd open-neuromorphic.github.io -
Install Dependencies: This project uses
npmto manage development tools like Tailwind CSS.npm install
-
Run the Development Server: This command starts Hugo's local server, which will watch for changes and automatically refresh your browser.
npm run dev
The site will be available at
http://localhost:1313/.
Use GitHub Issues to report bugs or suggest new features. Please provide as much detail as possible, including steps to reproduce for bugs.
All code and content changes should be submitted via a Pull Request (PR).
-
Create a Branch: Create a new branch from
mainfor your changes. Use a descriptive name likefeature/new-hardware-pageorfix/mobile-menu-bug.git checkout -b feature/your-feature-name
-
Make Your Changes: Edit or add files as needed.
-
Commit Your Changes: Write clear, concise commit messages. See our Commit Message Guidelines.
git commit -m "feat(hardware): Add page for Intel Loihi 2" -
Push to Your Fork:
git push origin feature/your-feature-name
-
Open a Pull Request: Go to the original repository on GitHub and open a Pull Request from your forked branch to the
mainbranch. Provide a clear title and description for your PR. If it resolves an existing issue, link it usingCloses #issue-number.
Adding new content is one of the best ways to contribute. We use Hugo's archetypes to ensure new content has the correct structure. This is especially useful for AI assistants creating content, as the archetypes serve as self-documenting templates.
This table provides the exact commands for creating common content types.
| Content Type | Archetype Command | Location |
|---|---|---|
| Blog Post | hugo new blog/your-post-slug/index.md |
content/blog/your-post-slug/ |
| Workshop | hugo new workshops/your-event-slug/index.md |
content/workshops/your-event-slug/ |
| Student Talk | hugo new neuromorphic-computing/student-talks/your-talk-slug/index.md |
content/neuromorphic-computing/student-talks/your-talk-slug/ |
| Hacking Hour | hugo new neuromorphic-computing/software/hacking-hours/your-session-slug/index.md |
content/neuromorphic-computing/software/hacking-hours/your-session-slug/ |
| Hardware Page | hugo new neuromorphic-computing/hardware/manufacturer-chip/index.md |
content/neuromorphic-computing/hardware/manufacturer-chip/ |
| Software Page | hugo new neuromorphic-computing/software/snn-frameworks/software-name/index.md |
content/neuromorphic-computing/software/snn-frameworks/software-name/ |
| Contributor | hugo new contributors/full-name-slug/index.md |
content/contributors/full-name-slug/ |
| Initiative | hugo new neuromorphic-computing/initiatives/your-initiative-slug/index.md |
content/neuromorphic-computing/initiatives/your-initiative-slug/ |
- Use Archetypes: Always create new content with
hugo new <path>if possible. If you are creating a file manually, copy the relevant file from thearchetypes/directory to use as a template. - Draft Status: New content is created with
draft: true. This prevents it from being published. When your content is ready, change this todraft: false. - SEO is Key:
title: 50-60 characters. Make it descriptive and keyword-rich.description: 120-160 characters. This is the summary shown in search engine results.
- Create the file: (template: archetypes/blog.md)
hugo new blog/your-post-title-slug/index.md
- Location:
content/blog/your-post-title-slug/index.md - Front Matter: Fill in the
title,description,author, andimage(for the banner). Remember to addimage_attributionif the banner image requires credit. - Images: Place images for the post inside the
content/blog/your-post-title-slug/directory.
Events like workshops, student talks, and hacking hours share a similar structure.
- Create the file: Use the appropriate command from the cheat sheet.
- Workshop (template: archetypes/workshops.md)
- Student Talk (template: archetypes/student-talks.md)
- Hacking Hour (template: archetypes/hacking-hours.md)
- Front Matter: Fill in all event-specific fields:
title,author,date(event date),start_time,end_time,time_zone,upcoming,video(add YouTube ID after the event),image,speaker_photo, andspeaker_bio.
- Create the file: Use the appropriate command from the cheat sheet.
- Hardware (template: archetypes/neuromorphic-hardware.md)
- Software (template: archetypes/neuromorphic-software.md)
- Front Matter: Follow the structure in the respective archetype. These pages have detailed front matter for specifications.
- Images: Place logos and product images inside the new directory.
To link content to an author, a contributor profile is required.
- Create the file: (template: archetypes/contributors.md)
The slug should be the person's name, lowercase and hyphenated (e.g.,
hugo new contributors/full-name-slug/index.md
jens-e-pedersen). - Front Matter:
- The
titlefield must be the person's full name. This exact string is used to link them from theauthorfield in other content. - Add a profile
image(square) andsociallinks.
- The
- Placement: For content-specific images (banners, figures, speaker photos), place them inside the page bundle directory (e.g.,
content/blog/my-post/). - Global Images: For general site images, use the
static/images/directory. - Dimensions:
- Banners / Open Graph (OG) Images: 1200x630px.
- Profile / Speaker Photos: Square (e.g., 200x200px).
- OG Images: The site automatically generates Open Graph images for social sharing based on the page's
titleanddescription. Providing a high-qualityimagein the front matter (1200x630px) will override the generated one for that page.
- Templates: Hugo templates are located in
layouts/. - Styling: We use Tailwind CSS. Custom styles are in
assets/scss/. - JavaScript: Custom scripts are in
assets/js/main.js.
Please follow a conventional commit format to keep the history clean and understandable.
feat: A new feature (e.g.,feat(search): Add live search functionality).fix: A bug fix (e.g.,fix(css): Correct mobile menu alignment).docs: Documentation-only changes (e.g.,docs: Update contribution guide).style: Code style changes (e.g.,style: Format SCSS files).refactor: Code changes that neither fix a bug nor add a feature.content: For adding or updating content (e.g.,content(blog): Add post on hardware trends).chore: Build process or tooling changes (e.g.,chore: Upgrade Tailwind CSS to v3.4).
If you're looking for high-impact ways to contribute to the broader open-source neuromorphic ecosystem, a great place to start is our Mission Board. This page lists critical "help wanted" issues from key projects in our community, offering a direct path to making a meaningful contribution.
Thank you again for your interest in contributing. We look forward to your pull requests!