diff --git a/_data/navigation.yml b/_data/navigation.yml
index ef759632..0d0f5715 100644
--- a/_data/navigation.yml
+++ b/_data/navigation.yml
@@ -39,15 +39,10 @@ main:
url: "/blog/index.html"
- title: Events
url: "/events.html"
- - title: Ask a question
- url: "https://pyopensci.discourse.group/"
- icon: "fa-brands fa-discourse"
- title: "Community"
sub-nav:
- title: "Our Community"
url: "/our-community/index.html"
- - title: "Connect with us"
- url: "https://pyopensci.discourse.group/"
icon: "fa-brands fa-discourse"
- title: "Handbook"
icon: "fas fa-external-link-alt"
@@ -57,5 +52,5 @@ main:
- title: "Volunteer"
url: "/volunteer.html"
- title: "Donate"
- url: "https://fnd.us/pyopensci_2024"
+ url: "https://give.communityin.org/pyopensci_2024"
is_button: true
diff --git a/_includes/event_instructors.html b/_includes/event_instructors.html
new file mode 100644
index 00000000..84a522aa
--- /dev/null
+++ b/_includes/event_instructors.html
@@ -0,0 +1,36 @@
+{% if page.instructors %}
+
### *"How could pyOpenSci help you with your science, code, and software?"*
diff --git a/_posts/2025-03-13-python-packaging-security-pypi.md b/_posts/2025-03-13-python-packaging-security-pypi.md
index a5b01a24..60e6f69e 100644
--- a/_posts/2025-03-13-python-packaging-security-pypi.md
+++ b/_posts/2025-03-13-python-packaging-security-pypi.md
@@ -315,7 +315,6 @@ pyOpenSci follows best practices for PyPI publishing using our custom GitHub Act
Follow us on social platforms:
-* [
Discourse](https://pyopensci.discourse.group/)
* [
Mastodon](https://fosstodon.org/@pyopensci)
* [
Bluesky](https://bsky.app/profile/pyopensci.org)
* [
LinkedIn](https://www.linkedin.com/company/pyopensci)
diff --git a/_posts/events/2024-04-29-create-your-first-python-package-pyopensci-online-workshop.md b/_posts/events/2024-04-29-create-your-first-python-package-pyopensci-online-workshop.md
index edc2b49a..72767013 100644
--- a/_posts/events/2024-04-29-create-your-first-python-package-pyopensci-online-workshop.md
+++ b/_posts/events/2024-04-29-create-your-first-python-package-pyopensci-online-workshop.md
@@ -51,4 +51,4 @@ She will also briefly discuss how LLM’s can be used to support tasks such as d
The course will take place on Thursday, April 25th, from 10AM–1PM Mountain time, and use the Spatial Chat platform. Tickets are $10, and can be purchased on [the workshop’s Eventbrite page](https://www.eventbrite.com/e/from-python-code-to-module-tickets-879586546037?aff=oddtdtcreator). The class size is capped at 35, and tickets are selling fast–we hope to see you there!
## Connect with us!
-You can stay up-to-date with all things pyOpenSci by following us on [LinkedIn](https://www.linkedin.com/company/pyopensci) and [Fosstodon](https://fosstodon.org/@pyOpenSci), and you can connect with the broader pyOpenSci community on [our Discourse forum](https://pyopensci.discourse.group/). And if you’re interested in our weekly newsletter where we share news, blog posts, and monthly updates, [subscribe on LinkedIn](https://www.linkedin.com/newsletters/pyopensci-newsletter-7179551305344933888!)
+You can stay up-to-date with all things pyOpenSci by following us on [LinkedIn](https://www.linkedin.com/company/pyopensci) and [Fosstodon](https://fosstodon.org/@pyOpenSci). And if you’re interested in our weekly newsletter where we share news, blog posts, and monthly updates, [subscribe on LinkedIn](https://www.linkedin.com/newsletters/pyopensci-newsletter-7179551305344933888!)
diff --git a/_posts/events/2024-06-25-create-your-first-python-package-scipy-2024.md b/_posts/events/2024-06-25-create-your-first-python-package-scipy-2024.md
index 8793945c..c5ff2987 100644
--- a/_posts/events/2024-06-25-create-your-first-python-package-scipy-2024.md
+++ b/_posts/events/2024-06-25-create-your-first-python-package-scipy-2024.md
@@ -281,4 +281,4 @@ Create environment
##
Connect with pyOpenSci
-Stay up-to-date with all things pyOpenSci by following us on [LinkedIn](https://linkedin.com/company/pyopensci) and [Fosstodon](https://fosstodon.org/@pyOpenSci), and connect with the broader pyOpenSci community on our [Discourse forum](https://pyopensci.discourse.group/). If you’re interested in our weekly newsletter where we share news, blog posts, and monthly updates, [subscribe on LinkedIn](https://www.bit.ly/pyOSNewsletter).
+Stay up-to-date with all things pyOpenSci by following us on [LinkedIn](https://linkedin.com/company/pyopensci) and [Fosstodon](https://fosstodon.org/@pyOpenSci). If you’re interested in our weekly newsletter where we share news, blog posts, and monthly updates, [subscribe on LinkedIn](https://www.bit.ly/pyOSNewsletter).
diff --git a/_posts/events/2026-03-03-course-python-packaging-gen-ai.md b/_posts/events/2026-03-03-course-python-packaging-gen-ai.md
new file mode 100644
index 00000000..9a9da8ae
--- /dev/null
+++ b/_posts/events/2026-03-03-course-python-packaging-gen-ai.md
@@ -0,0 +1,186 @@
+---
+layout: splash
+classes: flowing
+title: "Ship It: Python Packaging in the GenAI Era"
+excerpt: >
+ A trusted 10-day hands-on asynchronous cohort-based course developed by
+ pyOpenSci for Stanford University and the CURIOSS network.
+event:
+ start_date: "2026-04-10"
+ end_date: "2026-04-23"
+ location: Online
+permalink: /events/shipit-python-package-gen-ai-april-2026.html
+header:
+ overlay_image: images/headers/pyopensci-sustainability.png
+categories:
+ - events
+type: "event"
+last_modified: 2026-03-03
+comments: true
+author_profile: false
+intro:
+ - excerpt: "Transform your code into something others can easily install,
+ use, and trust."
+instructors:
+ - name: Leah Wasser
+ github: lwasser
+ bio: >
+ The Executive Director and Founder of pyOpenSci, Leah brings over 20
+ years of experience teaching technical data science topics in the
+ scientific space. pyOpenSci has worked with hundreds of scientific
+ Python package maintainers and has helped over 50 packages improve
+ their structure and distribution through our peer review process.
+ - name: Jeremiah Paige
+ github: ucodery
+ bio: >
+ An open source author, contributor, and speaker, specifically working
+ with Python for over 12 years. He is also a software engineer in the
+ secure supply chain industry during work hours.
+ - name: Inessa Pawson
+ github: inessaPawson
+ bio: Bio coming soon.
+---
+
+{% include feature_row id="intro" type="center" %}
+
+
+
+
+## Everything you need to know
+
+* **When:** Friday, 10 April 2026 – Thursday, 23 April 2026
+* **Where:** Online asynchronous course with live office hours
+
+### Cost
+
+This course was paid for by the Stanford University Open Source
+Program Office (OSPO) and is available to both Stanford OSPO
+researchers and other OSPOs in the CURIOSS network.
+
+Learn more about our partnership with Stanford in this short video:
+[Ship It with Stanford OSPO](https://www.youtube.com/watch?v=9HDAZJS_Wck)
+
+
+
+## About the course
+Learn directly from leaders in the open source space. Featuring hands-on
+activities, expert interviews with Python core developers and scientific Python
+maintainers, and live office hours where you can get help and ask questions,
+this 10-day asynchronous course empowers university researchers and
+practitioners to reliably build and share critical tools.
+
+Developed by pyOpenSci in partnership with the Stanford Open Source Program
+Office (OSPO), this program delivers a trusted, expert-led curriculum that
+guides you through the lifecycle of a modern Python package. You will evolve a
+working script into a tested, documented, and automated package published on
+PyPI.
+
+By participating in this course, you're also joining a vibrant open source
+ecosystem. Expect to work with today’s industry-standard
+tools—including uv,
+Hatch, pytest, and Sphinx—while exploring open-source workflows and learning
+how to use Generative AI critically, thoughtfully, and responsibly.
+
+## What you’ll learn
+
+* Structure a Python package from scratch.
+* Configure your package using pyproject.toml.
+* Build and publish your package to (test) PyPI.
+* Write and run different types of tests using pytest.
+* Automate your development workflows with task runners.
+* Create the core documentation files every package needs.
+* Use AI tools responsibly in your development workflow.
+
+This course is part of pyOpenSci’s **Ship It** curriculum — designed for
+researchers, scientists, and developers who want to build sustainable,
+production-ready open source software.
+
+## Who this course is for
+
+This course is designed for:
+
+* **Researchers, scientists, and postdocs** who write Python code and want to
+ share it
+* **University faculty, staff, and students** looking to teach or adopt modern
+ Python packaging practices
+* **Developers** who are new to open source packaging and want a structured,
+ guided path
+
+*No prior packaging experience is required.* If you are comfortable with Python
+programming and can write a Python function, then you're ready for this course.
+
+## What makes this course different
+
+pyOpenSci's unique advantage is its community. You're not just watching videos;
+you're learning alongside — and from — the people who maintain Python's
+packaging ecosystem.
+
+The course is delivered in a flexible, async format designed for busy
+researchers: each day you’ll discover 10–15 minutes of video content, and
+then you’ll complete a short bite-sized activity. Use the weekend to catch up
+if you fall behind.
+
+
+
+
+
+
+## Course Schedule at a Glance
+
+### Week 0: Setup
+
+The week before the course begins is focused on setup. You can complete the
+course either using GitHub Codespaces or locally on your computer.
+
+### Week 1: Foundation & Structure
+
+* Day 1 — Create and
+ run your package
+* Day 2 — Metadata and
+ dependencies: the pyproject.toml file
+* Day 3 — Build and publish
+ your package
+* Day 4 — Introduction to
+ testing
+* Day 5 — Live office
+ hours: show up, ask questions, get help.
+
+### Week 2: Task runners, GenAI & Documentation
+
+* Day 6 — Automate your
+ workflows: task runners and environments
+* Day 7 — GenAI to support
+ your workflows
+* Day 8 — Documentation that
+ matters most to build your community and maintainer team
+* Day 9 — Office
+ hours & wrap up
+
+
+
+
+
+
+### What you'll walk away with
+
+- **Complete Package Template:** Ready-to-use project structure
+- **Automation Workflows:** GitHub Actions for testing and publishing
+- **Quality Checklists:** Never miss important packaging steps
+- **Publishing Guide:** Step-by-step instructions for secure PyPI deployment
+ using GitHub Actions
+
+### Pre-requisites
+
+To successfully follow along in this workshop, you should:
+
+* Know how to write Python code
+* Understand how to write and use Python functions
+* Have a free GitHub account. You can work using GitHub Codespaces during this
+ workshop, and setting up this account is free if you don't already have one.
+* Have internet access to access the course materials and tools.
+
+### Your instructors & helpers
+
+{% include event_instructors.html %}
+
+
diff --git a/_sass/minimal-mistakes/_pyos-cards.scss b/_sass/minimal-mistakes/_pyos-cards.scss
index 35e7f67e..0a78a59f 100644
--- a/_sass/minimal-mistakes/_pyos-cards.scss
+++ b/_sass/minimal-mistakes/_pyos-cards.scss
@@ -397,7 +397,7 @@
// Text elements: semantic selectors with padding
h4.person_name {
- padding: 0 1em;
+ padding: 0;
margin-top: 0.6em;
margin-bottom: 0;
font-size: 1.4rem;
@@ -449,3 +449,110 @@
}
}
}
+
+/* ==========================================================================
+ EVENT INSTRUCTORS (front matter + include)
+ ========================================================================== */
+
+.event-instructors {
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+.event-instructors__grid {
+ grid-template-columns: 1fr !important;
+}
+
+.event-instructor {
+ .people-card__content {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ gap: 1.25rem;
+ text-align: left;
+
+ .event-instructor__avatar {
+ flex-shrink: 0;
+ width: 160px;
+ min-width: 160px;
+ padding: 0 20px;
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ img {
+ width: 120px;
+ height: 120px;
+ border-radius: 50%;
+ object-fit: cover;
+ }
+ }
+
+ .event-instructor__text {
+ flex: 1;
+ min-width: 0;
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ }
+
+ .person_name {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+ flex-wrap: wrap;
+ gap: 0.35em;
+ text-align: left;
+ margin-left: 0;
+ margin-right: 0;
+
+ .event-instructor__github-link {
+ opacity: 0.7;
+ font-size: 0.9em;
+
+ &:hover {
+ opacity: 1;
+ }
+ }
+ }
+
+ .event-instructor__bio {
+ padding: 0;
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-size: 0.9rem;
+ line-height: 1.5;
+ text-align: left;
+ }
+ }
+}
+
+@media screen and (max-width: $small) {
+ .event-instructor .people-card__content {
+ flex-direction: column;
+ align-items: center;
+ text-align: center;
+
+ .event-instructor__avatar {
+ width: auto;
+ min-width: 0;
+ padding: 0;
+ }
+
+ .event-instructor__text {
+ align-items: center;
+ text-align: center;
+ }
+
+ .person_name {
+ justify-content: center;
+ text-align: center;
+ }
+
+ .event-instructor__bio {
+ text-align: center;
+ }
+ }
+}