diff --git a/Setting up LyX.md b/Setting up LyX.md
new file mode 100644
index 0000000..9f2052d
--- /dev/null
+++ b/Setting up LyX.md
@@ -0,0 +1,50 @@
+# Setting up LyX to work with programming.cls
+
+These instructions were written originally for a macOS machine.
+
+On macOS:
+
+ mkdir -p ~/Library/texmf/tex/latex/programming
+ cp programming.cls ~/Library/texmf/tex/latex/programming/.
+
+ mkdir -p ~/Library/Application\ Support/LyX-2.4/layouts
+ cp programming.layout ~/Library/Application\ Support/LyX-2.4/layouts
+
+On Linux (Debian):
+
+ mkdir -p ~/texmf/tex/latex/programming
+ cp programming.cls ~/texmf/tex/latex/programming/.
+
+ mkdir -p ~/.lyx/layouts
+ cp programming.layout ~/.lyx/layouts
+
+Run Tools > Reconfigure from LyX.
+
+Restart LyX.
+
+Now "Programming" should show up in Document Settings > Document Class.
+
+You probably want to choose "Use non-TeX fonts (via XeTeX/LuaTeX)" for each document that uses
+this class, too.
+
+## Use the LuaTeX renderer
+
+You will need to build documents using the LyX "PDF (LuaTeX)" file format. You can either
+select this each time from the menu or change the application-wide default.
+
+To change the default, go to Preferences > File Handling > File Formats. Near the bottom of the
+screen is a panel labelled "Default Output Formats".
+
+By default, "With TeX fonts" is set to "PDF (pdflatex)", and "With non-TeX fonts" is set to
+"PDF (XeTeX)".
+
+It's fine to set both to "PDF (LuaTeX)".
+
+Alternatively, change only the non-TeX one, and on a document-by-document basis, in Document
+Settings > Fonts, choose "Use non-TeX fonts (via XeTeX/LuaTeX)".
+
+## Bibliographies
+
+It's probably best to switch Document Settings > Bibliography > Citation Style > Style format
+to "Biblatex". Delete the text from the "Biblatex citation style" and "Biblatex bibliography
+style" fields.
diff --git a/lyx-example-programming.lyx b/lyx-example-programming.lyx
new file mode 100644
index 0000000..186f1e0
--- /dev/null
+++ b/lyx-example-programming.lyx
@@ -0,0 +1,518 @@
+#LyX 2.4 created this file. For more info see https://www.lyx.org/
+\lyxformat 620
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass programming
+\options english,submission
+\use_default_options true
+\maintain_unincluded_children no
+\language american
+\language_package default
+\inputencoding utf8
+\fontencoding auto
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts true
+\font_sc false
+\font_roman_osf false
+\font_sans_osf false
+\font_typewriter_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\float_placement class
+\float_alignment class
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine biblatex
+\cite_engine_type authoryear
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_formatted_ref 0
+\use_minted 0
+\use_lineno 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style english
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tablestyle default
+\tracking_changes false
+\output_changes false
+\change_bars false
+\postpone_fragile_content true
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\docbook_table_output 0
+\docbook_mathml_prefix 1
+\end_header
+
+\begin_body
+
+\begin_layout Title
+The Art,
+ Science,
+ and Engineering of Programming
+\end_layout
+
+\begin_layout Titlerunning
+Preparing Articles for Programming
+\end_layout
+
+\begin_layout Subtitle
+Preparing Articles for Programming
+\end_layout
+
+\begin_layout Author
+Tobias Pape
+\begin_inset Argument post:1
+status open
+
+\begin_layout Plain Layout
+0000-0003-0110-6918
+\end_layout
+
+\end_inset
+
+
+\begin_inset Argument 1
+status open
+
+\begin_layout Plain Layout
+a
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Authorinfo
+is the author of this \SpecialChar LaTeX
+ class.
+ Contact him at
+\begin_inset Flex email
+status open
+
+\begin_layout Plain Layout
+tobias.pape@hpi.uni-potsdam.de
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Affiliation
+Hasso Plattner Institute,
+ University of Potsdam,
+ Germany
+\begin_inset Argument 1
+status open
+
+\begin_layout Plain Layout
+a
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Author
+Cristina V.
+ Lopes
+\begin_inset Argument post:1
+status open
+
+\begin_layout Plain Layout
+orcid.org/0000-0003-0551-3908
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Authorinfo
+is associate editor for the first two issues of The Art,
+ Science,
+ and Engineering of Programming.
+ Contact her at
+\begin_inset Flex email
+status open
+
+\begin_layout Plain Layout
+lopes@ics.uci.edu
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Affiliation
+University of California,
+ Irvine,
+ USA
+\end_layout
+
+\begin_layout Author
+Robert Hirschfeld
+\begin_inset Argument post:1
+status open
+
+\begin_layout Plain Layout
+https://orcid.org/0000-0002-4249-6003
+\end_layout
+
+\end_inset
+
+
+\begin_inset Argument 1
+status open
+
+\begin_layout Plain Layout
+a
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Authorinfo
+is chair of the AOSA steering committee.
+ The Art,
+ Science,
+ and Engineering of Programming is published by AOSA.
+ Contact Robert at
+\begin_inset Flex email
+status open
+
+\begin_layout Plain Layout
+hirschfeld@hpi.uni-potsdam.de
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Paperdetails
+
+perspective=art,
+ area={Social Coding,
+ General-purpose programming}
+\end_layout
+
+\begin_layout CCSXML
+
+
+\end_layout
+
+\begin_layout CCSXML
+
+
+\end_layout
+
+\begin_layout CCSXML
+
+10002944.10011122.10003459
+\end_layout
+
+\begin_layout CCSXML
+
+General and reference~Computing standards,
+ RFCs and guidelines
+\end_layout
+
+\begin_layout CCSXML
+
+300
+\end_layout
+
+\begin_layout CCSXML
+
+
+\end_layout
+
+\begin_layout CCSXML
+
+
+\end_layout
+
+\begin_layout CCSXML
+
+10010405.10010476.10010477
+\end_layout
+
+\begin_layout CCSXML
+
+Applied computing~Publishing
+\end_layout
+
+\begin_layout CCSXML
+
+300
+\end_layout
+
+\begin_layout CCSXML
+
+
+\end_layout
+
+\begin_layout CCSXML
+
+
+\end_layout
+
+\begin_layout ccsdesc
+
+\begin_inset Argument 1
+status open
+
+\begin_layout Plain Layout
+
+300
+\end_layout
+
+\end_inset
+
+General and reference~Computing standards,
+ RFCs and guidelines
+\end_layout
+
+\begin_layout ccsdesc
+
+\begin_inset Argument 1
+status open
+
+\begin_layout Plain Layout
+
+500
+\end_layout
+
+\end_inset
+
+Applied computing~Publishing
+\end_layout
+
+\begin_layout Keywords
+
+programming journal,
+ paper formatting,
+ submission preparation
+\end_layout
+
+\begin_layout Abstract
+
+Many academic journals and conferences exist that publish research related to programming,
+ starting with programming languages,
+ software engineering,
+ and expanding to the whole Computer Science field.
+ Yet,
+ many of us feel that,
+ as the field of Computer Science expanded,
+ programming,
+ in itself,
+ has been neglected to a secondary role not worthy of scholarly attention.
+\end_layout
+
+\begin_layout Abstract
+
+We posit that a scholarly journal focusing primarily on programming will help close this gap,
+ and foster a more meaningful bridge between research and the practice of software development.
+\end_layout
+
+\begin_layout Abstract
+
+The Art,
+ Science,
+ and Engineering of Programming accepts papers under several perspectives:
+ the art itself (programming styles,
+ pearls,
+ models,
+ languages),
+ the emerging science of understanding what works and what doesn’t work in general and in specific contexts,
+ as well as more established engineering and mathematical perspectives.
+\end_layout
+
+\begin_layout Abstract
+
+This journal aims at placing the wonderful art of programming in the map of scholarly works.
+
+\end_layout
+
+\begin_layout Abstract
+
+We present this short paper as an example of,
+ and a guide to,
+ writing articles for The Art,
+ Science,
+ and Engineering of Programming journal.
+ The complete template is provided:
+ the class file (
+\begin_inset Flex texttt
+status open
+
+\begin_layout Plain Layout
+
+programming.cls
+\end_layout
+
+\end_inset
+
+),
+ an example paper (
+\begin_inset Flex texttt
+status open
+
+\begin_layout Plain Layout
+
+example-programming.tex
+\end_layout
+
+\end_inset
+
+,
+ this file),
+ and an example bibliography file (
+\begin_inset Flex texttt
+status open
+
+\begin_layout Plain Layout
+
+example.bib
+\end_layout
+
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Abstract
+
+Much of the progress in Computer Science lies on the basis of computer programs,
+ the people who write them,
+ and the concepts and tools available to them to express computational tasks.
+ The existence of a journal focusing on programming is of utmost importance for strengthening our understanding of these activities.
+\end_layout
+
+\begin_layout Section
+A Guided Tour
+\end_layout
+
+\begin_layout Standard
+The content of a paper is its most important
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+This is a footnote.
+\end_layout
+
+\end_inset
+
+ ingredient.
+\begin_inset CommandInset citation
+LatexCommand cite
+key "DBLP:journals/cacm/Knuth74,babel,booktabs,l2tabu,siunitx,threeparttable"
+literal "false"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Acknowledgments
+
+We want to thank you for using this class to prepare articles for The Art,
+ Science,
+ and Engineering of Programming.
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+%% This command is needed for example.bib,
+ but not needed in general otherwise
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+newcommand*{
+\backslash
+CTAN}[1]{
+\backslash
+href{http://ctan.org/tex-archive/#1}{
+\backslash
+nolinkurl{CTAN:#1}}}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset bibtex
+LatexCommand bibtex
+btprint "btPrintCited"
+bibfiles "example"
+options "plainurl"
+encoding "default"
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/programming.layout b/programming.layout
new file mode 100644
index 0000000..85656dd
--- /dev/null
+++ b/programming.layout
@@ -0,0 +1,137 @@
+#% Do not delete the line below; configure depends on this
+# \DeclareLaTeXClass[programming]{Programming}
+# \DeclareCategory{Articles}
+# https://github.com/programming-journal/programming
+# Tony Garnock-Jones , 2024-08-02
+
+Input scrartcl.layout
+
+Style Author
+ Argument 1
+ LabelString "Affiliation letter|A"
+ Tooltip "Superscript letter to label author name with, e.g. a or b or c"
+ EndArgument
+ Argument post:1
+ LabelString "ORCID|O"
+ Tooltip "Author's ORCID, e.g. 1234-5678-9012-3456 or orcid.org/1234-5678-9012-3456"
+ EndArgument
+End
+
+Style Titlerunning
+ CopyStyle Title
+ LatexName titlerunning
+ Font
+ Color gray
+ Size Larger
+ EndFont
+ LabelString "Running title: "
+End
+
+Style Authorinfo
+ Align Center
+ Category FrontMatter
+ InTitle 1
+ LabelString "Author Info: "
+ LabelType Static
+ LabelFont
+ Color textlabel1
+ Shape Italic
+ Family Roman
+ EndFont
+ LatexType Command
+ LatexName authorinfo
+End
+
+Style Affiliation
+ CopyStyle Authorinfo
+ LabelString "Affiliation: "
+ LatexName affiliation
+ Argument 1
+ LabelString "Affiliation letter|A"
+ Tooltip "Superscript letter to label author name with, e.g. a or b or c"
+ EndArgument
+End
+
+Style CCSXML
+ Category FrontMatter
+ LabelString "CCSXML"
+ LabelType Above
+ LatexType Environment
+ LatexName CCSXML
+ PassThru 1
+ InTitle 1
+End
+
+Style ccsdesc
+ Category FrontMatter
+ LabelString "ccsdesc: "
+ LabelIndent MMMM
+ LeftMargin MMMM
+ LabelType Static
+ LatexType Command
+ LatexName ccsdesc
+ PassThru 1
+ InTitle 1
+ Argument 1
+ LabelString "Number|N"
+ Tooltip "ccsdesc number, e.g. 300 or 500 etc"
+ EndArgument
+End
+
+Style Paperdetails
+ Category FrontMatter
+ LabelString "paperdetails: "
+ LabelIndent MMMMMM
+ LeftMargin MMMMMM
+ LabelType Static
+ LatexType Command
+ LatexName paperdetails
+ BottomSep 0.4
+ PassThru 1
+ InPreamble 1
+End
+
+Style Keywords
+ Category FrontMatter
+ LabelString "keywords: "
+ LabelIndent MMMM
+ LeftMargin MMMM
+ LabelType Static
+ LatexType Command
+ LatexName keywords
+ InTitle 1
+End
+
+InsetLayout Flex:email
+ LyxType charstyle
+ LabelString email
+ LatexType command
+ LatexName email
+End
+
+InsetLayout Flex:texttt
+ LyxType charstyle
+ LabelString texttt
+ LatexType command
+ LatexName texttt
+ Font
+ Family Typewriter
+ EndFont
+End
+
+Style Acknowledgments
+ LatexType command
+ LatexName acks
+ Category BackMatter
+ InTitle 0
+ LabelFont
+ Series Bold
+ EndFont
+ TopSep 0.4
+ LabelBottomsep 0
+ LabelType Above
+ LabelString "Acknowledgments"
+ DocBookTag para
+ DocBookWrapperTag acknowledgements
+ DocBookSection true
+End