This repository contains the source code for the PyCon India 2025 website, built with 11ty and Tailwind CSS.
- Node.js (v22 or latest)
- npm
-
Fork and clone the repository:
git clone https://github.com/pythonindia/inpycon2025.git cd inpycon2025
-
Install dependencies:
npm install
-
Start the development server:
npm run serve
-
Open your browser and visit
http://localhost:8080
We welcome contributions from everyone! Here's how you can help:
- Check the issues page for existing tasks
- Feel free to create a new issue if you find a bug or want to suggest an enhancement
- Wait for issue assignment before starting work to avoid duplicate efforts
-
Create a new branch for your changes:
git checkout -b feature/your-feature-name
-
Make your changes following our code style (see below)
-
Commit your changes with meaningful messages:
git commit -m "Add: description of what you've added" git commit -m "Fix: description of what you've fixed" git commit -m "Update: description of what you've updated"
-
Push your changes:
git push origin feature/your-feature-name
-
Create a pull request from your branch to the main repository
src/
: Source files_data/
: Global data files_includes/
: Template partials and components_layouts/
: Page templatescss/
: CSS source filesstatic/
: Static assets (images, css libraries, etc.)
We use a component-based approach with Nunjucks templates:
- Components: Reusable UI elements in
src/_includes/components/
- Layouts: Page templates in
src/_layouts/
- Partials: Reusable page sections in
src/_includes/
- Add your component in
src/_includes/components/your-component.njk
. If your component is limited to a page, add it under that page directory. Keep codebase as modular and reusable as you can. - Use the following template:
{% macro componentName(param1, param2) %}
<div class="your-class-names">
{{ param1 }}
{% if param2 %}
<span>{{ param2 }}</span>
{% endif %}
{{ caller() if caller }}
</div>
{% endmacro %}
- Import and use your component in pages:
{% from "components/your-component.njk" import componentName %}
{{ componentName("value1", "value2") }}
We use Tailwind CSS for styling:
- Use Tailwind utility classes whenever possible
- Custom CSS should be minimal and placed in
src/css/main.css
- Follow the established color scheme and design system:
- Primary colors:
pycon-blue
(#4E62F5),pycon-lime
(#D7FF7B),pycon-purple
(#CD89FF) - Use responsive classes (
md:
,lg:
, etc.) for different screen sizes
- Primary colors:
- Ensure your changes look good on different screen sizes (mobile, tablet, desktop)
- Test in multiple browsers (Chrome, Firefox, Safari, Edge)
- Check performance using Lighthouse in Chrome DevTools
- Ensure your code follows our style guidelines
- Update the README.md with details of changes if necessary
- The PR should work in all browsers and device sizes
- Request reviews from maintainers
- Address any review comments and make necessary changes
- Once approved, a maintainer will merge your PR
- Add screenshots if necessary
- The site is automatically deployed on Netlify
- Preview deployments are generated for pull requests
- Always check the preview deployment link to verify your changes
- If for any reason, you don't see any preview, contact one of the maintainers
The site uses Eleventy (11ty) as a static site generator. Key configuration:
env.js
: Environment-specific configurationsite.json
: Global site metadata- Nunjucks as the primary templating language
Note: To be revised once Tailwind v4 update is done.
Tailwind CSS is configured in tailwind.config.js
:
- Custom colors for the PyCon India brand
- Extended animations and utilities
- JIT mode for development
- Purging unused CSS in production
- Continuous Integration through GitHub Actions
- Continuous Deployment through Netlify
If you need any help or have questions:
- Join our [Zulip/Whatsapp chat platform]
- Ask in the comments of the issue you're working on
- Email the PyCon India organizers at [[email protected]]
Thank you for contributing to PyCon India 2025!