In-person Hackathon and Design Dialog 2025

Events

On August 13-14 in Berkeley CA, a group of ~25 dedicated geospatial professionals had a meeting of the minds. We worked together on code, design, and big-picture strategy!

Author

GeoJupyter Hackathon participants (see below)

Published

September 3, 2025

When 25 geospatial professionals gathered in Berkeley for a 2-day intensive hackathon event, we didnโ€™t just write code, we reimagined what JupyterGIS could become.

A group photo of the in-person hackathon participants

A group photo of the in-person hackathon participants

๐ŸŒˆ With backgrounds and skills all over the spectrum, everyone had something to teach and something to learn, creating a multiplier effect where our diversity amplified each otherโ€™s contributions.

Four distinct working groups quickly emerged:

Each team made valuable contributions and wrote a summary of their activities:

๐Ÿ—๏ธ Development infrastructure team

  • Worked together to set up development environments for the first time

  • Explored using devcontainers to reduce startup burden for new contributors

    This is an interoperable development container that automates the dev environment setup for JupyterGIS development. It works both on Hub infrastructure and on VSCode / Codespaces without any additional tinkering! This means that users, regardless of their host OS, can build and iterate on JupyterGIS either locally (using Docker or Docker + VSCode) or in the cloud (on managed Hub infrastructure or GitHub codespaces). A byproduct of this work was the development of a Dev Container Feature that provides a way for Jupyter-based images to play nice with devcontainer-based tools without fuss, something I have been annoyed with for some time.

  • Discussed the potential of using a JupyterHub for developing on JupyterLab extensions

๐Ÿ“š Documentation team

Our hackathon topic brought together a diverse set of backgrounds and personas of potential JupyterGIS users to test out and improve existing documentation and tutorials. Several pull requests, bug reports and feature suggestions were created and the JupyterGIS project gained another 9 testers. Repeating this experiment by giving this task to different types of user working groups is one great way to help build a roadmap and envision the future of this project.

  • Tested JupyterGIS and reported bugs (#869)
  • Suggested new features (#871, #876)
  • Updated the structure of the JupyterGIS examples with a โ€œguided tourโ€ feel (#872, #878 #875)
  • Tested JupyterGIS tutorials for accuracy and clarity, and submitted fixes (#873)
  • Reviewed documentation prose and inline documentation (like docstrings) for clarity and errors, and submitted fixes! (#874, #867, #868, #873, #864)

๐Ÿ Python API ergonomics team

We worked on getting data out of the map layer, manipulating the data and making updates to the map. We showed this was possible through two different workflows: toggling layer visibility and getting GeoJSON from the layer source and turning it into a geopandas object.

Please see #877 for this teamโ€™s prototype!

๐Ÿ—บ๏ธ Strategy team

We followed a detailed user story focused on biodiversity and identified some gaps and opportunities. We thought about what problems JupyterGIS should and should not try to solve and identified overlap with things Notebooks are good at and many researchers are comfortable doing in Notebooks โ€“ analysis. By focusing more on visualization, an area where many practitioners already struggle and a reason they open QGIS, we feel we can more quickly deliver a product that can be used in daily work. We also identified a robust STAC search implementation and GUI as something alternatives do not excel at, and a possible โ€œkiller featureโ€.

  • What should JupyterGIS be? What should JupyterGIS not be?
    • Should focus on the areas where users need the most help. For example, visual exploration is the most broadly-reported challenge.
    • Should not focus on drawing users away from Jupyter Notebook analysis workflows that are working for them and are well-served by Notebooks. For example, providing utilities in the visual environment that serve Notebook workflows: drawing or calculating areas of interest and moving those back over to the Notebook, synchronizing changes in Python data objects over to the map. Not trying to reimplement the QGIS/ArcGIS model builders unless we have a strong value-add.

    A Venn diagram illustrating overlap with Jupyter Notebooks
  • Why do people leave QGIS?
    • Scaling analyses or performing analysis on big datasets
    • Repeatability & reproducibility with a Notebook or script
  • Why do people come back to QGIS?
    • Exploring results
    • Making a map to share or tell a story

โค๏ธ Thank you ๐Ÿ™‡

Thank you so much to our wonderful hackathon participants for bringing a collaborative energy and creating a supportive atmosphere that made it fun and safe to take on hard problems!

Infinite thanks to our fantastic team of facilitators from the Berkeley Institute for Data Science (BIDS) and the Schmidt Center for Data Science and Environment (DSE) who curated equipment and a comfortable environment, solved problems, provided delicious caffeine and meals, expertly facilitated discussions, and more.

Finally, thanks to the Berkeley Institute for Data Science (BIDS) for hosting us at their wonderful AI Futures Lab space on day 1! What a view ๐Ÿคฉ ๐ŸŒ‰

๐Ÿ“ฃ Call to join the community

We want to work with ๐Ÿซต you! With your collaboration, we can build less frustrating and more joyful and rewarding ways of working with geospatial data. Hereโ€™s how:

๐Ÿ“– Share a story about a workflow that needs improvement!

๐Ÿ“† Join a hackathon or community meeting!

๐Ÿ—จ๏ธ Chat with us on Zulip!

๐Ÿงช Try JupyterGIS! Where does it (not) meet your needs?

๐Ÿ˜Ž Share your rad vibes and leadership!

๐Ÿ’Œ Get in touch with our community manager: Zulip, GitHub, email


This post co-created by hackathon participants: Arjun Verma, Brianna Pagan, Brookie Guzder-Williams, Ciera Martinez, Fernando Pรฉrez, James Colliander, Jason Grout, Jon Atkins, Kevin Koy, Kirstie Whitaker, Kristin Davis, Lucia Layritz, Maryam Hosseini, Maryam Vareth, Matt Fisher, Maxwell Taniguchi-King, Maya Weltman-Fahs, Maya Zomer, Michele Tobias, Min RK, Nick Gondek, Qiusheng Wu, Shane Grigsby, Stace Maples, Tyler Marino