summaryrefslogtreecommitdiffstats
path: root/2026
diff options
context:
space:
mode:
Diffstat (limited to '2026')
-rw-r--r--2026/cfp.md174
-rw-r--r--2026/cfp.org220
-rw-r--r--2026/info/align-after.md10
-rw-r--r--2026/info/align-before.md13
-rw-r--r--2026/info/align-nav.md7
-rw-r--r--2026/info/cadet-after.md10
-rw-r--r--2026/info/cadet-before.md13
-rw-r--r--2026/info/cadet-nav.md7
-rw-r--r--2026/info/emacspeak-after.md10
-rw-r--r--2026/info/emacspeak-before.md13
-rw-r--r--2026/info/emacspeak-nav.md7
-rw-r--r--2026/info/local-after.md10
-rw-r--r--2026/info/local-before.md13
-rw-r--r--2026/info/local-nav.md7
-rw-r--r--2026/info/open-mic-after.md10
-rw-r--r--2026/info/open-mic-before.md13
-rw-r--r--2026/info/open-mic-nav.md6
-rw-r--r--2026/info/portable-after.md10
-rw-r--r--2026/info/portable-before.md13
-rw-r--r--2026/info/sat-close-after.md10
-rw-r--r--2026/info/sat-close-before.md13
-rw-r--r--2026/info/sat-close-nav.md7
-rw-r--r--2026/info/sat-open-after.md10
-rw-r--r--2026/info/sat-open-before.md13
-rw-r--r--2026/info/sat-open-nav.md7
-rw-r--r--2026/info/sun-close-after.md10
-rw-r--r--2026/info/sun-close-before.md13
-rw-r--r--2026/info/sun-close-nav.md6
-rw-r--r--2026/info/sun-open-after.md10
-rw-r--r--2026/info/sun-open-before.md13
-rw-r--r--2026/info/sun-open-nav.md7
-rw-r--r--2026/organizers-notebook/index.org1000
-rw-r--r--2026/organizers-notebook/schedule.svg1
-rw-r--r--2026/prepare.md313
-rw-r--r--2026/schedule-details.md16
-rw-r--r--2026/submit.md81
-rw-r--r--2026/talks.md12
-rw-r--r--2026/talks/align.md59
-rw-r--r--2026/talks/cadet.md51
-rw-r--r--2026/talks/emacspeak.md30
-rw-r--r--2026/talks/local.md33
-rw-r--r--2026/talks/open-mic.md21
-rw-r--r--2026/talks/portable.md45
-rw-r--r--2026/talks/sat-close.md21
-rw-r--r--2026/talks/sat-open.md21
-rw-r--r--2026/talks/sun-close.md21
-rw-r--r--2026/talks/sun-open.md21
47 files changed, 2431 insertions, 0 deletions
diff --git a/2026/cfp.md b/2026/cfp.md
new file mode 100644
index 00000000..63a341e4
--- /dev/null
+++ b/2026/cfp.md
@@ -0,0 +1,174 @@
+[[!meta title="Call for Participation"]]
+[[!meta copyright="Copyright © 2020 Amin Bandali, Sacha Chua,
+David Bremner<br />
+Copyright &copy; 2021 Amin Bandali, Sacha Chua, Leo Vivier,
+Sebastian Crane<br />
+Copyright &copy; 2022-2026 Amin Bandali<br />
+Copyright &copy; 2023-2026 Sacha Chua"]]
+[[!tag blog]]
+[[!date "2026-06-27"]]
+<!-- cfp.md is exported from cfp.org, please modify that instead. -->
+
+
+# Call for participation
+
+What have you found exciting about [Emacs](https://www.gnu.org/software/emacs/) lately? Have you figured out
+a good workflow? Used Emacs for something interesting? Come share
+what you've been learning at EmacsConf 2026 and meet other enthusiasts
+along the way! All backgrounds and all levels of experience are
+welcome. Emacs isn't just a text editor, it's a way of life!
+
+[EmacsConf 2026](https://emacsconf.org/2026/) will be a virtual conference on
+**December 12 and 13, 2026 (Sat-Sun, 9AM-5PM UTC-5 America/Toronto, which is the same as 2PM-10PM UTC)**.
+We hope to get your talk proposal by ****Friday, September 18, 2026.****
+
+If there are similar proposals, we'll work with people so that the
+talks can cover different facets.
+
+Wondering what to talk about? Check out this [list of ideas](https://emacsconf.org/ideas/) or the
+[talks from previous conferences](https://emacsconf.org/talks/). Got an idea for a talk but not sure
+if you're the right person to present it? Let us know at
+[emacsconf-submit@gnu.org](mailto:emacsconf-submit@gnu.org?subject=EmacsConf idea&body=) and we can add it to the idea list.
+
+
+# Important dates
+
+Here's an outline of important dates in the months leading up to the
+conference:
+
+<table>
+
+
+<colgroup>
+<col class="org-left" />
+
+<col class="org-left" />
+</colgroup>
+<tbody>
+<tr>
+<td class="org-left">Call for Participation</td>
+<td class="org-left">June 27, 2026 (Saturday)</td>
+</tr>
+
+<tr>
+<td class="org-left">Proposal submission deadline</td>
+<td class="org-left">September 18, 2026 (Friday)</td>
+</tr>
+
+<tr>
+<td class="org-left">Prerecording submission deadline</td>
+<td class="org-left">October 30, 2026 (Friday)</td>
+</tr>
+
+<tr>
+<td class="org-left">EmacsConf 2026!</td>
+<td class="org-left">December 12 and 13, 2026 (Saturday and Sunday)</td>
+</tr>
+</tbody>
+</table>
+
+Please note the deadlines are meant to be target dates we'd love to
+get your proposal and prerecorded video by, rather than strict
+deadlines. Don't stress out if life happens and you need more time,
+just let us know!
+
+
+# Talk formats
+
+Ideally, talks will be prerecorded so that you can script and edit
+them as tightly as you want, and so that they can be captioned for
+accessibility. Here are the talk options:
+
+- **5-10 minute lightning talk:** just the essentials! If you can
+ squeeze your prerecorded talk into 5-10 minutes by focusing on the
+ essentials (not by talking super quickly!), we might be able to
+ repeat it during the conference in order to fill gaps.
+
+- **20-minute talk:** short enough to keep people's attention,
+ long enough to get into some details.
+
+There will be time for questions and answers after your talk, so you
+don't need to include that in your talk timing. Just like in previous
+EmacsConf, you can answer questions via a live video conference,
+IRC ([Internet Relay Chat](https://chat.emacsconf.org)), the Etherpad (a web-based collaborative
+document), the wiki, or email (your choice). The stream will move on
+to the next talk at the scheduled time, but interested people can keep
+hanging out with you for a longer conversation.
+
+If you are not available during the conference itself but you have
+a neat idea that you'd like to share, please propose it anyway!
+You can always handle questions after the conference, and we might
+even be able to coordinate with other Emacs meetups for events in
+other time zones.
+
+We may have time for a few longer sessions. If you'd like to be
+considered for a longer time slot, please include an outline for the
+extra time in addition to your 20-minute proposal. Other session
+formats such as tutorials, workshops, and hangouts are welcome as
+well.
+
+
+# Submitting your proposal
+
+[Send us your idea](https://emacsconf.org/2026/submit/) as soon as you can, so that you can have more time
+to work on your talk.
+(Proposal deadline: ****Friday, September 18, 2026****)
+
+If you need help, you can email us publicly at [emacsconf-org@gnu.org](mailto:emacsconf-org@gnu.org)
+or privately at [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org). You can also come and
+say hi to us on our IRC channel `#emacsconf` on `irc.libera.chat` port
+6697 (TLS) using [your favourite IRC client](ircs://irc.libera.chat:6697/emacsconf).
+
+Here's an Org TODO you can copy in case that's what you use to organize your tasks:
+
+ * TODO Submit proposal to EmacsConf 2026
+ DEADLINE: <2026-09-18 Fri>
+
+ - Details: https://emacsconf.org/2026/cfp/
+ - Submit: https://emacsconf.org/2026/submit/
+ - Dates for conf: Dec 12 and 13, Sat-Sun, 9AM-5PM UTC-5 America/Toronto, which is the same as 2PM-10PM UTC
+ - Questions:
+ - public: mailto:emacsconf-org@gnu.org
+ - private: mailto:emacsconf-org-private@gnu.org
+ - IRC: irc.libera.chat
+
+ Note: 2026-09-18 is a target date and we'd love to get your proposal
+ by then. It's not a *deadline* deadline, so don't stress out if life
+ happens. Just let us know!
+
+ Thanks for sharing what you're learning!
+
+
+# Know someone who might have something to share?
+
+All kinds of people use Emacs for all kinds of things. We'd love it
+if EmacsConf 2026 could highlight interesting perspectives and reflect
+the diversity of our community. If you know someone who might have a
+good idea for a talk, please reach out to them and encourage them to
+submit a proposal. Many people (especially from underrepresented
+groups such as women, people of colour, non-developers, etc.) might
+not consider themselves proficient enough to share their thoughts.
+If you let them know that you value their knowledge and experiences,
+and maybe even suggest something that you think others would like to
+hear about, they may realize that they do have something worth sharing
+and that we would love to hear from them.
+
+
+# Want to volunteer?
+
+If you would like to help with the conference (planning the sessions,
+reviewing proposals, helping with infrastructure, making sessions
+more accessible, editing video transcripts, checking in speakers,
+reading questions out loud, organizing notes, etc.), please see our
+[volunteer](https://emacsconf.org/volunteer/) page. Volunteers get early access to talks and learn lots
+of things along the way. We'd really appreciate your help in making
+EmacsConf 2026 the best one so far!
+
+
+# Commitment to freedom
+
+We remain fully committed to freedom. You'll be able to participate
+in EmacsConf using [free/libre software](https://www.gnu.org/philosophy/free-sw.html), and we use free/libre software
+to organize and run the conference. You can find some notes about our
+setup and process at <https://emacsconf.org/infra/>.
+
diff --git a/2026/cfp.org b/2026/cfp.org
new file mode 100644
index 00000000..91c720a9
--- /dev/null
+++ b/2026/cfp.org
@@ -0,0 +1,220 @@
+# [[elisp:(org-md-export-to-markdown)][Export this file to Markdown]]
+# [[elisp:(org-ascii-export-as-ascii)][Export this file to ASCII]]
+#+title: EmacsConf 2026 Call for Participation
+#+subtitle: Online Conference
+#+date: December 12 and 13, 2026
+#+options: author:nil toc:nil
+
+#+begin_export md
+[[!meta title="Call for Participation"]]
+[[!meta copyright="Copyright &copy; 2020 Amin Bandali, Sacha Chua,
+David Bremner<br />
+Copyright &copy; 2021 Amin Bandali, Sacha Chua, Leo Vivier,
+Sebastian Crane<br />
+Copyright &copy; 2022-2026 Amin Bandali<br />
+Copyright &copy; 2023-2026 Sacha Chua"]]
+[[!tag blog]]
+[[!date "2026-06-27"]]
+<!-- cfp.md is exported from cfp.org, please modify that instead. -->
+#+end_export
+
+* COMMENT How to export this file :noexport:
+
+The =ircs= link type is not part of standard Org Mode, so Org will
+throw an error if you try to export this file.
+
+To work around that, you can use something along the lines of the
+Emacs Lisp code below by either adding it to your init file, or by
+putting the point in the code block and hitting =C-c C-v e= (that is,
+hold Ctrl, then hit c followed by v, then release Ctrl, and hit e) to
+evaluate the code, working around the issue only for the current
+session.
+
+#+begin_src emacs-lisp :results silent
+(org-link-set-parameters
+ "ircs"
+ :export
+ (lambda (link description format)
+ "Export an ircs link.
+See `org-link-parameters' for details about LINK, DESCRIPTION and
+FORMAT."
+ (let ((desc (or description link)))
+ (pcase format
+ (`html (format "<a href=\"ircs:%s\">%s</a>" link desc))
+ (`md (format "[%s](ircs:%s)" desc link))
+ (_ nil)))))
+#+end_src
+
+Other CFPs we can borrow ideas from:
+
+- https://debconf23.debconf.org/cfp/ - includes early submission timeline
+- https://fosdem.org/2023/news/2022-11-13-call-for-presentations/ - mentions upload date, license
+- https://www.fsf.org/blogs/community/libreplanet-2023-will-be-held-march-18-19-cfs-extended-to-november-23
+- https://www.reddit.com/r/scala/comments/103v6e5/scalar_2023_cfp_is_still_open/ - very short
+
+* Call for participation
+:PROPERTIES:
+:CUSTOM_ID: cfp
+:END:
+
+What have you found exciting about [[https://www.gnu.org/software/emacs/][Emacs]] lately? Have you figured out
+a good workflow? Used Emacs for something interesting? Come share
+what you've been learning at EmacsConf 2026 and meet other enthusiasts
+along the way! All backgrounds and all levels of experience are
+welcome. Emacs isn't just a text editor, it's a way of life!
+
+[[https://emacsconf.org/2026/][EmacsConf 2026]] will be a virtual conference on
+*December 12 and 13, 2026 (Sat-Sun, 9AM-5PM UTC-5 America/Toronto, which is the same as 2PM-10PM UTC)*.
+We hope to get your talk proposal by **Friday, September 18, 2026.**
+
+If there are similar proposals, we'll work with people so that the
+talks can cover different facets.
+
+Wondering what to talk about? Check out this [[https://emacsconf.org/ideas/][list of ideas]] or the
+[[https://emacsconf.org/talks/][talks from previous conferences]]. Got an idea for a talk but not sure
+if you're the right person to present it? Let us know at
+[[mailto:emacsconf-submit@gnu.org?subject=EmacsConf idea&body=][emacsconf-submit@gnu.org]] and we can add it to the idea list.
+
+* Important dates
+:PROPERTIES:
+:CUSTOM_ID: dates
+:END:
+
+Here's an outline of important dates in the months leading up to the
+conference:
+
+| Call for Participation | June 27, 2026 (Saturday) |
+| Proposal submission deadline | September 18, 2026 (Friday) |
+| Prerecording submission deadline | October 30, 2026 (Friday) |
+| EmacsConf 2026! | December 12 and 13, 2026 (Saturday and Sunday) |
+
+Please note the deadlines are meant to be target dates we'd love to
+get your proposal and prerecorded video by, rather than strict
+deadlines. Don't stress out if life happens and you need more time,
+just let us know!
+
+* Talk formats
+:PROPERTIES:
+:CUSTOM_ID: formats
+:END:
+
+Ideally, talks will be prerecorded so that you can script and edit
+them as tightly as you want, and so that they can be captioned for
+accessibility. Here are the talk options:
+
+- *5-10 minute lightning talk:* just the essentials! If you can
+ squeeze your prerecorded talk into 5-10 minutes by focusing on the
+ essentials (not by talking super quickly!), we might be able to
+ repeat it during the conference in order to fill gaps.
+
+- *20-minute talk:* short enough to keep people's attention,
+ long enough to get into some details.
+
+There will be time for questions and answers after your talk, so you
+don't need to include that in your talk timing. Just like in previous
+EmacsConf, you can answer questions via a live video conference,
+IRC ([[https://chat.emacsconf.org][Internet Relay Chat]]), the Etherpad (a web-based collaborative
+document), the wiki, or email (your choice). The stream will move on
+to the next talk at the scheduled time, but interested people can keep
+hanging out with you for a longer conversation.
+
+If you are not available during the conference itself but you have
+a neat idea that you'd like to share, please propose it anyway!
+You can always handle questions after the conference, and we might
+even be able to coordinate with other Emacs meetups for events in
+other time zones.
+
+We may have time for a few longer sessions. If you'd like to be
+considered for a longer time slot, please include an outline for the
+extra time in addition to your 20-minute proposal. Other session
+formats such as tutorials, workshops, and hangouts are welcome as
+well.
+
+* Submitting your proposal
+:PROPERTIES:
+:CUSTOM_ID: submitting
+:END:
+
+[[https://emacsconf.org/2026/submit/][Send us your idea]] as soon as you can, so that you can have more time
+to work on your talk.
+(Proposal deadline: **Friday, September 18, 2026**)
+
+If you need help, you can email us publicly at [[mailto:emacsconf-org@gnu.org][emacsconf-org@gnu.org]]
+or privately at [[mailto:emacsconf-org-private@gnu.org][emacsconf-org-private@gnu.org]]. You can also come and
+say hi to us on our IRC channel =#emacsconf= on =irc.libera.chat= port
+6697 (TLS) using [[ircs://irc.libera.chat:6697/emacsconf][your favourite IRC client]].
+
+Here's an Org TODO you can copy in case that's what you use to organize your tasks:
+
+#+begin_src org
+,* TODO Submit proposal to EmacsConf 2026
+DEADLINE: <2026-09-18 Fri>
+
+- Details: https://emacsconf.org/2026/cfp/
+- Submit: https://emacsconf.org/2026/submit/
+- Dates for conf: Dec 12 and 13, Sat-Sun, 9AM-5PM UTC-5 America/Toronto, which is the same as 2PM-10PM UTC
+- Questions:
+ - public: mailto:emacsconf-org@gnu.org
+ - private: mailto:emacsconf-org-private@gnu.org
+ - IRC: irc.libera.chat
+
+Note: 2026-09-18 is a target date and we'd love to get your proposal
+by then. It's not a *deadline* deadline, so don't stress out if life
+happens. Just let us know!
+
+Thanks for sharing what you're learning!
+#+end_src
+
+* Know someone who might have something to share?
+:PROPERTIES:
+:CUSTOM_ID: sharing
+:END:
+
+All kinds of people use Emacs for all kinds of things. We'd love it
+if EmacsConf 2026 could highlight interesting perspectives and reflect
+the diversity of our community. If you know someone who might have a
+good idea for a talk, please reach out to them and encourage them to
+submit a proposal. Many people (especially from underrepresented
+groups such as women, people of colour, non-developers, etc.) might
+not consider themselves proficient enough to share their thoughts.
+If you let them know that you value their knowledge and experiences,
+and maybe even suggest something that you think others would like to
+hear about, they may realize that they do have something worth sharing
+and that we would love to hear from them.
+
+* Want to volunteer?
+:PROPERTIES:
+:CUSTOM_ID: volunteer
+:END:
+
+If you would like to help with the conference (planning the sessions,
+reviewing proposals, helping with infrastructure, making sessions
+more accessible, editing video transcripts, checking in speakers,
+reading questions out loud, organizing notes, etc.), please see our
+[[https://emacsconf.org/volunteer/][volunteer]] page. Volunteers get early access to talks and learn lots
+of things along the way. We'd really appreciate your help in making
+EmacsConf 2026 the best one so far!
+
+* Commitment to freedom
+
+We remain fully committed to freedom. You'll be able to participate
+in EmacsConf using [[https://www.gnu.org/philosophy/free-sw.html][free/libre software]], and we use free/libre software
+to organize and run the conference. You can find some notes about our
+setup and process at https://emacsconf.org/infra/.
+
+* COMMENT Copyright & License
+
+Copyright (c) 2020 Amin Bandali, Sacha Chua, David Bremner
+Copyright (c) 2021 Amin Bandali, Sacha Chua, Leo Vivier, Sebastian Crane
+Copyright (c) 2022-2026 Amin Bandali
+Copyright (c) 2023-2026 Sacha Chua
+
+The EmacsConf 2026 Call for Participation is part of the EmacsConf
+wiki, and is dual-licensed under the terms of the Creative Commons
+Attribution-ShareAlike 4.0 International Public License; and the GNU
+General Public License as published by the Free Software Foundation,
+either version 3 of the License, or (at your option) any later
+version.
+
+A copy of these two licenses is available on the EmacsConf wiki, in
+the [[https://emacsconf.org/COPYING.CC-BY-SA][COPYING.CC-BY-SA]] and [[https://emacsconf.org/COPYING.GPL][COPYING.GPL]] files.
diff --git a/2026/info/align-after.md b/2026/info/align-after.md
new file mode 100644
index 00000000..35232ebe
--- /dev/null
+++ b/2026/info/align-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20align%3A%20Column-aligning%20text%20in%20Emacs)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2026/info/align-before.md b/2026/info/align-before.md
new file mode 100644
index 00000000..bfe09de8
--- /dev/null
+++ b/2026/info/align-before.md
@@ -0,0 +1,13 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 20-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-align>
+Etherpad: <https://pad.emacsconf.org/2026-align>
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2026/info/align-nav.md b/2026/info/align-nav.md
new file mode 100644
index 00000000..460875b5
--- /dev/null
+++ b/2026/info/align-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2026/talks/emacspeak">Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</a>
+Next by track: <a href="/2026/talks/cadet">My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2026/info/cadet-after.md b/2026/info/cadet-after.md
new file mode 100644
index 00000000..1fb13081
--- /dev/null
+++ b/2026/info/cadet-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [SpaceCadet@plaindrops.de](mailto:SpaceCadet@plaindrops.de?subject=Comment%20for%20EmacsConf%202023%20cadet%3A%20My%20Space%20Cadet%20Deck%20-%20an%20Android%20Stream%20Deck%20replacement%20with%20deep%20Emacs%20integration)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2026/info/cadet-before.md b/2026/info/cadet-before.md
new file mode 100644
index 00000000..281645ed
--- /dev/null
+++ b/2026/info/cadet-before.md
@@ -0,0 +1,13 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-cadet>
+Etherpad: <https://pad.emacsconf.org/2026-cadet>
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2026/info/cadet-nav.md b/2026/info/cadet-nav.md
new file mode 100644
index 00000000..e49b1027
--- /dev/null
+++ b/2026/info/cadet-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2026/talks/align">Column-aligning text in Emacs</a>
+Next by track: <a href="/2026/talks/local">Local file history possibilities in Emacs</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2026/info/emacspeak-after.md b/2026/info/emacspeak-after.md
new file mode 100644
index 00000000..0ebb2bb4
--- /dev/null
+++ b/2026/info/emacspeak-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20emacspeak%3A%20Multi-dimensional%20information%20processing%20with%20Emacs%20and%20Emacspeak%3A%20a%20blind%20man%27s%20perspective)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2026/info/emacspeak-before.md b/2026/info/emacspeak-before.md
new file mode 100644
index 00000000..3c643ce5
--- /dev/null
+++ b/2026/info/emacspeak-before.md
@@ -0,0 +1,13 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 30-min talk ; Q&A: IRC Etherpad: <https://pad.emacsconf.org/2026-emacspeak>
+Etherpad: <https://pad.emacsconf.org/2026-emacspeak>
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2026/info/emacspeak-nav.md b/2026/info/emacspeak-nav.md
new file mode 100644
index 00000000..923764c2
--- /dev/null
+++ b/2026/info/emacspeak-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2026/talks/sat-open">Saturday opening remarks</a>
+Next by track: <a href="/2026/talks/align">Column-aligning text in Emacs</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2026/info/local-after.md b/2026/info/local-after.md
new file mode 100644
index 00000000..f2ae6933
--- /dev/null
+++ b/2026/info/local-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [wouter@brainbaking.com](mailto:wouter@brainbaking.com?subject=Comment%20for%20EmacsConf%202023%20local%3A%20Local%20file%20history%20possibilities%20in%20Emacs)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2026/info/local-before.md b/2026/info/local-before.md
new file mode 100644
index 00000000..1aa0b09f
--- /dev/null
+++ b/2026/info/local-before.md
@@ -0,0 +1,13 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-local>
+Etherpad: <https://pad.emacsconf.org/2026-local>
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2026/info/local-nav.md b/2026/info/local-nav.md
new file mode 100644
index 00000000..7afc0453
--- /dev/null
+++ b/2026/info/local-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2026/talks/cadet">My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</a>
+Next by track: <a href="/2026/talks/sun-open">Sunday opening remarks</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2026/info/open-mic-after.md b/2026/info/open-mic-after.md
new file mode 100644
index 00000000..a1a2d49e
--- /dev/null
+++ b/2026/info/open-mic-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20open-mic%3A%20Open%20session)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2026/info/open-mic-before.md b/2026/info/open-mic-before.md
new file mode 100644
index 00000000..9ab12d84
--- /dev/null
+++ b/2026/info/open-mic-before.md
@@ -0,0 +1,13 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: -min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference Etherpad: <https://pad.emacsconf.org/2026-open-mic>
+Etherpad: <https://pad.emacsconf.org/2026-open-mic>
+Status: Ready to stream
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2026/info/open-mic-nav.md b/2026/info/open-mic-nav.md
new file mode 100644
index 00000000..fa562705
--- /dev/null
+++ b/2026/info/open-mic-nav.md
@@ -0,0 +1,6 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Next by track: <a href="/2026/talks/sat-open">Saturday opening remarks</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2026/info/portable-after.md b/2026/info/portable-after.md
new file mode 100644
index 00000000..78705fc3
--- /dev/null
+++ b/2026/info/portable-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [mail@myterminal.me](mailto:mail@myterminal.me?subject=Comment%20for%20EmacsConf%202023%20portable%3A%20Emacs%20as%20my%20portable%20user%20space%20across%20operating%20platforms)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2026/info/portable-before.md b/2026/info/portable-before.md
new file mode 100644
index 00000000..e138b6a1
--- /dev/null
+++ b/2026/info/portable-before.md
@@ -0,0 +1,13 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 20-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference Etherpad: <https://pad.emacsconf.org/2026-portable>
+Etherpad: <https://pad.emacsconf.org/2026-portable>
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2026/info/sat-close-after.md b/2026/info/sat-close-after.md
new file mode 100644
index 00000000..421a1bae
--- /dev/null
+++ b/2026/info/sat-close-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-close%3A%20Saturday%20closing%20remarks%20%2F%20open%20session)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2026/info/sat-close-before.md b/2026/info/sat-close-before.md
new file mode 100644
index 00000000..69d1c7fe
--- /dev/null
+++ b/2026/info/sat-close-before.md
@@ -0,0 +1,13 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-sat-close>
+Etherpad: <https://pad.emacsconf.org/2026-sat-close>
+Status: Ready to stream
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2026/info/sat-close-nav.md b/2026/info/sat-close-nav.md
new file mode 100644
index 00000000..7c3dea3d
--- /dev/null
+++ b/2026/info/sat-close-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2026/talks/sun-open">Sunday opening remarks</a>
+Next by track: <a href="/2026/talks/sun-close">Sunday closing remarks</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2026/info/sat-open-after.md b/2026/info/sat-open-after.md
new file mode 100644
index 00000000..45d9363f
--- /dev/null
+++ b/2026/info/sat-open-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-open%3A%20Saturday%20opening%20remarks)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2026/info/sat-open-before.md b/2026/info/sat-open-before.md
new file mode 100644
index 00000000..5efa8e55
--- /dev/null
+++ b/2026/info/sat-open-before.md
@@ -0,0 +1,13 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-min talk ; Q&A: Etherpad
+Etherpad: <https://pad.emacsconf.org/2026-sat-open>
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2026/info/sat-open-nav.md b/2026/info/sat-open-nav.md
new file mode 100644
index 00000000..9cca63b6
--- /dev/null
+++ b/2026/info/sat-open-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2026/talks/open-mic">Open session</a>
+Next by track: <a href="/2026/talks/emacspeak">Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2026/info/sun-close-after.md b/2026/info/sun-close-after.md
new file mode 100644
index 00000000..1d562979
--- /dev/null
+++ b/2026/info/sun-close-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-close%3A%20Sunday%20closing%20remarks)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2026/info/sun-close-before.md b/2026/info/sun-close-before.md
new file mode 100644
index 00000000..44944f3a
--- /dev/null
+++ b/2026/info/sun-close-before.md
@@ -0,0 +1,13 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-sun-close>
+Etherpad: <https://pad.emacsconf.org/2026-sun-close>
+Status: Ready to stream
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2026/info/sun-close-nav.md b/2026/info/sun-close-nav.md
new file mode 100644
index 00000000..423413cf
--- /dev/null
+++ b/2026/info/sun-close-nav.md
@@ -0,0 +1,6 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2026/talks/sat-close">Saturday closing remarks / open session</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2026/info/sun-open-after.md b/2026/info/sun-open-after.md
new file mode 100644
index 00000000..02a6db8b
--- /dev/null
+++ b/2026/info/sun-open-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-open%3A%20Sunday%20opening%20remarks)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2026/info/sun-open-before.md b/2026/info/sun-open-before.md
new file mode 100644
index 00000000..eae28632
--- /dev/null
+++ b/2026/info/sun-open-before.md
@@ -0,0 +1,13 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-min talk ; Q&A: Etherpad
+Etherpad: <https://pad.emacsconf.org/2026-sun-open>
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2026/info/sun-open-nav.md b/2026/info/sun-open-nav.md
new file mode 100644
index 00000000..ed572a63
--- /dev/null
+++ b/2026/info/sun-open-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2026/talks/local">Local file history possibilities in Emacs</a>
+Next by track: <a href="/2026/talks/sat-close">Saturday closing remarks / open session</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2026/organizers-notebook/index.org b/2026/organizers-notebook/index.org
new file mode 100644
index 00000000..d751dbb2
--- /dev/null
+++ b/2026/organizers-notebook/index.org
@@ -0,0 +1,1000 @@
+# [[elisp:(progn (memoize 'emacsconf-get-talk-info "5 seconds") (condition-case nil (org-md-export-to-markdown) (error nil)) (memoize-restore 'emacsconf-get-talk-info))][Export this file to Markdown]]
+#+TAGS: emacsconf
+# [[elisp:(memoize 'emacsconf-get-talk-info "5 seconds")][Memoize emacsconf-get-talk-info]] - [[elisp:(memoize-restore 'emacsconf-get-talk-info)][Unmemoize]]
+#+todo: TODO(t) SOMEDAY STARTED INPROGRESS(i) WAITING(w) STANDBY(s) BLOCKED(b) | DONE(x) CANCELLED(c)
+#+OPTIONS: h:6 toc:nil num:nil ':t
+#+PROPERTY: header-args :results silent :exports code :tangle yes
+#+EXPORT_FILE_NAME: ../organizers-notebook.md
+#+PROPERTY: QUANTIFIED Emacs
+
+#+begin_export md
+<!-- organizers-notebook.md is exported from organizers-notebook/index.org, please modify that instead. -->
+[[!sidebar content=""]]
+
+This file is automatically exported from [/2026/organizers-notebook/index.org](/2026/organizers-notebook/index.org). You might prefer to navigate this as an Org file instead. To do so, [clone the wiki repository](https://emacsconf.org/edit/).
+
+You might also like the [general organizers' notebook](/organizers-notebook) and [the organizers' notebook from 2025](/2025/organizers-notebook).
+#+end_export
+
+
+
+#+NAME: list-headings
+#+begin_src emacs-lisp :results value replace :exports results :eval never-export :var heading="Help wanted" :var match="helpwanted"
+(emacsconf-surround
+ (concat heading ":\n\n")
+ (string-join
+ (delq nil
+ (org-map-entries
+ (lambda ()
+ (when (and (org-entry-is-todo-p) (not (org-entry-is-done-p)))
+ (format "- %s %s\n"
+ (org-link-make-string
+ (concat "#" (org-entry-get (point) "CUSTOM_ID"))
+ (org-entry-get (point) "ITEM"))
+ (emacsconf-surround
+ "(by "
+ (and (org-entry-get (point) "DEADLINE")
+ (replace-regexp-in-string "[<>]" "" (org-entry-get (point) "DEADLINE")))
+ ")"
+ ""))))
+ match nil))
+ "")
+"" "")
+#+end_src
+
+#+RESULTS: list-headings
+:results:
+:end:
+
+#+CALL: list-headings(heading="Decisions to make", match="decision")
+
+#+RESULTS:
+:results:
+:end:
+
+
+#+TOC: headlines 2
+* COMMENT Shortcuts
+:PROPERTIES:
+:CUSTOM_ID: shortcuts
+:END:
+
+[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org][Common notebook]]
+
+* TODO Timeline
+:PROPERTIES:
+:CUSTOM_ID: timeline
+:END:
+
+| | | Days since previous milestone |
+| CFP | [2026-06-27 Sat] | |
+| CFP deadline | [2026-09-18 Fri] | 83 |
+| Speaker notifications | [2026-09-25 Fri] | |
+| Publish schedule | [2026-10-23 Fri] | |
+| Video submission deadline | [2026-10-30 Fri] | 42 |
+| EmacsConf day 1 | [2026-12-12 Sat] | 43 |
+| EmacsConf | [2026-12-13 Sun] | 36 |
+#+TBLFM: @3$3=@3$2-@2$2::@6$3=@6$2-@3$2::@7$3=@7$2-@6$2
+
+We like to have at least a month to work on audio
+normalization and transcription, and we want
+speakers to have at least a month to work on their
+videos (considering early submissions will already
+have gotten started on processing).
+
+* About this document
+:PROPERTIES:
+:CUSTOM_ID: about-this-doc
+:END:
+
+Tags:
+- =conforg=: Requires access to private conf.org repository
+
+* Communications plan
+:PROPERTIES:
+:CUSTOM_ID: comms
+:END:
+
+Objectives:
+- keep everyone in the loop without them feeling like they're overloaded
+
+Everyone:
+- [X] Call for participation (speakers and volunteers)
+- [ ] Reminder about CFP
+- [ ] Last call
+
+Speakers:
+- [ ] Send all speakers backstage access and upload instructions
+- [ ] Send all speakers check-in instructions
+
+Volunteers:
+- [ ] Send captioning volunteers the backstage info
+- [ ] Send past captioning volunteers an invitation to participate - ask when there's a lot of load
+- [ ] Ask for help with audio processing
+
+* Good/better/best
+:PROPERTIES:
+:CUSTOM_ID: good-better-best
+:END:
+
+This table makes it easier to move the slider depending on who wants
+to volunteer and how much we can get done. At some point, we'll figure
+out how to track our current status so we know what we need to
+scramble to do in order to get the conference off the ground. *bold*
+is our current goal. Feel free to volunteer for anything that
+interests you!
+
+ | | Good | Better | Best |
+ | Streaming | Regular stream | + alternate streams on PeerTube | + alternate streams on YouTube |
+ | 480p | Same on live | Separate node | Ansible setup |
+ | Audio normalization | Core org handling it | Other volunteer | Multiple volunteers |
+ | Video resolution | Usual reminders | Extra reminders | Everyone remembering to use a large font size |
+ | Intros | Standard, recorded | Reviewed by speakers | More details/context |
+ | Pad | v1.9.7 | v2.x | |
+
+* Phases
+:PROPERTIES:
+:CUSTOM_ID: phases
+:END:
+** DONE Set up organizers notebook
+CLOSED: [2026-07-02 Thu 11:35]
+:LOGBOOK:
+- State "DONE" from "TODO" [2025-06-17 Tue 10:41]
+:END:
+
+** DONE Draft CFP
+CLOSED: [2026-07-02 Thu 11:35]
+:PROPERTIES:
+:CUSTOM_ID: cfp
+:END:
+
+**** Draft linked pages
+:PROPERTIES:
+:CUSTOM_ID: phases-draft-cfp-draft-linked-pages
+:END:
+
+- [X] cfp
+- [X] submit page
+- [X] year index
+
+**** DONE Check with other organizers
+CLOSED: [2026-07-02 Thu 11:35]
+:PROPERTIES:
+:CUSTOM_ID: phases-draft-cfp-check-with-other-organizers
+:END:
+**** DONE Update dates in emacsconf.el
+CLOSED: [2026-07-02 Thu 11:35]
+
+[[file:~/proj/emacsconf/lisp/emacsconf.el]]
+[[file:~/proj/emacsconf/lisp/emacsconf-erc.el]]
+**** DONE Update conf topic
+CLOSED: [2026-07-02 Thu 11:35]
+[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#phases-and-lessons-learned-draft-cfp-update-the-irc-topic][Update the IRC topic]]
+**** DONE Remove draft marker
+CLOSED: [2026-07-02 Thu 11:35]
+
+- [ ] cfp
+- [ ] submit
+
+**** DONE Post CFP in the usual places
+CLOSED: [2026-07-02 Thu 11:35]
+:PROPERTIES:
+:CUSTOM_ID: phases-draft-cfp-post-cfp-in-the-usual-places
+:END:
+- [ ] emacsconf-discuss
+- [ ] reddit.com/r/emacs
+- [ ] Emacs News
+- [ ] emacs-tangents or info-gnu-emacs
+- [ ] Mastodon
+- [ ] Bluesky
+- [ ] X
+
+** TODO Draft schedule
+:PROPERTIES:
+:CUSTOM_ID: draft-schedule
+:END:
+
+#+NAME: schedule
+#+begin_src emacs-lisp :results value replace :exports none :eval never-export :var filename="schedule.svg"
+(require 'emacsconf)
+(require 'emacsconf-schedule)
+(setq emacsconf-schedule-tracks
+ '((:label "Saturday"
+ :start "2026-12-12 9:00"
+ :end "2026-12-12 18:00"
+ :tracks ("General" "Development"))
+ (:label "Sunday"
+ :start "2026-12-13 9:00"
+ :end "2026-12-13 18:00"
+ :tracks ("General" "Development"))))
+(let ((emacsconf-schedule-default-buffer-minutes 10)
+ (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 20)
+ (emacsconf-schedule-break-time 10)
+ (emacsconf-schedule-lunch-time 60)
+ (emacsconf-use-absolute-url t)
+ (emacsconf-schedule-strategies '(emacsconf-schedule-allocate-buffer-time
+ emacsconf-schedule-copy-previous-track))
+ (emacsconf-schedule-validation-functions
+ '(emacsconf-schedule-validate-time-constraints
+ ;; emacsconf-schedule-validate-live-q-and-a-sessions-are-staggered
+ emacsconf-schedule-validate-no-cancelled-talks
+ emacsconf-schedule-validate-all-talks-present
+ emacsconf-schedule-validate-no-duplicates
+ emacsconf-schedule-validate-videos-fit-in-time
+ )))
+ (setq emacsconf-schedule-plan
+ '(("GEN Saturday, Dec 6" :start "2026-12-12 09:00" :set-track "General")
+ sat-open
+ emacspeak
+ align
+ cadet
+ local
+ open-mic
+ (lunch :start "12:00")
+ portable
+ sat-close
+ ("DEV Saturday, Dec 6" :start "2026-12-12 9:30" :set-track "Development")
+ (lunch :start "12:00")
+ ("GEN Sunday, Dec 7" :start "2026-12-13 09:00" :set-track "General")
+ sun-open
+ (lunch :start "12:00" :start "16:30")
+ (sun-close)
+ ))
+ (setq emacsconf-schedule-draft (emacsconf-schedule-prepare (emacsconf-schedule-inflate-sexp emacsconf-schedule-plan)))
+ (prog1 (string-join (emacsconf-schedule-validate emacsconf-schedule-draft) "\n")
+ (let ((emacsconf-schedule-svg-modify-functions
+ '(emacsconf-schedule-svg-color-by-availability
+ ;emacsconf-schedule-svg-color-by-status
+ )))
+ (with-temp-file (expand-file-name filename (file-name-directory emacsconf-org-file))
+ (svg-print (emacsconf-schedule-svg 500 700 emacsconf-schedule-draft 'vertical)))
+ (with-temp-file (expand-file-name filename (expand-file-name "organizers-notebook" (expand-file-name emacsconf-year emacsconf-directory)))
+ (svg-print (emacsconf-schedule-svg 500 700 emacsconf-schedule-draft 'vertical))))
+ ;; (with-temp-file (expand-file-name filename (file-name-directory emacsconf-org-file))
+ ;; (svg-print (emacsconf-schedule-svg 800 300 emacsconf-schedule-draft)))
+ ;; (with-temp-file (expand-file-name filename (expand-file-name "organizers-notebook" (expand-file-name emacsconf-year emacsconf-directory)))
+ ;; (svg-print (emacsconf-schedule-svg 800 300 emacsconf-schedule-draft))))
+ (clear-image-cache)))
+#+end_src
+
+#+RESULTS: schedule
+:results:
+saturday closing remarks: Starts at 13:40 before 16:30
+sunday closing remarks: Starts at 13:00 before 16:30
+:end:
+
+#+ATTR_ORG: :width 500
+[[file:schedule.svg]]
+
+Legend:
+- light blue: constraint is <= a time
+- peach: constraint is >= a time
+- solid line: Q&A will be through BigBlueButton web conference
+- dashed line: Q&A will be IRC/Etherpad during the event or e-mail after the event
+
+Notes:
+
+
+** Review rescheduled talks
+
+#+begin_src emacs-lisp :results table replace
+(mapcar (lambda (o)
+ (list (plist-get o :slug)
+ (plist-get o :scheduled)
+ (plist-get o :emailed-schedule)
+ (emacsconf-schedule-difference-from-emailed o)))
+ (emacsconf-mail-rescheduled-talks))
+#+end_src
+
+For big changes, use emacsconf-mail-schedule-updates
+
+
+** While speakers are working on their videos
+*** TODO Send draft schedule :email:
+SCHEDULED: <2026-09-25 Fri>
+:PROPERTIES:
+:CREATED: [2025-09-30 Tue 09:38]
+:Effort: 0:30
+:END:
+:LOGBOOK:
+CLOCK: [2025-10-03 Fri 10:26]--[2025-10-03 Fri 11:07] => 0:41
+:END:
+
+*** TODO Send backstage and upload instructions :email:
+:PROPERTIES:
+:CREATED: [2025-09-30 Tue 09:39]
+:END:
+*** TODO Record pronunciations
+*** TODO Post the schedule publicly
+** While volunteers are working on captions
+*** TODO E-mail speakers asking them to confirm the pronunciations :email:
+SCHEDULED: <2026-12-01 Tue>
+:PROPERTIES:
+:CREATED: [2025-09-30 Tue 09:39]
+:END:
+*** Record intros and opening remarks
+:PROPERTIES:
+:CUSTOM_ID: intros
+:END:
+
+**** TODO Record sat-open remarks :emacsconf:record:
+:PROPERTIES:
+:Effort: 0:30
+:CUSTOM_ID: phases-record-intros-and-opening-remarks-record-sat-open-remarks
+:END:
+
+Welcome to EmacsConf 2025, where we have fun
+exploring how much we can do with a text editor.
+It's hard to give a general overview
+of all the cool talks today and tomorrow,
+so you can flip through the talks
+and see what sparks your interests.
+Don't feel limited to one track or another.
+The best parts of EmacsConf are the conversations.
+The wiki has a page on how to watch and participate,
+and I'll give you a quick overview as well.
+You can watch both streams at live.emacsconf.org
+using free and open source software.
+Using a streaming media player like mpv
+seems to be the best way to watch in terms of performance
+but there are also web-based players
+just in case that's all you've got.
+The schedule shows the General track on top
+and the Development track on the bottom,
+so you can see what else is going on.
+As you're watching the talks,
+you can refer to the schedule in another window.
+Hover over the boxes to see the times and titles,
+and click on the boxes in the schedule
+to jump to the talk's page for more details.
+You can also get the schedule as an iCalendar file
+or as an Org file in different time zones.
+Many talks will be followed by
+live Q&A web conferences with the speaker,
+which will be done in BigBlueButton or BBB.
+These are indicated with a solid border on the schedule
+and by Q&A: BBB on the schedule page.
+You can join the web conference room
+by clicking on the BBB link
+on the schedule page or the talk's webpage.
+Then you can ask your questions yourself when the Q&A starts.
+To improve performance, please keep your webcam off
+and stay muted until it's your turn to talk.
+If you don't like Javascript,
+you can still ask questions via IRC
+and the hosts can read them out for you.
+We're probably going to automatically switch
+between talks and Q&A sessions,
+so the transitions on the stream might be a little sudden.
+
+People in the BigBlueButton room
+can continue the conversation
+even after the talk moves off-stream.
+and you can also reach out to the speakers
+using the contact information on the talk page.
+
+Other talks will have Q&A via Etherpad or IRC,
+depending on what the speakers prefer.
+This is indicated in the schedule with a dashed border
+and on the schedule page as well.
+Some talks will have the Q&A after the event,
+so you can add your questions to their Etherpad
+or ask on IRC.
+We'll e-mail the speakers afterwards
+and update the talk pages when they answer.
+The schedule pages and track pages have quick shortcuts
+so that you can find out more about talks, open the Etherpads,
+and join the Q&A sessions. The watch page has more tips
+on how to make the most of Q&A.
+If you can, please add notes and ask questions
+in the Etherpad for the talk. That makes it easier
+for everyone to share their notes,
+and speakers and hosts can read the questions from there.
+We'll copy the notes to the talk pages afterwards.
+We have one pad for each talk,
+so you can follow the links to get to the next one
+or go back to the schedule and get the link from there.
+If you have general feedback about
+the conference itself, please put it in
+pad.emacsconf.org/2025 , which is linked on each pad.
+You can also use this as a general community message board
+for things like Help Wanted.
+Internet Relay Chat or IRC can be another great way
+to be part of lots of conversations.
+You can use chat.emacsconf.org to join the IRC channels
+through your web browser. The tabs on the left can help you
+switch between the different channels.
+There's #emacsconf-gen for the General track
+and #emacsconf-dev for the Development track.
+If you need to reach us, you can join #emacsconf-org
+or e-mail emacsconf-org-private@gnu.org.
+You can use #emacsconf for hallway conversations.
+Of course, you can join any of these channels
+with your favourite IRC client.
+You can connect to irc.libera.chat
+port 6697 with TLS.
+Once again, we're going to be streaming with open captions
+for most of the talks this year, thanks to our speakers and
+captioning volunteers. The captioned talks are indicated
+on the schedule, and with any luck, we'll be posting
+transcripts on talk pages shortly after the talks start.
+If you need additional accommodations,
+please let us know in #emacsconf-org
+and we'll see if we can make things happen.
+If something goes down, we'll update status.emacsconf.org.
+If it doesn't look like we've noticed yet,
+please let us know in the #emacsconf-org IRC channel,
+where we will be quietly panicking.
+In all of these conversations, please keep in mind
+our guidelines for conduct. You can find them on the wiki,
+They basically boil down to: please be nice.
+If all goes well, the prerecorded talks and transcripts
+should be available from the talk pages
+shortly after they start playing,
+and we'll post the recordings of live talks
+and Q&A sessions within the next month or so.
+If you'd like to get an update, you can subscribe to
+the emacsconf-discuss mailing list.
+All right, let's get going.
+Leo is hosting the general track,
+and Corwin hosting the development track.
+The other volunteers and I will run around mostly backstage,
+and you'll probably meet us in the closing remarks.
+That's also where we get to thank
+all the people and organizations
+who make EmacsConf possible.
+Thanks for coming to EmacsConf 2025.
+**** TODO Record sun-open remarks
+:PROPERTIES:
+:CUSTOM_ID: phases-record-intros-and-opening-remarks-record-sun-open-remarks
+:END:
+
+Welcome to the second day of EmacsConf 2025.
+The best parts of EmacsConf are the conversations.
+The wiki has a page on how to watch and participate,
+and I'll give you a quick overview as well.
+You can watch the stream at live.emacsconf.org
+using free and open source software.
+Using a streaming media player like mpv
+seems to be the best way to watch in terms of performance
+but there are also web-based players
+just in case that's all you've got.
+As you're watching the talks,
+you can refer to the schedule in another window.
+Hover over the boxes to see the times and titles,
+and click on the boxes in the schedule
+to jump to the talk's page for more details.
+You can also get the schedule as an iCalendar file
+or as an Org file in different time zones.
+
+Many talks will be followed by
+live Q&A web conferences with the speaker,
+which will be done in BigBlueButton or BBB.
+These are indicated with a solid border on the schedule
+and by Q&A: BBB on the schedule page.
+You can join the web conference room
+by clicking on the BBB link
+on the schedule page or the talk's webpage.
+Then you can ask your questions yourself when the Q&A starts.
+To improve performance, please keep your webcam off
+and stay muted until it's your turn to talk.
+If you don't like Javascript,
+you can still ask questions via IRC
+and the hosts can read them out for you.
+
+We're probably going to automatically switch
+between talks and Q&A sessions,
+so the transitions on the stream might be a little sudden,
+People in the BigBlueButton room
+can continue the conversation
+even after the talk moves off-stream,
+and you can also reach out to the speakers
+using the contact information on the talk page.
+
+Other talks will have Q&A via Etherpad or IRC,
+depending on what the speakers prefer.
+This is indicated in the schedule with a dashed border
+and on the schedule page as well.
+Please ask your questions in the recommended places
+so that the speakers can easily see them.
+
+Some talks will have the Q&A after the event,
+so you can add your questions to their Etherpad.
+We'll e-mail the speakers afterwards
+and update the talk pages when they answer.
+
+We're going to start Sunday morning
+with more IRC/Etherpad Q&A
+to try to get around
+some of the bandwidth issues
+that we noticed last year.
+
+The schedule pages and track pages have quick shortcuts
+so that you can find out more about talks, open the Etherpads,
+and join the Q&A sessions. The watch page has more tips
+on how to make the most of Q&A.
+If you can, please add notes and ask questions
+in the Etherpad for the talk. That makes it easier
+for everyone to share their notes,
+and speakers and hosts can read the questions from there.
+We'll copy the notes to the talk pages afterwards.
+We have one pad for each talk,
+so you can follow the links to get to the next one
+or go back to the schedule and get the link from there.
+If you have general feedback about
+the conference itself, please put it in
+pad.emacsconf.org/2025 , which is linked on each pad.
+You can also use this as a general community message board
+for things like Help Wanted.
+Internet Relay Chat or IRC can be another great way
+to be part of lots of conversations.
+You can use chat.emacsconf.org to join the IRC channels
+through your web browser. The tabs on the left can help you
+switch between the different channels.
+Most discussions will be in
+#emacsconf-gen for the General track.
+If you need to reach us, you can join #emacsconf-org
+or e-mail emacsconf-org-private@gnu.org.
+You can use #emacsconf for hallway conversations.
+Of course, you can join any of these channels
+with your favourite IRC client.
+You can connect to irc.libera.chat
+port 6697 with TLS.
+Once again, we're going to be streaming with open captions
+for most of the talks this year, thanks to our speakers and
+captioning volunteers. The captioned talks are indicated
+on the schedule, and with any luck, we'll be posting
+transcripts on talk pages shortly after the talks start.
+If you need additional accommodations,
+please let us know in #emacsconf-org
+and we'll see if we can make things happen.
+If something goes down, we'll update status.emacsconf.org.
+If it doesn't look like we've noticed yet,
+please let us know in the #emacsconf-org IRC channel,
+where we will be quietly panicking.
+In all of these conversations, please keep in mind
+our guidelines for conduct. You can find them on the wiki,
+They basically boil down to: please be nice.
+If all goes well, the prerecorded talks and transcripts
+should be available from the talk pages
+shortly after they start playing,
+and we'll post the recordings of live talks
+and Q&A sessions within the next month or so.
+If you'd like to get an update, you can subscribe to
+the emacsconf-discuss mailing list.
+All right, let's get going.
+Leo Vivier is hosting the general track again today.
+The other volunteers and I will run around mostly backstage,
+and you'll probably meet us in the closing remarks.
+That's also where we get to thank
+all the people and organizations
+who make EmacsConf even possible.
+Thanks for coming to EmacsConf 2025.
+*** TODO Generate assets
+*** TODO Send check-in details :email:
+*** TODO Ask libera.chat to increase IRC limit
+** After the conference
+*** TODO Send thanks and follow-up questions :email:
+** TODO Confirm shifts
+SCHEDULED: <2026-12-01 Tue>
+:PROPERTIES:
+:CUSTOM_ID: shifts
+:CREATED: [2025-11-15 Sat 15:20]
+:END:
+:LOGBOOK:
+- Note taken on [2025-11-22 Sat 17:35] \\
+ probably fine for this year
+:END:
+
+#+BEGIN_EXPORT md
+<a name="shifts"></a>
+#+END_EXPORT
+
+AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition)
+
+Saturday Dec 6 2025
+
+#+NAME: saturday-shifts
+| | Start | End | [[https://emacsconf.org/2023/volunteer/host/][Host]] | Streamer | [[https://emacsconf.org/2023/volunteer/checkin/][Checkin]] | [[https://emacsconf.org/2023/volunteer/irc/][IRC]] | [[https://emacsconf.org/2023/volunteer/pad/][Pad]] | Coord |
+|--------+-------+-------+--------+----------+---------+-----+-----+--------|
+| Gen AM | 09:00 | 12:00 | zaeph | sachac | sachac | | | sachac |
+| Gen PM | 13:00 | 17:00 | zaeph | sachac | sachac | | | sachac |
+| Dev AM | 10:00 | 12:00 | corwin | sachac | sachac | | | sachac |
+| Dev PM | 13:00 | 17:00 | corwin | sachac | sachac | | | sachac |
+
+Sunday Dec 7 2025
+
+#+NAME: sunday-shifts
+| | Start | End | [[https://emacsconf.org/2023/volunteer/host/][Host]] | Streamer | [[https://emacsconf.org/2023/volunteer/checkin/][Checkin]] | [[https://emacsconf.org/2023/volunteer/irc/][IRC]] | [[https://emacsconf.org/2023/volunteer/pad/][Pad]] | Coord |
+|--------+-------+-------+--------------+----------+---------+-----+-----+--------|
+| Gen AM | 09:00 | 12:00 | zaeph/corwin | sachac | sachac | | | sachac |
+| Gen PM | 13:00 | 17:00 | zaeph/corwin | sachac | sachac | | | sachac |
+
+Backups:
+- dev host/streamer:
+- gen host/streamer:
+- checkin, IRC, pad:
+
+Interested in a shift? Please e-mail [[mailto:emacsconf-org-private@gnu.org]] and we'll help you figure out what you need to learn.
+
+#+begin_src emacs-lisp :var sat=saturday-shifts :var sun=sunday-shifts :rownames no :colnames no :results verbatim replace
+`(setq emacsconf-shifts
+ (list
+ ,@(apply #'append
+ (mapcar
+ (lambda (day)
+ (let ((headers
+ (mapcar
+ (lambda (field)
+ (intern
+ (concat
+ ":"
+ (downcase
+ (if (string-match org-link-bracket-re field)
+ (match-string 2 field)
+ field)))))
+ (seq-drop (car (cadr day)) 3))))
+ (mapcar
+ (lambda (row)
+ (apply #'append
+ (list 'list :id
+ (when (string-match "^\\([^ ]+\\) \\(AM\\|PM\\)" (car row))
+ (format "%s-%s-%s"
+ (car day)
+ (downcase (match-string 2 (car row)))
+ (downcase (match-string 1 (car row)))))
+ :track
+ (if (string-match "^Gen" (car row)) "General" "Development")
+ :start
+ (format "%sT%s:00%s"
+ (elt day 2)
+ (elt row 1)
+ emacsconf-timezone-offset)
+ :end
+ (format "%sT%s:00%s"
+ (elt day 2)
+ (elt row 2)
+ emacsconf-timezone-offset))
+ (seq-map-indexed
+ (lambda (value index)
+ (unless (string= value "")
+ (list (elt headers index) value)))
+ (seq-drop row 3))))
+ (cdr (cadr day)))
+ ))
+ (list
+ (list "sat" sat "2025-12-06")
+ (list "sun" sun "2025-12-07"))))))
+
+#+end_src
+
+#+RESULTS:
+:results:
+(setq emacsconf-shifts (list (list :id "sat-am-gen" :track "General" :start "2025-12-06T09:00:00-0500" :end "2025-12-06T12:00:00-0500" :host "zaeph" :streamer "sachac" :checkin "sachac" :coord "sachac") (list :id "sat-pm-gen" :track "General" :start "2025-12-06T13:00:00-0500" :end "2025-12-06T17:00:00-0500" :host "zaeph" :streamer "sachac" :checkin "sachac" :coord "sachac") (list :id "sat-am-dev" :track "Development" :start "2025-12-06T10:00:00-0500" :end "2025-12-06T12:00:00-0500" :host "corwin" :streamer "sachac" :checkin "sachac" :coord "sachac") (list :id "sat-pm-dev" :track "Development" :start "2025-12-06T13:00:00-0500" :end "2025-12-06T17:00:00-0500" :host "corwin" :streamer "sachac" :checkin "sachac" :coord "sachac") (list :id "sun-am-gen" :track "General" :start "2025-12-07T09:00:00-0500" :end "2025-12-07T12:00:00-0500" :host "zaeph/corwin" :streamer "sachac" :checkin "sachac" :coord "sachac") (list :id "sun-pm-gen" :track "General" :start "2025-12-07T13:00:00-0500" :end "2025-12-07T17:00:00-0500" :host "zaeph/corwin" :streamer "sachac" :checkin "sachac" :coord "sachac")))
+:end:
+
+
+* TODO [#A] Check EmacsConf infrastructure
+SCHEDULED: <2026-10-01 Thu>
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure
+:CREATED: [2026-05-13 Wed 11:08]
+:END:
+
+- [ ] IRC
+- [ ] Streaming assets
+- [ ] Publishing to the wiki
+- [ ] Web conference
+- [ ] OBS
+- [ ] Publishing to the media server
+- [ ] Etherpad
+- [ ] Streaming
+- [ ] Toobnix
+- [ ] YouTube
+- [ ] Mumble: Can join from my phone, can speak on stream
+
+** BigBlueButton
+:PROPERTIES:
+:CREATED: [2024-11-02 Sat 11:38]
+:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton
+:END:
+
+- Plan: Scale up the bbb.emacsverse.org on Sacha's Linode account
+- [[https://emacsconf.org/2024/organizers-notebook/#check-emacsconf-infrastructure-bigbluebutton][Installation notes from last year]]
+
+*** TODO Create meeting rooms for each speaker
+:PROPERTIES:
+:CREATED: [2024-11-02 Sat 11:50]
+:Effort: 0:30
+:CUSTOM_ID: create_rooms
+:END:
+:LOGBOOK:
+CLOCK: [2024-11-28 Thu 10:00]--[2024-11-28 Thu 10:12] => 0:12
+CLOCK: [2024-11-20 Wed 10:48]--[2024-11-20 Wed 12:18] => 1:30
+:END:
+
+[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-bigbluebutton-creating-talk-bbb-rooms][Creating talk BBB rooms]]
+
+*** TODO Back up after the conference
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-notes-backing-up
+:CREATED: [2025-06-17 Tue 10:34]
+:END:
+
+[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-bigbluebutton-backing-up-bbb][Backing up BBB]]
+
+*** TODO Set up moderator access codes for all the meeting rooms, and make it so people can start the meeting
+:PROPERTIES:
+:Effort: 0:30
+:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-set-up-moderator-access-codes-for-all-the-meeting-rooms-and-make-it-so-people-can-start-the-meeting
+:END:
+
+[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-bigbluebutton-setting-up-moderator-access-codes][Setting up moderator access codes]]
+*** TODO Check BBB audio from my phone
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-check-bbb-audio-from-my-phone
+:END:
+*** Customize BigBlueButton branding
+**** TODO [#C] Change background presentation
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-change-background-presentation
+:END:
+https://docs.bigbluebutton.org/3.0/administration/customize/#change-the-default-presentation
+**** TODO [#C] Modify landing page
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-modify-landing-page
+:END:
+/var/www/bigbluebutton-default/assets/index.html
+keep backup copy as it will be overwritten when bbb-conf is called
+**** TODO [#C] Change default welcome message
+:PROPERTIES:
+:Effort: 0:30
+:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-change-default-welcome-message
+:END:
+https://docs.bigbluebutton.org/3.0/administration/customize/#change-the-default-welcome-message
+**** TODO [#C] Change html5 title
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-change-html5-title
+:END:
+/usr/share/bigbluebutton/html5-client/private/config/settings.yml
+
+TARGET=/usr/share/bigbluebutton/html5-client/private/config/settings.yml
+yq e -i ".public.app.clientTitle = \"EmacsConf\"" $TARGET
+**** TODO [#C] Try live captions
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-try-live-captions
+:END:
+https://docs.bigbluebutton.org/3.0/administration/customize/#enable-live-captions
+**** TODO Explore meeting layout? Default to custom, hosts will need to drag people's webcam over if there's a share
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-explore-meeting-layout-default-to-custom-hosts-will-need-to-drag-people-s-webcam-over-if-there-s-a-share
+:END:
+
+** IRC web client
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-irc-web-client
+:END:
+
+On front0:
+cd ~thelounge; sudo -u thelounge nohup node /usr/bin/thelounge start
+
+*** TODO Ask libera.chat to increase connections allowed from chat.emacsconf.org on Dec 6 and 7
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-irc-web-client-ask-libera-chat-to-increase-connections-allowed-from-chat-emacsconf-org-on-dec-7-and-8
+:END:
+[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-irc-web-client][IRC web client]]
+** IRC announcements
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-irc-announcements
+:END:
+*** TODO Confirm manual IRC announcements
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-irc-announcements-confirm-manual-irc-announcements
+:END:
+*** TODO Confirm automated IRC announcements from res
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-irc-announcements-confirm-automated-irc-announcements-from-res
+:END:
+** Media
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-media
+:END:
+
+*** TODO Switch public media to unprotected root before the conference
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-media-switch-public-media-to-unprotected-root-before-the-conference
+:END:
+
+1. Clear public media directory.
+2. Set =media_protect_root= to false in Ansible =group_vars/all.yml=.
+3. =ansible-playbook -i inventory.yml prod-playbook.yml --tags media=
+
+You can generate the index with =emacsconf-publish-update-media=.
+** TODO Publishing resources to the wiki
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-publishing-resources-to-the-wiki
+:END:
+ansible-playbook -i inventory.yml prod-playbook.yml --tags publish
+
+
+
+** TODO Publishing videos to the media server
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-publishing-videos-to-the-media-server
+:END:
+** Playing videos, switching to windows
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-playing-videos-switching-to-windows
+:END:
+
+*** TODO Generate test videos for everything
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-playing-videos-switching-to-windows-generate-test-videos-for-everything
+:END:
+
+emacsconf-stream-generate-test-videos
+
+*** TODO Document how to get that set up again
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-playing-videos-switching-to-windows-document-how-to-get-that-set-up-again
+:END:
+** Etherpad
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-etherpad
+:END:
+*** TODO Try upgrading to 2.x
+:PROPERTIES:
+:Effort: 2:00
+:END:
+:LOGBOOK:
+CLOCK: [2025-09-22 Mon 12:46]
+:END:
+
+https://galaxy.ansible.com/ui/repo/published/s3lph/pads/content/role/etherpad/
+[[emacsconf-ansible:roles/pad/tasks/main.yml]]
+
+nodemon -e yml -w ../../roles/pad/tasks/main.yml -x "vagrant up --provision"
+
+http://pad.emacsconf.org.vagrant/
+
+Progress:
+http://pad.emacsconf.org.vagrant:9001/p/2025-hyperboleqa works
+http://pad.emacsconf.org.vagrant/p/2025-hyperboleqa works now that I passthrough .js
+
+
+http://pad.emacsconf.org.vagrant/padbootstrap-rLLvrD2UOFI.min.js
+*** Generate pads for all the talks
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-etherpad-generate-pads-for-all-the-talks
+:END:
+
+
+*** TODO Generate the main index
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-etherpad-generate-the-main-index
+:END:
+** TODO Do a dry run
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run
+:END:
+*** TODO Generate all the test assets
+:PROPERTIES:
+:Effort: 0:15
+:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run-generate-all-the-test-assets
+:END:
+*** TODO Test connecting to VNC and streaming via OBS :emacsconf:
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run-test-connecting-to-vnc-and-streaming-via-obs
+:CREATED: [2025-11-07 Fri 13:52]
+:END:
+** Resizing
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-resizing
+:END:
+
+live0: 64GB
+front0: 32GB
+meet: 64GB
+
+*** TODO [#A] Resize nodes before production
+SCHEDULED: <2026-12-11 Fri>
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-resizing-resize-nodes-before-production
+:CREATED: [2026-07-04 Sat 10:39]
+:END:
+
+live0: 64GB
+front0: 32GB
+meet: 64GB
+
+*** TODO [#A] Resize nodes after production
+SCHEDULED: <2026-12-13 Sun>
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-resizing-resize-nodes-after-production
+:CREATED: [2026-07-04 Sat 10:39]
+:END:
+
+live0: nanode
+front0: nanode
+*** TODO [#A] Resize meet after production
+SCHEDULED: <2026-12-13 Sun>
+:PROPERTIES:
+:CUSTOM_ID: check-emacsconf-infrastructure-resizing-resize-meet-after-production
+:CREATED: [2026-07-04 Sat 10:39]
+:END:
+meet: nanode
+* Processes and notes
+:PROPERTIES:
+:CUSTOM_ID: processes-and-notes
+:END:
+** Hosting
+:PROPERTIES:
+:CUSTOM_ID: processes-and-notes-hosting
+:END:
+*** TODO Finalize host for dev track
+:PROPERTIES:
+:CUSTOM_ID: processes-and-notes-hosting-finalize-host-for-dev-track
+:END:
+** ERC
+:PROPERTIES:
+:CUSTOM_ID: processes-and-notes-erc
+:END:
+
+Some convenient commands are defined in emacsconf-el:emacsconf-erc.el.
+
+| /opall | Grant operator status in the Emacsconf channels |
+| /deopall | Remove operator status in the Emacsconf channels |
+| /conftopic | Set the first part of the topic |
+** Uploading videos
+*** YouTube
+
+emacsconf-publish-youtube-step-through-publishing
+
+
+*** Toobnix
+
+* Decisions
+:PROPERTIES:
+:CUSTOM_ID: decisions
+:END:
+* Support code
+:PROPERTIES:
+:CUSTOM_ID: support-code
+:END:
+
+#+begin_src emacs-lisp :results silent
+(defun my-ox-link-path (link _ info)
+ (let* ((raw-path (org-element-property :path link)))
+ (setq raw-path
+ (org-export-file-uri
+ (org-publish-file-relative-name raw-path info)))
+ ;; Possibly append `:html-link-home' to relative file
+ ;; name.
+ (let ((home (and (plist-get info :html-link-home)
+ (org-trim (plist-get info :html-link-home)))))
+ (when (and home
+ (plist-get info :html-link-use-abs-url)
+ (not (file-name-absolute-p raw-path)))
+ (setq raw-path (concat (file-name-as-directory home) raw-path))))
+ raw-path))
+
+(defun my-org-md-link (link desc info)
+ (if (string= (org-element-property :type link) "file")
+ (let ((path (my-ox-link-path link desc info)))
+ (if (string= (file-name-extension path) "svg")
+ (with-temp-buffer
+ (insert-file-contents-literally path)
+ (buffer-string))
+ (org-md-link link desc info)))
+ (org-md-link link desc info)))
+
+(with-eval-after-load 'ox-md
+ (setf
+ (alist-get 'link (org-export-backend-transcoders (org-export-get-backend 'md)))
+ 'my-org-md-link))
+#+end_src
+
+#+RESULTS:
+:results:
+my-org-md-link
+:end:
diff --git a/2026/organizers-notebook/schedule.svg b/2026/organizers-notebook/schedule.svg
new file mode 100644
index 00000000..31e1d110
--- /dev/null
+++ b/2026/organizers-notebook/schedule.svg
@@ -0,0 +1 @@
+<svg width="500" height="700" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="166" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Saturday</text><a href="https://emacsconf.org/2026/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="40" y="40" opacity="0.8" width="42" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-open</text></g></a><a href="https://emacsconf.org/2026/talks/emacspeak" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title> 9:10- 9:40 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="40" y="53" opacity="0.8" width="42" height="41" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,92)"><text fill="black" x="0" y="0" font-size="10" transform="nil">emacspeak</text></g></a><a href="https://emacsconf.org/2026/talks/align" title="Column-aligning text in Emacs" data-slug="align"><title> 9:50-10:10 Column-aligning text in Emacs</title><rect x="40" y="108" opacity="0.8" width="42" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,133)"><text fill="black" x="0" y="0" font-size="10" transform="nil">align</text></g></a><a href="https://emacsconf.org/2026/talks/cadet" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>10:30-10:40 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="40" y="163" opacity="0.8" width="42" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,174)"><text fill="black" x="0" y="0" font-size="10" transform="nil">cadet</text></g></a><a href="https://emacsconf.org/2026/talks/local" title="Local file history possibilities in Emacs" data-slug="local"><title>11:00-11:10 Local file history possibilities in Emacs</title><rect x="40" y="204" opacity="0.8" width="42" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,215)"><text fill="black" x="0" y="0" font-size="10" transform="nil">local</text></g></a><a href="https://emacsconf.org/2026/talks/portable" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title> 1:00- 1:20 Emacs as my portable user space across operating platforms</title><rect x="40" y="369" opacity="0.8" width="42" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">portable</text></g></a><a href="https://emacsconf.org/2026/talks/sat-close" title="Saturday closing remarks / open session" data-slug="sat-close"><title> 1:40- 1:50 Saturday closing remarks / open session</title><rect x="40" y="424" opacity="0.8" width="42" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,435)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-close</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(166,0)"><title>Schedule for Sunday</title><rect width="166" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2026/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="40" y="40" opacity="0.8" width="42" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-open</text></g></a><a href="https://emacsconf.org/2026/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 1:00- 1:10 Sunday closing remarks</title><rect x="40" y="369" opacity="0.8" width="42" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,380)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-close</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(332,0)"><title>Schedule for Sunday</title><rect width="166" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2026/talks/open-mic" title="Open session" data-slug="open-mic"><title>11:15-11:15 Open session</title><rect x="40" y="1132" opacity="0.8" width="42" height="0" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,1130)"><text fill="black" x="0" y="0" font-size="10" transform="nil">open-mic</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">6 PM</text></g></g></svg> \ No newline at end of file
diff --git a/2026/prepare.md b/2026/prepare.md
new file mode 100644
index 00000000..1c68c08a
--- /dev/null
+++ b/2026/prepare.md
@@ -0,0 +1,313 @@
+[[!meta title="Preparing your talk"]]
+[[!meta copyright="Copyright &copy; 2019, 2020 Amin Bandali; 2021, 2022 Amin Bandali, Sacha Chua, Leo Vivier; 2023-2026 Sacha Chua"]]
+
+This page contains tips for preparing your talk. (Target date: on or before
+**October 30, 2026**) If you have any questions, concerns, or suggestions
+please feel free to write to one of our organizational mailing lists: the
+public <emacsconf-org@gnu.org> list, or the private
+<emacsconf-org-private@gnu.org> list, depending on the nature of the
+matter you would like to discuss.
+
+Note: being part of a wiki, this page is subject to change (including
+by you!); so please check back every now and again for any changes and
+updates.
+
+We'll bring up the web-based upload service at some point. Let us know
+at <emacsconf-org-private@gnu.org> if you're already ready to go!
+<!--[[Already done? Upload your video and other files|upload]]-->
+
+## Guidelines for conduct
+
+Please review our [[guidelines for conduct|conduct]] when preparing your
+talk to make sure we’re all on the same page and strive to make the
+event a great experience for all. If you’re not sure whether your talk
+or presentation style meets the guidelines laid out in the guidelines
+for conduct, we’d be happy to help. You can email Sacha Chua at
+<sacha@sachachua.com> to chat more about this.
+
+## Recording your talk
+
+To help EmacsConf 2026 run smoothly, please prerecord your talk, and
+plan to upload your video(s) by **October 30, 2026** to allow us enough time
+to do any needed processing (e.g. format or codec conversion) in
+preparation for the event. Please consider submitting a prerecording as
+early as possible so that we can see if volunteers can caption your
+video to make it more accessible and searchable.
+
+To make it easier for people to orient themselves
+when listening to lots of EmacsConf videos in the
+playlist, you may want to start your video with
+something along the lines of:
+
+"Hi! I’m ${NAME} and I’ll be talking about ${TOPIC}."
+
+We'll also try to record a brief introduction for
+your talk with enough time for you to review the
+pronunciation.
+
+### Appearance
+
+The talks will be broadcast with a resolution of **1280x720px**
+(720p), so it may help to switch to that size before you record.
+Please make sure your text will be easy to read.
+[You can change the font-size in your Emacs.](https://www.emacswiki.org/emacs/SetFonts#h5o-6)
+(Maybe `M-x customize-face default` and set the height to 150 or more, depending on your resolution?) If you
+are capturing a single window, you can also resize it before you
+record.
+
+We recommend using **dark text on a light background** for your
+recording, as this can be easier to see especially for people who are
+visually impaired. Themes with more contrast are easier to read than
+low-contrast ones. If you use a dark theme with your Emacs, you can
+change to a lighter one with `M-x customize-theme` (look for those
+with a `-light` suffix). The `modus-themes-load-operandi` command from
+the `modus-themes` package can be a good option.
+
+### Audio quality
+
+Audio quality can go a long way in making your talk enjoyable to
+watch. Consider the background noise in the room that you are using to
+record, and see if you can temporarily turn off things for your
+recording.
+
+You can help us try to denoise the audio by
+providing a recording of at least **5 seconds of
+quiet** in the same room in which you plan to do
+your main recording. You can listen to it to see
+how quiet things are, and figure out if there are
+other things you can turn off such as fans or
+other computers. We can try to use the noise
+profile from that recording to reduce the noise in
+your presentation.
+
+If you have an **external microphone or a
+headset**, try recording the audio through that so
+that you can reduce the sound of the computer
+itself. If you have a smartphone, that might also
+be a good way to record audio that you can then
+combine with your video afterwards.
+
+Many speakers prefer to record and edit the audio until they're happy
+with how it fits in the time, and then add the slides or videos
+afterwards. It might be easier than trying to do both the audio and
+the video in one go.
+
+### Tools
+
+You can use your favorite video recording tool. If you don't have one yet, you can try
+any of the following pieces of free software, depending on your needs:
+
+- [OBS](//obsproject.com)
+- [SimpleScreenRecorder](//www.maartenbaert.be/simplescreenrecorder/)
+- [vokoscreenNG](//linuxecke.volkoh.de/vokoscreen/vokoscreen.html)
+- [peek](//github.com/phw/peek)
+- [ffmpeg](//trac.ffmpeg.org/wiki/Capture/Desktop)
+
+If you decide to use OBS, please make sure to verify the window-capture
+options. Most notably, there is a “Swap red and blue” option that is
+necessary for some setups, and it's easy to miss it.
+
+You might find the following free software programs useful for editing
+your video recordings:
+
+- [Kdenlive](//kdenlive.org/en/)
+- [Blender](//www.blender.org)
+- [Pitivi](http://www.pitivi.org)
+
+Per GNU Project’s [Guide to
+Formats](//audio-video.gnu.org/docs/formatguide.html), we prefer to
+receive prerecorded videos in formats unencumbered by software patents,
+such as `video/webm` ([WebM](https://www.webmproject.org/)-encoded video
+files, with `.webm` file extension) and `video/ogg` (video files encoded
+with the Theora video codec, encapsulated in an Ogg transport layer,
+with `.ogg` or `.ogv` file extension). However, if for one reason or
+another you are unable to send us your prerecorded video in one of the
+above formats, you may submit them in other common formats, like MPEG-4
+(`.mp4`), and we will convert them to our preferred formats on your
+behalf.
+
+*Prepare recorded video in 720p (1280px by 720px) or higher, in the
+WebM format if possible.*
+
+
+# Compression
+
+If you would like to compress your video before uploading, the following shell script may be useful:
+
+ Q=32
+ CPU=8
+ ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -an -row-mt 1 -tile-columns 2 -tile-rows 2 -cpu-used $CPU -g 240 -pass 1 -f webm -threads $CPU /dev/null &&
+ ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -c:a libopus -row-mt 1 -tile-columns 2 -tile-rows 2 -cpu-used $CPU -pass 2 -g 240 -threads $CPU "$2"
+
+If you put it in a file called `compress-video.sh`, you can execute it
+from the command line with something like `sh compress-video.sh
+input-file.webm output-file.webm`. It will compress the file in two
+passes. During the first pass, the frame count will increase, but the
+speed will be 0. After the first pass, it will display proper progress
+information.
+
+<a name="tech-check"></a>
+# Tech-check
+
+We ask that speakers who plan to participate in live Q&A sessions schedule
+a short tech-check in the weeks leading to the conference; this is to ensure
+that you can perform all the common tasks you’d need such as sharing your
+screen or toggling your microphone.
+
+We use BigBlueButton for our video-conferencing
+needs, and we'll send you a URL to your own
+BigBlueButton room close to the conference. Tiling
+window managers and multi-monitor setups can be a
+little tricky, so it's good to figure out a setup
+that works for you. If there are things you'd like
+to confirm by having another person in the
+meeting, such as audio quality, please feel free
+to get in touch with us and we’ll sort things out
+together.
+
+Thank you so much for helping with EmacsConf 2026!
+
+# Frequently-asked questions
+
+## Can I present live?
+
+We’d prefer that all talks have prerecorded
+videos.
+
+- It's a lot less stressful for both
+presenters and organizers.
+- Videos can be immediately available for playback once your session starts.
+- We can work on getting the video captioned for better accessibility.
+
+If you really need or want to present live,
+though, let us know and we'll figure that out.
+
+There will also be time for live questions and
+answers, so if you can record a short video
+covering your main points, you might be able to go
+into more detail in live Q&A.
+
+## My presentation is over/under the time I proposed. Do I need to stress out about it?
+
+No need to stress out about it. If it's a little
+over or under, we'll adjust the Q&A accordingly.
+
+If you find that your talk is much shorter than
+anticipated, let us know and we can adjust the
+schedule.
+
+If there's so much you want to talk about and you
+can't decide what to squeeze in, maybe you can
+think of your video as a short teaser that can get
+people interested and point them to where they can
+find out more. You can email
+<emacsconf-submit@gnu.org> links and other notes
+to add to the wiki page for your talk. If you’d
+like to record a longer video *in addition* to the
+short one for the main conference, please feel
+free to send us that too.
+
+Additionally, even though it is tempting, please refrain from speaking
+super quickly or fast-forwarding your recording to make it fit within
+the format. Trimming out the silences and the filler words can help
+sometimes, but a better solution for you might be to condense your
+talk to the essentials, then write, record, and edit your voice-over.
+Once you've figured out how to use the time, you can record your video
+to go along with it. Don't sweat being a few minutes over or under,
+that's cool.
+
+Feel free to send some questions for the host to ask you during the
+Q&A so that you can address extra points that didn't make it into the
+video.
+
+## What if there are lots of great questions during Q&A and it's already time for the next talk?
+
+The stream will move on to the next talk, but people can join the
+BigBlueButton meeting room and keep chatting with you for as long as
+you want to keep going. You can also continue answering questions on
+the collaborative pad or IRC, and we’ll copy questions and answers
+onto the wiki page afterwards so that you can answer them in your own
+time after the event.
+
+## Do I need to follow some visual guidelines for the presentation?
+
+- Dark text on a light background is more legible than the opposite
+ (especially for people who are visually impaired), and more contrast
+ is better than a low-contrast theme. This stands for both your
+ slides and your Emacs theme.
+- If you think your fonts might be too small in your slides or in Emacs,
+ they might very well be. [You can change the font-size in your
+ Emacs](https://www.emacswiki.org/emacs/SetFonts#h5o-6), but you can
+ also play with the size of the captured window during your recording.
+- Try to minimize the screen-flashes that occur when you switch between
+ windows, especially if their themes do not cohere (light-to-dark and
+ the reverse). If you can edit your recording, fades and other
+ transitions are a neat solution to this problem.
+
+## How do I show my keystrokes on screen?
+
+In Emacs, you can use
+[interaction-log.el](https://github.com/emacsattic/interaction-log)
+(in MELPA) to display the keystrokes and the commands they run in a separate
+buffer. For a system-wide solution, you can look into
+[screenkey](https://gitlab.com/screenkey/screenkey).
+
+## I’m not used to talking to myself. Can I present the talk to someone?
+
+We might be able to help you record your talk using the BigBlueButton
+web conferencing system before the conference. Please email
+<emacsconf-submit@gnu.org> with some times that might work for you and
+we’ll see if a volunteer can meet up with you to record it.
+
+## Can I see the other proposed talks?
+
+Once we’ve emailed the speakers about their acceptance, we’ll put
+up the talk wiki pages. That way, you can see what else is going on
+in the conference and maybe coordinate with other speakers in order to
+minimize overlap and maximize awesomeness.
+
+## Do you have an Org TODO I can just copy into my agenda file?
+
+Sure, modify this as needed:
+
+```
+* TODO Record presentation for EmacsConf: Title goes here
+DEADLINE: <2026-10-30 Fri>
+
+- 1280x720px
+- large text; ideally dark text on a light background
+- minimize background noise
+ - try to use an external microphone if possible (ex: backup audio recording with phone)
+ - consider recording ~5 seconds of silence in the room you're planning to record in
+
+https://emacsconf.org/2026/prepare - tips and instructions
+
+Questions:
+- public: mailto:emacsconf-org@gnu.org
+- private: mailto:emacsconf-org-private@gnu.org
+
+Note: 2026-10-30 is a target date and we'd love to
+get your video by then. It's not a *deadline*
+deadline, so don't stress out if life happens.
+Just let us know!
+
+Thanks for sharing what you're learning!
+```
+
+## More questions?
+
+Please email <emacsconf-submit@gnu.org>. We’d love to hear from you.
+
+Thanks for contributing to EmacsConf 2026!
+
+<!-- <a name="tech-checklist"></a> -->
+<!-- #### Tech checklist -->
+
+<!-- - Can you speak and be heard? Is there echo? -->
+<!-- - Can you hear the organizer? -->
+<!-- - Can you share your screen? Is the screen readable? -->
+<!-- - If you plan to show your keystrokes, is that display visible? -->
+<!-- - If you want to share your webcam (optional), can you enable it? Is it visible? Will there likely be distractions in the background? -->
+<!-- - Can you view the collaborative pad? Will you be comfortable reviewing questions on your own (perhaps by keeping it open beside your shared window), or will you need a volunteer to relay questions to you? -->
+<!-- - Can you share contact information (ex: phone number) so that we can get in touch with you in case of technical issues or scheduling changes? -->
+<!-- - Do you need help finding your way around IRC so that you can check into `#emacsconf-org`? What is your IRC nickname? -->
diff --git a/2026/schedule-details.md b/2026/schedule-details.md
new file mode 100644
index 00000000..5c933930
--- /dev/null
+++ b/2026/schedule-details.md
@@ -0,0 +1,16 @@
+Jump to: <a href="#dev">Development</a>
+
+<h1 id="gen" class="sched-track General">General (9 talks)</h1>
+[[!template id=sched title="""Open session""" url="""/2026/talks/open-mic""" speakers="""Participants""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""open-mic""" note=""""""]]
+[[!template id=sched title="""Saturday opening remarks""" url="""/2026/talks/sat-open""" speakers="""Sacha Chua""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sat-open""" note=""""""]]
+[[!template id=sched title="""Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective""" url="""/2026/talks/emacspeak""" speakers="""Arkadiusz""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""emacspeak""" note=""""""]]
+[[!template id=sched title="""Column-aligning text in Emacs""" url="""/2026/talks/align""" speakers="""Jeff Trull""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""align""" note=""""""]]
+[[!template id=sched title="""My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration""" url="""/2026/talks/cadet""" speakers="""Andy Drop""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""cadet""" note=""""""]]
+[[!template id=sched title="""Local file history possibilities in Emacs""" url="""/2026/talks/local""" speakers="""Wouter Groeneveld""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""local""" note=""""""]]
+[[!template id=sched title="""Sunday opening remarks""" url="""/2026/talks/sun-open""" speakers="""Sacha Chua""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sun-open""" note=""""""]]
+[[!template id=sched title="""Saturday closing remarks / open session""" url="""/2026/talks/sat-close""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sat-close""" note=""""""]]
+[[!template id=sched title="""Sunday closing remarks""" url="""/2026/talks/sun-close""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sun-close""" note=""""""]]
+
+Jump to: <a href="#gen">General</a>
+
+<h1 id="dev" class="sched-track Development">Development (0 talks)</h1>
diff --git a/2026/submit.md b/2026/submit.md
new file mode 100644
index 00000000..19606fe1
--- /dev/null
+++ b/2026/submit.md
@@ -0,0 +1,81 @@
+[[!meta title="Submit a proposal"]]
+[[!meta copyright="Copyright &copy; 2019, 2020 Amin Bandali<br />
+Copyright 2021 Amin Bandali, Sacha Chua, Leo Vivier<br />
+Copyright 2022 Amin Bandali<br />
+Copyright 2023-2026 Sacha Chua"]]
+
+When you're ready to submit your proposal, send your submission via
+email to <emacsconf-submit@gnu.org> by **Friday, September 18, 2026**.
+All speakers will be notified by Friday, September 25 (or earlier)
+regarding the status of their proposal. If you don't get a message,
+please follow up with us. If your talk is accepted, please plan to put
+together your prerecorded video by Friday, October 30, 2026 so that we
+can normalize all the audio and see if we can transcribe the talk.
+
+If you put your talk title in your submission e-mail's subject line,
+it'll be easier to keep track of the conversation. Please use the
+following template for your submission email:
+
+```
+Talk title:
+
+
+Talk description (<= 500 words):
+
+
+
+
+
+
+
+
+Format (10 minutes, 20 minutes, description of other format) and outline:
+
+Introduction for you and your talk (<= 100 words):
+
+Speaker name (and optional pronunciation) and preferred pronouns:
+
+Speaker availability (times and time zones that you're available Dec 12-13;
+ex: after 1pm America/Toronto both Sat and Sun):
+
+Preferred Q&A approach (live web conference, IRC, pad, wiki, and/or e-mail questions after the event):
+
+Public contact information (IRC nick, e-mail, website, and/or social media):
+
+Private emergency contact information (phone number or messaging) in
+case we need to reach you due to technical difficulties (optional):
+
+Please include this speaker release in order to indicate your agreement with it.
+
+ By submitting this proposal, I agree that my presentation at
+ EmacsConf 2026 is subject to the following terms and conditions:
+
+ The EmacsConf organizers may capture audio and video (a "Recording")
+ of my presentation and any associated materials, which may include
+ slides, notes, transcripts, and prerecording(s) of my presentation
+ that I provide to the EmacsConf organizers.
+
+ I authorize the EmacsConf organizers to distribute, reproduce,
+ publicly display, and prepare derivative works of the Recording and
+ any derivative works of the Recording (the "Licensed Materials")
+ under the terms of the Creative Commons Attribution-ShareAlike 4.0
+ International (CC BY-SA 4.0) license.
+
+ I grant to the EmacsConf organizers permission to use my name,
+ likeness, and biographic information in association with their use
+ of the Licensed Materials under the above license.
+
+ I represent that I have the authority to grant the above license to
+ the EmacsConf organizers. If my presentation incorporates any
+ material owned by third parties, I represent that the material is
+ sublicensable to the EmacsConf organizers or that my use of them is
+ fair use.
+```
+
+For other details, see the [[call for participation|cfp]].
+
+You can subscribe to the
+[emacsconf-discuss mailing list](https://lists.gnu.org/mailman/listinfo/emacsconf-discuss)
+for discussions and announcements about EmacsConf 2026.
+
+We look forward to your ideas and submissions. Thank you!
diff --git a/2026/talks.md b/2026/talks.md
new file mode 100644
index 00000000..ab27161d
--- /dev/null
+++ b/2026/talks.md
@@ -0,0 +1,12 @@
+We're getting ready for EmacsConf 2026. Want to propose a talk?
+[[Check out our call for participation|/2026/cfp]] and submit your proposal
+by Friday, September 18, 2026!
+
+Here are some of the talks we've accepted so far:
+
+[[!inline pages="internal(2026/schedule-details)" raw="yes"]]
+
+Want to help make EmacsConf even awesomer? [[Volunteer!|/volunteer]]
+
+We hope to see you all around on Dec 12-13 for EmacsConf 2026!
+
diff --git a/2026/talks/align.md b/2026/talks/align.md
new file mode 100644
index 00000000..8a78d763
--- /dev/null
+++ b/2026/talks/align.md
@@ -0,0 +1,59 @@
+[[!meta title="Column-aligning text in Emacs"]]
+[[!meta copyright="Copyright &copy; 2026 Jeff Trull"]]
+[[!inline pages="internal(2026/info/align-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Column-aligning text in Emacs
+Jeff Trull (he/him) - Pronunciation: rhymes with "hull" and "dull", Mastodon: @jaafar@hachyderm.io Blog: <http://jefftrull.github.io/> Email: <mailto:edaskel@att.net>
+
+[[!inline pages="internal(2026/info/align-before)" raw="yes"]]
+
+Emacs has a rich set of features for manipulating ordinary text. The "fill"
+features align text at the right or left edges of a paragraph, while
+"indent" adds space at the start of a line based on the level within an
+outline, or the depth of a block in code.
+
+Emacs also has a framework for lining up text **inside** a line to match
+adjacent lines, creating the appearance of columns. For example, some
+coders like to have equal signs in a series of assignment statements line
+up, like this:
+
+ apple = 12;
+ rambutan = 42;
+
+The [align.el family of functions](https://www.gnu.org/software/emacs/manual///html_node/emacs/Code-Alignment.html) provides functions like align, which is the entry point for mode-based code alignment, as well as align-regexp, which gives interactive, user-defined access to the same features.
+The presenter will give a basic introduction to the user-facing features before diving into a technical explanation of how to use the framework at the Lisp level to create your own alignment rules and features.
+The technical portion will touch on packages like rx and peg in addition to align.el.
+
+Format: **20 minutes** and outline:
+
+- Motivation: the uses of (column) alignment
+- Built-in align: features you can use out-of-the-box in programming modes
+
+- Customizing built-in align
+ - align-regexp for interactive alignment
+ - customizing align-rules-list for modes
+- align.el for the ELisp coder
+ - Readable regexp with rx
+ - Example: Creating org-mode tables from columns
+ - Example: peg parsers as an alternative to regexp
+
+About the speaker:
+
+Jeff is a long-time Emacs user working on improving his ELisp skills.
+The dominance of VSCode makes him sad.
+
+He discovered the align.el framework while trying to improve Emacs
+formatting support for a C++ library he uses, Boost.SML
+<https://github.com/boost-ext/sml>.
+
+
+
+[[!inline pages="internal(2026/info/align-after)" raw="yes"]]
+
+[[!inline pages="internal(2026/info/align-nav)" raw="yes"]]
+
+
diff --git a/2026/talks/cadet.md b/2026/talks/cadet.md
new file mode 100644
index 00000000..44710960
--- /dev/null
+++ b/2026/talks/cadet.md
@@ -0,0 +1,51 @@
+[[!meta title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration"]]
+[[!meta copyright="Copyright &copy; 2026 Andy Drop"]]
+[[!inline pages="internal(2026/info/cadet-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration
+Andy Drop (he/him) - Web: <https://plaindrops.de> Fediverse: SpaceCadet@chaos.social, <mailto:SpaceCadet@plaindrops.de>
+
+[[!inline pages="internal(2026/info/cadet-before)" raw="yes"]]
+
+After spending more time configuring my original Stream Deck than
+actually using it, I realized I’d rather build my own from scratch—just
+to spend even more time configuring it.
+
+This talk is a love letter to over-engineering. I’ll walk you through
+how I turned an old Android tablet into a programmable macro pad,
+complete with custom Emacs keybindings, because why use a keyboard when
+you can tap a screen like a caffeinated octopus?
+
+Expect:
+
+- *Software hacks* (SDD (Swearword Driven development), and questionable
+life choices).
+- *Emacs sorcery* (yes, it /does/ control my music, launch terminals,
+and occasionally insult me).
+- *Self-deprecating humor* (because if I can’t laugh at my own failures,
+who can?).
+
+Warning: May cause sudden urges to automate everything. Side effects
+include increased caffeine consumption, mild obsession with keyboards,
+and the occasional existential crisis when you realize you’ve spent
+three hours tweaking a button that saves you 10 seconds.
+
+About the speaker:
+
+I'm a passionate Emacs user and developer, tinkering with hardware to
+integrate it with Emacs. My talk introduces the SpaceCadet Deck, my
+Android-based Stream Deck alternative, and its deep integration with
+Emacs. I'll share my intention of building this customizable input
+device, highlighting its potential to enhance workflows. Expect live
+demos and practical tips.
+
+
+[[!inline pages="internal(2026/info/cadet-after)" raw="yes"]]
+
+[[!inline pages="internal(2026/info/cadet-nav)" raw="yes"]]
+
+
diff --git a/2026/talks/emacspeak.md b/2026/talks/emacspeak.md
new file mode 100644
index 00000000..c96fd0b5
--- /dev/null
+++ b/2026/talks/emacspeak.md
@@ -0,0 +1,30 @@
+[[!meta title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective"]]
+[[!meta copyright="Copyright &copy; 2026 Arkadiusz"]]
+[[!inline pages="internal(2026/info/emacspeak-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective
+Arkadiusz (Nuno) - <https://swietnicki.dev>
+
+[[!inline pages="internal(2026/info/emacspeak-before)" raw="yes"]]
+
+Emacs is a tool that is extremely suitable to be operated by a fully
+blind person. In this talk I would like to demonstrate one of its
+strongest features, which is audio font locking. Using this mechanism
+the user can get information in two dimensions, that is: "Information
+snippet" as well as its metadata, carried by the font. In this talk, I
+would like to briefly compare how blind people retrieve information
+versus how the sighted do it, then briefly compare Emacs to other
+traditional tools. At the end I am going to showcase a couple of
+practical points: messages management with Telega, file navigation with
+Dired and retrieving contact data with BBDB, all while using only speech
+and sounds.
+
+[[!inline pages="internal(2026/info/emacspeak-after)" raw="yes"]]
+
+[[!inline pages="internal(2026/info/emacspeak-nav)" raw="yes"]]
+
+
diff --git a/2026/talks/local.md b/2026/talks/local.md
new file mode 100644
index 00000000..158775d8
--- /dev/null
+++ b/2026/talks/local.md
@@ -0,0 +1,33 @@
+[[!meta title="Local File History Possibilities in Emacs"]]
+[[!meta copyright="Copyright &copy; 2026 Wouter Groeneveld"]]
+[[!inline pages="internal(2026/info/local-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Local File History Possibilities in Emacs
+Wouter Groeneveld - <https://brainbaking.com>, <mailto:wouter@brainbaking.com>
+
+[[!inline pages="internal(2026/info/local-before)" raw="yes"]]
+
+Emacs offers a myriad of ways to keep track of previous versions
+of your document: through tilde-like backup files, auto-save
+files, and of course the extensive built-in undo history
+system. Navigating that can be a chore unless you install
+something like vundo to visualize the undo tree. But with a huge
+undo-limit, even vundo can become unwieldy. What if we can conjure
+up a way to diff between the current document and the state it was
+in ten or twenty minutes ago, not unlike IntelliJ's local history
+system? Using a combination of Consult (preview) and diff-buff,
+that can be easily done! In this lightning talk, we'll explore how
+to quickly browse through diff history and roll back using
+built-in Emacs tooling.
+
+
+
+[[!inline pages="internal(2026/info/local-after)" raw="yes"]]
+
+[[!inline pages="internal(2026/info/local-nav)" raw="yes"]]
+
+
diff --git a/2026/talks/open-mic.md b/2026/talks/open-mic.md
new file mode 100644
index 00000000..333909f2
--- /dev/null
+++ b/2026/talks/open-mic.md
@@ -0,0 +1,21 @@
+[[!meta title="Open session"]]
+[[!meta copyright="Copyright &copy; 2026 Participants"]]
+[[!inline pages="internal(2026/info/open-mic-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Open session
+Participants
+
+[[!inline pages="internal(2026/info/open-mic-before)" raw="yes"]]
+
+
+
+
+[[!inline pages="internal(2026/info/open-mic-after)" raw="yes"]]
+
+[[!inline pages="internal(2026/info/open-mic-nav)" raw="yes"]]
+
+
diff --git a/2026/talks/portable.md b/2026/talks/portable.md
new file mode 100644
index 00000000..762b17be
--- /dev/null
+++ b/2026/talks/portable.md
@@ -0,0 +1,45 @@
+[[!meta title="Emacs as my portable user space across operating platforms"]]
+[[!meta copyright="Copyright &copy; 2026 Mohammed Ismail Ansari"]]
+[[!inline pages="internal(2026/info/portable-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Emacs as my portable user space across operating platforms
+Mohammed Ismail Ansari - <https://myterminal.me>, <mailto:mail@myterminal.me>
+
+[[!inline pages="internal(2026/info/portable-before)" raw="yes"]]
+
+In the talk, I plan to cover my entry
+into the world of Emacs, a high-level series of events that shaped my
+experience and learning, and a few takeaways from someone coming from an
+entire different toolset and mentality, eventually having a moment of
+enlightenment to never go back again. The talk will revolve around how
+it has been my companion across multiple operating platforms and will
+remain to be one of the core elements of my computing toolset no matter
+the environment or platform. I'll talk about a few highs and lows of my
+attempts of inviting friends to Emacs, a few mentions of my
+contributions to the community and hopefully some tips for inspiration
+to newcomers and fellow Emacs-ers alike. Along with these, I'll also
+walk through how and why I created super-emacs and why I think it can be
+a reasonably easy starting point for someone getting into Emacs as their
+daily driver.
+
+About the speaker: I, Mohammed Ismail Ansari (aka myTerminal), come
+from an academic background in Electronics Engineering, and have been
+working professionally as a software engineer since seventeen years.
+I love to create and experimenting with all kinds of machines, not
+just computers, enjoying the exploration and tinkering process.
+In the recent years I've also discovered my interest in personal
+productivity, and pairing them with some of the core elements within
+my toolset, including Linux, Emacs, and many other open-source
+software everything fits in place as if it was supposed to be.
+
+
+
+[[!inline pages="internal(2026/info/portable-after)" raw="yes"]]
+
+[[!inline pages="internal(2026/info/portable-nav)" raw="yes"]]
+
+
diff --git a/2026/talks/sat-close.md b/2026/talks/sat-close.md
new file mode 100644
index 00000000..12eeb9f2
--- /dev/null
+++ b/2026/talks/sat-close.md
@@ -0,0 +1,21 @@
+[[!meta title="Saturday closing remarks / open session"]]
+[[!meta copyright="Copyright &copy; 2026 ${speakers}"]]
+[[!inline pages="internal(2026/info/sat-close-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Saturday closing remarks / open session
+
+
+[[!inline pages="internal(2026/info/sat-close-before)" raw="yes"]]
+
+
+
+
+[[!inline pages="internal(2026/info/sat-close-after)" raw="yes"]]
+
+[[!inline pages="internal(2026/info/sat-close-nav)" raw="yes"]]
+
+
diff --git a/2026/talks/sat-open.md b/2026/talks/sat-open.md
new file mode 100644
index 00000000..d67255b4
--- /dev/null
+++ b/2026/talks/sat-open.md
@@ -0,0 +1,21 @@
+[[!meta title="Saturday opening remarks"]]
+[[!meta copyright="Copyright &copy; 2026 Sacha Chua"]]
+[[!inline pages="internal(2026/info/sat-open-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Saturday opening remarks
+Sacha Chua
+
+[[!inline pages="internal(2026/info/sat-open-before)" raw="yes"]]
+
+
+
+
+[[!inline pages="internal(2026/info/sat-open-after)" raw="yes"]]
+
+[[!inline pages="internal(2026/info/sat-open-nav)" raw="yes"]]
+
+
diff --git a/2026/talks/sun-close.md b/2026/talks/sun-close.md
new file mode 100644
index 00000000..3568cf20
--- /dev/null
+++ b/2026/talks/sun-close.md
@@ -0,0 +1,21 @@
+[[!meta title="Sunday closing remarks"]]
+[[!meta copyright="Copyright &copy; 2026 ${speakers}"]]
+[[!inline pages="internal(2026/info/sun-close-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Sunday closing remarks
+
+
+[[!inline pages="internal(2026/info/sun-close-before)" raw="yes"]]
+
+
+
+
+[[!inline pages="internal(2026/info/sun-close-after)" raw="yes"]]
+
+[[!inline pages="internal(2026/info/sun-close-nav)" raw="yes"]]
+
+
diff --git a/2026/talks/sun-open.md b/2026/talks/sun-open.md
new file mode 100644
index 00000000..4a3dc64e
--- /dev/null
+++ b/2026/talks/sun-open.md
@@ -0,0 +1,21 @@
+[[!meta title="Sunday opening remarks"]]
+[[!meta copyright="Copyright &copy; 2026 Sacha Chua"]]
+[[!inline pages="internal(2026/info/sun-open-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Sunday opening remarks
+Sacha Chua
+
+[[!inline pages="internal(2026/info/sun-open-before)" raw="yes"]]
+
+
+
+
+[[!inline pages="internal(2026/info/sun-open-after)" raw="yes"]]
+
+[[!inline pages="internal(2026/info/sun-open-nav)" raw="yes"]]
+
+