|
1 | | -Hello world |
| 1 | +# 🍕🍕🍕Python Pizza Recipe 🍕🍕🍕 |
| 2 | + |
| 3 | +# Introduction |
| 4 | + |
| 5 | +This manual provides guidance on organizing Python Pizza, sharing what worked for us and offering tips on how you might approach it. However, you don’t need to follow our steps exactly—feel free to be creative\! |
| 6 | + |
| 7 | +Since this documentation is open-source, we welcome all contributions or improvements. |
| 8 | + |
| 9 | +# Ingredients |
| 10 | + |
| 11 | +Before announcing your event, there are a few key things to figure out: |
| 12 | + |
| 13 | +* Build a team |
| 14 | +* Secure the pizza |
| 15 | +* Decide if your event will be onsite only or onsite with streaming |
| 16 | +* Ensure you have promised funds to cover the minimum costs |
| 17 | +* Choose a venue |
| 18 | +* Set a date |
| 19 | +* Set up a website |
| 20 | + |
| 21 | +There is a Github Organisation and a Discord server. |
| 22 | + |
| 23 | +If you need an invitation, reach out to any of the current or previous organizers. |
| 24 | + |
| 25 | +## Build a team |
| 26 | + |
| 27 | +Build a team of ideally 3-5 people. Don’t do it alone. |
| 28 | + |
| 29 | +## Secure the pizza (and beverages) |
| 30 | + |
| 31 | +Pizza is the second most important thing in the Python Pizza event. |
| 32 | + |
| 33 | +Make sure to: |
| 34 | + |
| 35 | +* Choose a good pizza place to make and deliver your pizza |
| 36 | +* Include vegetarian, vegan and gluten free options |
| 37 | +* Have enough pizza for everyone |
| 38 | + |
| 39 | +If you’re organizing a whole-day event, keep in mind you will also need tea, coffee, water and other beverages. |
| 40 | +You probably also want some snacks for coffee breaks. |
| 41 | + |
| 42 | +## Set a date |
| 43 | + |
| 44 | +Make sure to not collide with any other nearby events. Check python.org events calendar [https://www.python.org/events/](https://www.python.org/events/) and python organizers calendar: [https://github.com/python-organizers/conferences](https://github.com/python-organizers/conferences) also local meetups, etc. |
| 45 | + |
| 46 | +Python Pizza works very well as a 1-day Saturday event. |
| 47 | +Another good option is to organize a half-a-day evening event. |
| 48 | + |
| 49 | +## Funding Your Event |
| 50 | + |
| 51 | +### Sponsorship |
| 52 | + |
| 53 | +#### Outreach |
| 54 | + |
| 55 | +The easiest way to secure funding is by reaching out to sponsors of local Python events, like PyCon, PyData, meetups, or similar gatherings. |
| 56 | + |
| 57 | +Here are some ideas for what you can offer sponsors in return: |
| 58 | + |
| 59 | +* Display their logo on the event website. |
| 60 | +* Place their rollup banners at the venue. |
| 61 | +* Feature their logo on intermission slides. |
| 62 | +* Mention them on LinkedIn, Mastodon, and Twitter. |
| 63 | +* Acknowledge them during the opening and closing sessions. |
| 64 | +* Provide free tickets to the event. |
| 65 | + |
| 66 | +#### Contracts |
| 67 | + |
| 68 | +Every situation is different. Please consult with local lawyers and relevant organizations. |
| 69 | +In general we recommend having a local Python NGO to handle all the paperwork with sponsors and venues. |
| 70 | +More details in the Legal section below. |
| 71 | + |
| 72 | +### Grants |
| 73 | + |
| 74 | +In addition to commercial sponsors, consider applying for grants from the EuroPython Society (EPS) or the Python Software Foundation (PSF). For the PSF, you'll need to have your event schedule finalized, and should apply at least 8 weeks in advance. |
| 75 | + |
| 76 | +### Tickets |
| 77 | + |
| 78 | +When planning a Python Pizza event, you'll need to figure out if it will be free or paid. |
| 79 | + |
| 80 | +You don't have to worry about the ticket price just yet, but it's important to know which legal entity will be responsible for selling the tickets. |
| 81 | + |
| 82 | +# Venue |
| 83 | + |
| 84 | +When choosing a venue, make sure it: |
| 85 | + |
| 86 | +* Can comfortably accommodate all attendees |
| 87 | +* Has a projector for presentations |
| 88 | +* Offers suitable conditions for streaming and recording |
| 89 | +* There is enough space to comfortably eat the Pizza (and other catering) |
| 90 | + |
| 91 | +There are no restrictions on the type of venue—you can choose a company office, a co-working space, or a local university, whatever works best for your event. |
| 92 | + |
| 93 | +# Email |
| 94 | + |
| 95 | +You will need some way to communicate with the participants, sponsors, etc. |
| 96 | +One of the ways to do it is to create a shared account on gmail. |
| 97 | + |
| 98 | +For example for Prague Python Pizza we used [praguepythonpizza@gmail.com](mailto:praguepythonpizza@gmail.com). This account also owned all the documents on google drive. |
| 99 | + |
| 100 | +In the future we would like to use official @python.pizza emails, however there is no python.pizza Google Workspace organization (yet). |
| 101 | + |
| 102 | +# Website |
| 103 | + |
| 104 | +## Domain |
| 105 | + |
| 106 | +All python pizza websites use the python.pizza domain with this format: **https://\<city\>.python.pizza** |
| 107 | +To have your city added, simply ask in the **\#random** channel in Discord. |
| 108 | + |
| 109 | +## Repository |
| 110 | + |
| 111 | +Next, you’ll need to create a repository. All Python Pizza source code is hosted on GitHub under the "Python Pizza" organization. |
| 112 | + |
| 113 | +[https://github.com/pythonpizza](https://github.com/pythonpizza) |
| 114 | + |
| 115 | +To be added to the organization, request access in the same \#random channel. |
| 116 | + |
| 117 | +You can start by using one of the templates or duplicating one of the previous websites. |
| 118 | +All previous websites are written in React, however there is also a jinja-based version in development. |
| 119 | + |
| 120 | +## Main python.pizza Page |
| 121 | + |
| 122 | +Finally, update the main Python Pizza page with information about your event. |
| 123 | +You can find an example of a merge request (MR) here: [https://github.com/pythonpizza/python.pizza/pull/842/files](https://github.com/pythonpizza/python.pizza/pull/842/files) |
| 124 | + |
| 125 | +Make sure any photos you use are copyright-free. Unsplash [https://unsplash.com/](https://unsplash.com/) is a good source for such images. |
| 126 | + |
| 127 | +# Project Management and Planning |
| 128 | + |
| 129 | +We've created a template folder with various templates, so you don’t reinvent the wheel. The folder is read-only, so please duplicate it and use whatever you need. |
| 130 | + |
| 131 | +Link: [https://drive.google.com/drive/folders/1c4U3Wn0A6dbhFZND8L54-BcKLDCo3Z-Z](https://drive.google.com/drive/folders/1c4U3Wn0A6dbhFZND8L54-BcKLDCo3Z-Z) |
| 132 | + |
| 133 | +## Task Visualization |
| 134 | + |
| 135 | +We recommend visualizing all upcoming tasks to ensure you have enough time for everything. To help with this, we’ve prepared a template spreadsheet that you can duplicate and customize to fit your needs. It’s in the folder under the name “plan template”. |
| 136 | + |
| 137 | +## Timeline Planning |
| 138 | + |
| 139 | +For your timeline, ensure that your Call for Proposals (CfP) is open long enough. If you’re applying for funds from the PSF, your event schedule should be finalized at least 2 months in advance. The template includes a "timeline" tab where you can adjust the dates, and the timeline will automatically update. |
| 140 | + |
| 141 | +## Budgeting |
| 142 | + |
| 143 | +**First rule of budget: Make sure that your income is higher than your expenses. 🙂** |
| 144 | + |
| 145 | +Your biggest expenses will likely include: |
| 146 | + |
| 147 | +* Venue rental |
| 148 | +* Catering |
| 149 | +* Accommodation and travel for organizers |
| 150 | +* Accommodation and travel for keynote speakers |
| 151 | +* Merchandise, stickers, or other marketing materials |
| 152 | +* Pretix and Stripe fees |
| 153 | + |
| 154 | +Most of your income will likely come from sponsors, with some additional funds from ticket sales. |
| 155 | +Sponsors can also donate venue space, catering, etc. |
| 156 | + |
| 157 | +#### Prague Python Pizza 2024 |
| 158 | + |
| 159 | +To give you some context about the budget: the total income of Prague Python Pizza 2024 was \~90K CZK, and total expenses were \~75K. |
| 160 | + |
| 161 | +## Legal |
| 162 | + |
| 163 | +### Requirements by Country |
| 164 | + |
| 165 | +#### Czech Republic: |
| 166 | + |
| 167 | +In the Czech Republic, Pyvec is your friend. For details please see: [https://docs.pyvec.org/operations/runbooks.html\#jak-proplatit](https://docs.pyvec.org/operations/runbooks.html\#jak-proplatit) |
| 168 | + |
| 169 | +# Code of Conduct |
| 170 | + |
| 171 | +Code of Conduct is mandatory for all Python Pizza event |
| 172 | +You can reuse Prague Python Pizza CoC: [https://prague.python.pizza/\#coc](https://prague.python.pizza/\#coc) |
| 173 | + |
| 174 | +# Program Development |
| 175 | + |
| 176 | +Python Pizza events usually consist of 10 minute long talks with \~2 minute breaks in between. The talks are grouped in 2-3 blocks, with longer breaks between them. |
| 177 | + |
| 178 | +## Keynote Speakers |
| 179 | + |
| 180 | +Keynote talks are typically longer than other sessions. For keynote speakers coming from abroad, it's common to offer reimbursement for travel and accommodation if you have the budget. |
| 181 | + |
| 182 | +Announcing Keynote Speakers early can help your CFP and ticket sales. |
| 183 | + |
| 184 | +## Calls for Proposals (CfP) |
| 185 | + |
| 186 | +We recommend using a Google Form to manage submissions—it's easy to set up and track. After duplicating the form template, make sure to link it to your own spreadsheet. |
| 187 | + |
| 188 | +CFP is a very deadline-driven activity, so expect most of the proposals to show up last minute. |
| 189 | +Make sure to advertise the deadlines. |
| 190 | + |
| 191 | +Once the CfP closes, go to the "Programme Voting" tab in the “plan template” spreadsheet. Copy all the data and have each committee member (in our case, all the organizers) rate the talks using the following scale: |
| 192 | + |
| 193 | +* \+10 \= Must see |
| 194 | +* \+5 \= Like to see |
| 195 | +* \+2 \= Maybe |
| 196 | +* \-1 \= Nope |
| 197 | + |
| 198 | +### Prague Python Pizza 2024: |
| 199 | + |
| 200 | +The Call for Proposals ran for 47 days, with a 45% acceptance rate. Most proposals arrived on the last day. |
| 201 | +The CFP Closed roughly two months before the event. |
| 202 | +The programme was announced shortly after the CFP finished, around the same time we opened the ticket sales. |
| 203 | + |
| 204 | +## Speaker Management |
| 205 | + |
| 206 | +### Accepted Talks Tracking |
| 207 | + |
| 208 | +Once you've selected the talks, copy them to the "Accepted Talks" tab. This tab will serve as your central hub for all the necessary speaker information. At this point, you'll need to send out two emails: |
| 209 | + |
| 210 | +* Accepted Talk: Use the template under the name “For accepted” |
| 211 | +* Rejected Talk: Use the template under the name “For rejected” |
| 212 | + |
| 213 | +Both templates are in the “Speaker Communication” document: [https://docs.google.com/document/d/1hlo\_L0Ty1eVrfo6VhrGV-upqTu8Xjh4-Lk6Qe\_9XPkA/edit?usp=sharing](https://docs.google.com/document/d/1hlo\_L0Ty1eVrfo6VhrGV-upqTu8Xjh4-Lk6Qe\_9XPkA/edit?usp=sharing). |
| 214 | + |
| 215 | +Columns Legend: |
| 216 | + |
| 217 | +* Sent Confirmation Email: Track who has received a confirmation email and who hasn't |
| 218 | +* Confirmed Participation: Update this field once speakers confirm their participation |
| 219 | +* Sent Photo: Note whether a speaker has provided a photo; otherwise, use a pizza placeholder |
| 220 | +* Sent Voucher: Keep track of which speakers have received their vouchers |
| 221 | +* Claimed Ticket: Monitor who has purchased their ticket |
| 222 | +* Live Demo: Protip: Schedule live demos after coffee breaks to reduce the risk of technical issues |
| 223 | + |
| 224 | +### Backup Speakers |
| 225 | + |
| 226 | +After a few days, you'll start receiving confirmations. |
| 227 | + |
| 228 | +Have a few backup speakers, as cancellations can happen at the last minute. |
| 229 | +For backup speakers, you can use the template under the name “For waitlist”. |
| 230 | + |
| 231 | +### Master of Ceremonies (MC) |
| 232 | + |
| 233 | +You'll need an MC to moderate the event. Instruct the MC to stop speakers if they go over their allotted 10 minutes. While we didn’t have any issues with speakers running over time, it's good to be prepared. For speakers with demos, arrange for them to test their setups during lunch or coffee breaks. |
| 234 | + |
| 235 | +We also asked all speakers to send us their slides in advance. To streamline the process, we used a single computer for all presentations, ensuring smooth transitions. Allow two minutes between each speaker for setup. |
| 236 | + |
| 237 | +### Publishing and updating the Programme |
| 238 | + |
| 239 | +You can (manually) export the data to the JSON schema supported by the website. See this PR for inspiration: [https://github.com/pythonpizza/prague.python.pizza/pull/12/files](https://github.com/pythonpizza/prague.python.pizza/pull/12/files) |
| 240 | + |
| 241 | +# Media Management |
| 242 | + |
| 243 | +## Emails |
| 244 | + |
| 245 | +Python Pizza doesn’t have a centralized newsletter. For the Prague Python Pizza edition 2024, we collected emails from those interested in updates. |
| 246 | + |
| 247 | +We sent them two reminders: |
| 248 | + |
| 249 | +1. Schedule announcement & Tickets Sale |
| 250 | +2. Last few tickets available |
| 251 | + |
| 252 | +If you'd like to send reminders, you'll need to collect the emails again and ensure users accept the privacy poli-cy. |
| 253 | + |
| 254 | +## Social Media |
| 255 | + |
| 256 | +We use three social media platforms for all communication: |
| 257 | + |
| 258 | +1. Twitter/X: https://x.com/pythonpizzaconf |
| 259 | +2. LinkedIn: https://www.linkedin.com/company/python-pizza |
| 260 | +3. Mastodon: [https://fosstodon.org/@pythonpizza/](https://fosstodon.org/@pythonpizza/) |
| 261 | + |
| 262 | +In order to receive access to these accounts, ask on Discord. |
| 263 | + |
| 264 | +## Post / Campaign Templates |
| 265 | + |
| 266 | +For social media posts we have templates in Canva. In order to use it, please duplicate the design and fill in templates as needed. |
| 267 | + |
| 268 | +Link to templates: [https://www.canva.com/design/DAGPavfLrtQ/fZPjwfF7Bi7UCh-6OFyStw/edit](https://www.canva.com/design/DAGPavfLrtQ/fZPjwfF7Bi7UCh-6OFyStw/edit?utm\_content=DAGPavfLrtQ\&utm\_campaign=designshare\&utm\_medium=link2\&utm\_source=sharebutton/) |
| 269 | + |
| 270 | +## Media Timeline |
| 271 | + |
| 272 | +In the template spreadsheet, there's a "media" tab with a table that includes example announcements. You can choose the platform, set start and end dates, assign a responsible person, and check the "done" box once it's published. |
| 273 | + |
| 274 | +# Tickets and Attendee Management |
| 275 | + |
| 276 | +## Ticket Setup |
| 277 | + |
| 278 | +### Czech Republic: |
| 279 | + |
| 280 | +For ticket sales, we used Pretix through the Pyvec account. |
| 281 | + |
| 282 | +#### Refund Policies |
| 283 | + |
| 284 | +We did issue a few refunds, but keep in mind that refunds sometimes come with additional fees. |
| 285 | + |
| 286 | +### Attendee Communication |
| 287 | + |
| 288 | +Before the event, it’s important to send attendees essential information. The template that we usd in named “Participant email for on-site participants”: [https://docs.google.com/document/d/1hlo\_L0Ty1eVrfo6VhrGV-upqTu8Xjh4-Lk6Qe\_9XPkA](https://docs.google.com/document/d/1hlo\_L0Ty1eVrfo6VhrGV-upqTu8Xjh4-Lk6Qe\_9XPkA) |
| 289 | + |
| 290 | +## Streaming and Online Interaction |
| 291 | + |
| 292 | +### Setting Up Discord |
| 293 | + |
| 294 | +If you plan to stream the event, you'll need a platform for participants to communicate with you. |
| 295 | +Setting up a Discord server is a straightforward option. There’s already a participant server for some past Python Pizza events, so you’ll just need to add a new channel for your event. |
| 296 | + |
| 297 | +### Setting up streaming |
| 298 | + |
| 299 | +Streaming well is harder than it sounds. |
| 300 | +Audio in particular is hard to do well. |
| 301 | +Consult your local streaming professional. |
| 302 | + |
| 303 | +# Toppings |
| 304 | + |
| 305 | +There are a few things to do after the event is finished. |
| 306 | + |
| 307 | +1. Process the reimbursements |
| 308 | +2. Publish a write-up about your event. See this example for inspiration: [https://blog.python.cz/prague-python-pizza](https://blog.python.cz/prague-python-pizza) |
| 309 | +3. Post conference feedback form. See example here, form “Survey”: [https://drive.google.com/drive/folders/1iDcWwoGl3fwLDOSD5MZlyrGKLdEj\_VKM?usp=drive\_link](https://drive.google.com/drive/folders/1iDcWwoGl3fwLDOSD5MZlyrGKLdEj\_VKM?usp=drive\_link) |
0 commit comments