We describe the \proglang{R} package \pkg{glmmrBase} and an extension
\pkg{glmmrOptim}. \pkg{glmmrBase} provides a flexible approach to specifying,
fitting, and analysing generalised linear mixed models. We use an
object-orientated class system within \proglang{R} to provide methods for a
wide range of covariance and mean functions, including specification of
non-linear functions of data and parameters, relevant to multiple applications
including cluster randomised trials, cohort studies, spatial and
spatio-temporal modelling, and split-plot designs. The class generates relevant
matrices and statistics and a wide range of methods including full likelihood
estimation of generalised linear mixed models using Markov Chain Monte Carlo
Maximum Likelihood, Laplace approximation, power calculation, and access to
relevant calculations. The class also includes Hamiltonian Monte Carlo
simulation of random effects, sparse matrix methods, and other functionality to
support efficient estimation. The \pkg{glmmrOptim} package implements a set of
algorithms to identify c-optimal experimental designs where observations are
correlated and can be specified using the generalised linear mixed model
classes. Several examples and comparisons to existing packages are provided to
illustrate use of the packages