Development/Learning Materials

From The Document Foundation Wiki
Jump to navigation Jump to search

Here you can find a list of all the learning materials devoted to LibreOffice development. Many of them are not official LibreOffice documents, and are provided by third parties. For general programming documents, go to Development/GeneralProgrammingGuidelines.

If you are not looking for the development resources, you can look at Documentation/Publications and Documentation/Third_Party_Resources.

Note pin.svg

TDF documentations for developers should be moved to Documentation/Publications or a separate page.



LibreOffice Development with C++/Java

  1. LibreOffice Developers Guide, It is originally from Sun Microsystems (2009) but it is now (2022) under major revision in the TDF Wiki. This book contains 19 chapters and 4 appendices. Printed version of the book is ~1700 pages. It can be used as a comprehensive development reference.
  2. Inside LibreOffice, 2016-2020 (work in progress), Chris Sherlock, useful for understanding the architecture of the LibreOffice. UNO and SAL (including OSL (Operating System Layer), runtime layer, helper classes) are discussed in this book (Book's Source code)
  3. LibreOffice Development Book, 2016 (work in progress), LDCS, discusses a sample patch for LibreOffice, and also extension development.
  4. Exploiting an Open-Source Office Suite (Japanese version), 2018, Tanichida Ken, An online development tutorial for LibreOffice in 189 parts, containing several examples
  5. Java LibreOffice Programming v2 (JLOP) (PDF version / Code), 2017, Andrew Davison, in ~900 pages and 51 chapters discusses LibreOffice programming using LibreOffice Java API

LibreOffice Macro Programming with BASIC

  1. LibreOffice BASIC Guide, originally a 2009 document from Sun Microsystems discussing BASIC programming PDF version
  2. Macros Explained Third Edition (PDF version), 2016, Andrew Pitonyak, explains macro programming for OpenOffice
  3. LibreOffice BASIC Primitives, 2018, Jean-François Nifenecker, ~200 pages book providing some "primitives" for helping LibreOffice BASIC programming

LibreOffice API Development with Python

  1. Python Developer Guide, macro programming with Python
  2. Document Hacker, Writing Long Documents For Software Engineers using LibreOffice and Python UNO, 2013, Jamie Boyle, A short (~60 pages) introduction to LibreOffice API programming using Python



You can invoke git clone to get these examples.

Presentations / Slides

Getting Started

  • LibreOffice Development, 2018, Kohei Yoshida, Providing an overview on LibreOffice development, introduction to key LibreOffice hackers, and some discussion on LibreOffice history
  • To start hacking LibreOffice, 2012, Olivier Hallot (Original Portuguese slides) Learn how to get started, how to compile the code, submit the patches, etc. Please note that some of the things here are changed now, for example git URL and statistics are now changed, and String refactoring is completed

LibreOffice Code Overview

LibreOffice Writer

FOSDEM Conference

Free and Open source Software Developers' European Meeting (FOSDEM) is an European conference dedicated to the free and open source software development. LibreOffice usually has a dedicated room in this conference.



  1. LibreOffice Technology, From a desktop product to a platform for personal productivity, Italo Vignoli
  2. Lowering the Barrier for New Developers, Developing in the cloud via GitPod, Muhammet Kara
  3. Using IDEs for LibreOffice development, Christian Lohmaier
  4. The Perfect Gerrit Patch, A consumer report, Stephan Bergmann
  5. LibreOffice WASM - the How and Why, A report from the journey to get LibreOffice into the browser, fully, Thorsten Behrens, Jan-Marek Glogowski
  6. Editable nested fields in Writer, Michael Stahl
  7. How Collabora Online development improves LibreOffice, Jan Holesovsky
  8. Build-in "xray" like UNO object inspector, Tomaž Vajngerl
  9. Handling PDF digital signatures in LibreOffice with PDFium, Miklos Vajna
  10. Making Nextcloud Hub COOL, Hear how we implemented out of the box collaboration., Michael Meeks
  11. Porting LibreOffice to macOS on Apple Silicon, Easy bits were easy, hard bits were not so hard, Tor Lillqvist
  12. Using LibreOffice with MariaDB (and Docker), Anel Husakovic
  13. LibreOffice QA - how to write your first test, Xisco Fauli
  14. ODF for Interoperability, Tips and Tricks to Tackle the Most Common Issues, Italo Vignoli
  15. LibreOffice Lightning Talks, Interesting Talks from Community Members, Thorsten Behrens


  1. LibreOffice turns ten and what’s next - Michael Meeks (TDF and Collabora)
  2. Contributing to LibreOffice without C++ knowledge - Ilmari Lauhakangas (TDF)
  3. Coverity and oss-fuzz issue solving - Caolán McNamara (Red Hat)
  4. LibreOffice lockdown and encryption improvements - Thorsten Behrens (CIB)
  5. Prioritizing is key - Xisco Fauli (TDF)
  6. Proposal to inspect and highlight styles in Writer - Heiko Tietze (TDF)
  7. LibreOffice Theme Changer - Rania Amina
  8. Crowdfunding to advance open document editors - Simon Phipps (TDF and OSI)
  9. Online Open Document Editing New Possibilities - Cor Nouws (Collabora)
  10. Make Online yours - How to customize Collabora Online] - Pedro Pinto Silva (Collabora)
  11. Online: wrestling web Copy/Paste to usability - Michael Meeks (Collabora)
  12. Integrate Collabora Online with web applications - Andras Timar (Collabora)
  13. LibreOffice Online adoption into 1&1 Mail & Media ecosystem - Eduard Ardeleanu (1&1 Mail & Media)
  14. Collabora Office Android app gory details - Jan Holesovsky (Collabora)
  15. Lightning talk session - various presenters
  16. Bringing Collabora Online to your web app - Michael Meeks (Collabora)


  1. Relaunching the ODF Adoption TC at OASIS, Italo Vignoli
  2. Server side solution for generating ODF reports, An important step to adopt ODF in Taiwan, Franklin Weng
  3. Resurrecting Mozilla Themes for LibreOffice, Trying to uncover, fix and improve a hidden gem in the rough, Muhammet Kara
  4. Quo vadis, LibreOffice extensions?, Heiko Tietze
  5. Improving LibreOffice quality together, A summary of what happened in 2018, Xisco Fauli
  6. Collabora Office on iOS, Tor Lillqvist
  7. Preventing OOXML interoperability problems in LibreOffice, Gabor Kelemen
  8. New interoperability, i18n and LibreLogo improvements of LibreOffice, for office suite migrations in public sector, supported by NISZ and Foundation, László Németh
  9. Mysql connector and other databases in LibreOfficeChanges around database drivers in LibreOffice, Tamás Bunth
  10. Online - under the hood, How to bring LibreOffice to your web app, Michael Meeks
  11. Vereign toolbar in LibreOffice Online, Technical aspects of integration of a 3rd party document signing service, Andras Timar
  12. Improving SmartArt import in LibreOffice Impress, Miklos Vajna
  13. Do you know "layers"?, Regina Henschel
  14. Clang plugins in LibreOffice - global analyses across a large codebase, Noel Grandin
  15. Native GTK Dialogs, Current status and future work, Caolán McNamara
  16. Are we optimiert yet?, Michael Stahl
  17. Text Mining with OpenOffice, Andrea Pescetti
  18. Lightning Talks, Andras Timar


  1. Status of the Apache ODF Toolkit (incubating), Svante Schubert
  2. Working in the ODF TC, Regina Henschel
  3. Improvements around document signatures and encryption, Signing and encrypting with OpenPGP, adding signature lines, Samuel Mehrbrodt
  4. Documentation convergence project for LibreOffice, Make just one documentation for all, Olivier Hallot
  5. Anatomy of the OpenOffice localization process, And how to improve it in future, Andrea Pescetti
  6. Antipatterns in OpenOffice Code, How can we ensure better Code, Peter Kovacs
  7. BaseDocumenter, LibreOffice Base applications: how to document them, how to manage and analyze impacts of changes, Jean-Pierre Ledure
  8. Accessibility 101 (not only) for LibreOffice developers, Thorsten Behrens, Katarina Behrens
  9. Maintaining accessibility through testing?, Samuel Thibault
  10. Maximizing UX for Customizing, Improving user experience and accessibility of LibreOffice's Customize dialog, Muhammet Kara
  11. Proposal for better font handling in LibreOffice, Heiko Tietze
  12. Native GTK3 UI, progress from gtk3 themed vcl widgets to native gtk widgets, Caolán McNamara
  13. LO URI 101, Stephan Bergmann
  14. Hidden Gems in Draw/Impress Part 2, Functionalities you didn‘t even know that you might need or did exist, Armin Le Grand
  15. Calc: The challenges of scalable arithmetic, How threading can be challenging, Michael Meeks
  16. EPUB export in LibreOffice Writer, Miklos Vajna
  17. Dialog tunneling in LibreOffice Online, Jan Holesovsky
  18. LibreOffice for HaikuPort status, Kacper Kasper
  19. Good things come to those who wait - BorderFrames and WriterGraphics, Armin will hold this talk, Thorsten Behrens
  20. LibreOffice QA - One Year Overview, What have happened between FOSDEM17 and FOSDEM18, Xisco Fauli
  21. LibreOffice's automatic updater work, A progress report, Markus Mohrhard
  22. Lightning talk session, Come and tell us your most recent hack - in 5 mins!, Thorsten Behrens


  1. The Office Pokémon GO IV Calculator, Games, Fun, and Hacks with OpenOffice/LibreOffice, Shih-Ching Yang (imacat)
  2. LibreOffice UI Concept, A personal, user friendly and flexible interface, Italo Vignoli
  3. Contextual groups in LibreOffice' Notebookbar, How to make life easier for beginners, Heiko Tietze
  4. Make your LibreOffice extensions and macros rock, Defining user interface has never been easier, Katarina Behrens
  5. Interoperability regression testing in LibreOffice, Xisco Fauli
  6. LibreOffice Online Debugging, Andras Timar
  7. LibreOffice XML Help in your local browser, Bringing 2017 to LibreOffice Help, Olivier Hallot
  8. Extensions, Ugly Toupee or Hipster Hairdo?, Stephan Bergmann
  9. Cleaning up the spellcheck dictionary, And making it faster and more maintainable, Andrea Pescetti
  10. Office Basic Source Code Management, OpenOffice/LibreOffice Basic Development with 3rd-Party Editors, Version Control and Cloud Storage Backup, Shih-Ching Yang (imacat)
  11. LibreOffice and your IDE, gbuild, json and other buzzwords, Bjoern Michaelsen
  12. LibreOffice on Wayland via GTK3, Caolán McNamara
  13. DrawingLayer - Optimization & Implementation, See how we optimized drawinglayer performance with buffering and multi-threading, plus some architectural overview, Armin Le Grand
  14. Exploiting Concurrency, How I stopped worrying and started threading ..., Michael Meeks
  15. Integrating LibreOffice Online via WOPI, Jan Holesovsky
  16. Introducing LibreOffice SafeMode, Samuel Mehrbrodt
  17. Enhance metafile importers - a restart, First steps in re-architecting our various metafile / svg importers into one, Armin Le Grand
  18. What the Cell?! Unexpected things happening under the grid., Eike Rathke
  19. Tackling the LibreOffice update problem, Automated updates and update statistics, Markus Mohrhard
  20. The Document Foundation Development Dashboard, How LibreOffice is being developed, Jesus M. Gonzalez-Barahona
  21. The Document Foundation Development Dashboard: hands on, Jesus M. Gonzalez-Barahona
  22. Lightning talk session Open Document Editors DevRoom, 5 minutes each - come to submit until 30 minutes before, until we run out of slots, Thorsten Behrens


  1. Migrating the Army, the Navy and the Air Force, in one single moveThe story of the migration to LibreOffice and ODF of the Italian defense organization, counting 150,000 desktops, Italo Vignoli (video and slides are missing)
  2. Eternal PlugfestAn ODF community and testing server, Jos van den Oever
  3. Contributing to the help of LibreOffice using the HelpAuthoring extension, Regina Henschel
  4. Cleaning up the spellcheck dictionaryAnd making it faster and more maintainable, Andrea Pescetti (video and slides are missing)
  5. Lowering the bar for new developersHow to make 1.000.000 lines understandable, Jan Iversen (video and slides are missing)
  6. Improving the toolbars in LibreOffice, Samuel Mehrbrodt
  7. Inside sidebar, Creating you own panels and decks made easy, Katarina Behrens (video)
  8. UI event fuzzing via american-fuzzy-lopusing afl to fuzz keyboard input for UI testing LibreOffice, Caolán McNamara (video only) (video demo, afl home page)
  9. Back to the futureTypographic quality WYSIWYG document editing and form filling in the cloud, László Németh, (video)
  10. LibreOffice Online internals, Jan Holesovsky (video only)
  11. Mail merge embedding in LibreOffice Writer, Miklos Vajna (video)
  12. Exporting shapes to DrawingMLBug fixing case study, Andras Timar (video)
  13. odpdown - markdown to slidesNice slides from your favourite text editor demo, Thorsten Behrens (video)
  14. LibreOffice and PostgreSQL, Simon Riggs (video only)
  15. Handling crashes in LibreOffice, Markus Mohrhard (video)
  16. LibreOffice extension developmentTools, Tips & Tricks of the Trade, Thorsten Behrens (video)
  17. The LibreOffice Release BaselineHow to duplicate the releases as published by TDF, Christian Lohmaier (video only)
  18. Finally building LibreOffice on Windows, Stephan Bergmann (video)
  19. New features in Gerrit Code Review 2.11, David Ostrovsky (video only)
  20. Snakes On A Plain OfficePython and LibreOffice: Possibilities and Opportunities, Bjoern Michaelsen (video only)
  21. DrawingLayer Primitives WorkshopWhat they are, how to use or create new ones, Armin Le Grand (video)
  22. Visual Class Librariesmaking LibreOffice's toolkit less awful., Michael Meeks (video only)
  23. Using Android Studio to debug the LibreOffice Viewer for Android, Android studio offers a GUI to debug both the native as well as the java part, Christian Lohmaier (video only)
  24. Ad-hoc Lightning talk session, Thorsten Behrens (video)


  1. Optimizing the Libre Office Main Loop, Munich students get their hands on Libre Office, Tobias Madl (video is missing) (related page)
  2. C++11 and LibreOffice, The future has arrived (it was about time), Michael Stahl (video is missing)
  3. OpenGL backend for LibreOffice, Rendering everything through OpenGL, Markus Mohrhard (video and slides are missing)
  4. OpenGLCanvas in Libreoffice, Michael Jaumann (video and slides are missing)
  5. LibreOffice IDE integration, Bjoern Michaelsen (video)
  6. PDF signing in LibreOffice: no longer experimental, Tor Lillqvist (video, bad audio)
  7. CI for LibreOffice, Jenkins-Gerrit Integration and other woes, Norbert Thiebaud (video, bad audio)
  8. New features in Gerrit Code Review 2.11, Support for browser based Gerrit workflow, David Ostrovsky (video)
  9. TextBoxes: complex shapes with complex content in LibreOffice Writer, Miklos Vajna (video, bad audio)
  10. LibreOffice Calc dependency & performance work, how we made things faster & better, Michael Meeks (video)
  11. OpenOffice reaches out: the technical angle, Jan Iversen, Andrea Pescetti (video, bad audio)
  12. Improving LibreOffice quality, Coverity and crash testing, Markus Mohrhard (video)
  13. Torturing your software with 124 ODF file formats, Bringing gleeful sadism back to software development and base your opinions on facts, Jos van den Oever (video, bad audio) (git repo
  14. LibreOffice Design/UX Easy Hacks, How you can get involved, Jan Holesovsky (video, no audio)
  15. Document Liberation Project, Tools and framework for achieving preservation of digital content, Fridrich Strba (video, no audio)
  16. LibreOffice and ODF, Andras Timar (video, no audio)
  17. Corinthia a new idea for document handling, editing on mobile devices or using multiple document formats?, Jan Iversen (video, no audio)
  18. LibreOffice on Android, Miklos Vajna (video, no audio)
  19. A vision about a LibreOffice document manager for Android, Jacobo Aragunde Pérez (video, no audio)
  20. Adapting Apache OpenOffice for adoption in a public administration: configuration, Sharepoint webdav integration and an extension to help users exchange ODF files, Maurizio Berti, Giovanni Grazia (video, no audio)
  21. Lightning talk slot, Demo your cool hack in 5 minutes!, Thorsten Behrens (video, no audio)


  1. LibreOffice plumbing on iOS and Android, Tor Lillqvist
  2. How the Text in Writer Gets on the Screen, Jan Holesovsky
  3. Once Upon a Primitive Slideshow and other news from LibreOffice graphics, Thorsten Behrens
  4. Time based charting for Libreoffice, Markus Mohrhard
  5. Automated import and export testing of file import and export, Markus Mohrhar
  6. InteropGrabBag in LibreOffice Writer, What it is, how to use it and what uses it already, Miklos Vajna
  7. librevenge is suite, What is new in the world of import filters and what is coming soon, Fridrich Strba
  8. How to squeeze a language tag into a Locale, What you need to know about BCP 47 language tags in your ODF editor, Eike Rathke
  9. How to use the new ui format to do Accessibility right Notes for developers to get accessibility right in dialogs for LibreOffice when using the new ui format, Caolán McNamara
  10. re-using and re-targetting LibreOffice, liblibreoffice and other ways of re-using us. Michael Meeks
  11. Central configuration management of large LibreOffice deployments,... demonstration of new tools and new options, Andras Timar
  12. LO++14, How to make use of 21st century C++ in LibreOffice development, Stephan Bergmann
  13. Liberated Build System: Mission Accomplished, What's next?, Bjoern Michaelsen


  1. Recent changes in localization toolchain, Andras Timar
  2. Well-typed UNO , Stephan Bergmann
  3. How to debug Writer file format issues?, Miklos Vajna
  4. MinGW-w64 & Wine: Developing LibreOffice for Windows...without Windows, Fridrich Strba on the behalf of Jan Holesovsky
  5. The Upgrade of the LibreOffice Template Repository, Andreas Mantke
  6. General easy hacks for new hackers, Michael Meeks
  7. Simple introduction to LibreOffice QA, Cor Nouws
  8. Give me my drawing back! - Dragging your Visio, Publisher and CorelDraw files to free-sofware world, Fridrich Strba
  9. LibreOffice now accesses my documents through CMIS, how to support new server types by reusing that work?, Cédric Bosdonnat
  10. Widget Layout, tutorial, Caolán McNamara
  11. Language tags - or, what is BCP 47 and why would we want it, Eike Rathke
  12. Debugging calc filter problems, Markus Mohrhard
  13. Hacking Android remote, Thorsten Behrens
  14. Interoperability Improvements, Eilidh McAdam


  1. LibreOffice Development Directions, Italo Vignoli
  2. Import filters for LibreOffice: Join the journey, Fridrich Strba (No slides available)
  3. Widget Layout, Caolán McNamara
  4. Easy Hacks - how to become a key LibreOffice contributor, Michael Meeks
  5. Improving the Extensions and Template Center, Andreas Mantke
  6. Impress Hacking - The What & The Where, Thorsten Behrens
  7. Test concepts for automated Libreoffice testing, Markus Mohrhard
  8. Hacking Writer: what to know to get started, Cédric Bosdonnat
  9. The Infrastructure behind TDF, Florian Effenberger (broken link)
  10. Hacking Calc - what to know to get started, Eike Rathke
  11. LibreOffice debugging tricks, Jan Holesovsky / Kendy
  12. Base Hacking, Lionel Elie Mamane
  13. LibreOffice extension for Sharepoint, Miklos Vajna and Cedric Bosdonnat
  14. Analysing LibreOffice with Compiler plugins, Stephan Bergmann
  15. 10 reasons to contribute to LibreOffice today, Bjoern Michaelsen


  1. Accessible authoring with LibreOffice, Christophe Strobbe
  2. Liberating Open Office Development (video), Michael Meeks
  3. LibreOffice Online Help (Wikihelp), Jan Holesovsky
  4. Kicking off the LibreOffice Design Team, Christoph Noack

LibOCon Conference

The LibreOffice Conference (LibOCon) is the annual gathering of the LibreOffice community.

LibOCon 2022

LibOCon 2022 is the upcoming conference.

It will be held as hybrid conference from September 28 to October 1st 2022.

LibOCon 2021

LibOCon 2021 Youtube Archive (More upload in progress)

LibOCon 2020

LibOCon 2020

LibOCon 2019

LibOCon 2019

LibOCon 2018

LibOCon 2018

LibOCon 2017

LibOCon 2017

LibOCon 2016

LibOCon 2016

LibOCon 2015

LibOCon 2015

LibOCon 2014

LibOCon 2014

LibOCon 2013

LibOCon 2013

LibOCon 2012

LibOCon 2012

LibOCon 2011

LibOCon 2011