You can add fancier packages and classes if you need them but it is best to start with a really basic structure and just add packages if you need the functionality rather than start with a complicated structure that may be poorly documented. Marginal notes automatically appear on the outer edge, so your basic requirement is already met by the standard article class with no additional packages.

\documentclass[twoside,a4paper]{article}
\extrafloats{100}
\def\zz{One two three four five six seven eight nine ten \stepcounter{enumi}\roman{enumi}. }
\def\zzz{\zz Red blue yellow green
\zz\zz\zz\zz\zz\zz\marginpar{%
\setlength\unitlength{.5pt}
\begin{picture}(200,100)
\put(30,40){\line(1,0){150}}
\put(30,40){\line(0,1){60}}
\put(30,100){\line(1,0){20}}
\put(50,100){\line(1,-4){10}}
\put(60,60){\line(1,0){100}}
\put(160,60){\line(1,-1){20}}
\put(100,50){\line(0,-1){80}}
\put(130,50){\line(0,-1){80}}
\put(100,-30){\line(1,0){30}}
\put(100,61){\line(0,1){49}}
\put(130,61){\line(0,1){49}}
\put(100,110){\line(1,0){30}}
\end{picture}}. \zz\zz Apple orange \Roman{enumi}.
\zz\zz\zz\zz\zz\zz
\zz\zz\zz\marginpar{
\begin{picture}(100,100)
\put(50,50){\oval(50,20){}}
\put(70,65){\circle{20}}
\put(35,50){\line(1,0){30}}
\put(70,65){\circle*{2}}
\put(75,67){\line(6,-1){10}}
\put(75,63){\line(6,1){10}}
\end{picture}}\zz}
\begin{document}
\zzz\zzz\zzz
\zzz\zzz\zzz\zzz\zzz\zzz
\zzz\zzz\zzz\zzz\zzz\zzz\zzz\zzz\zzz
\zzz\zz\zzz\zzz\zzz\zz\zzz\zzz\zzz\zzz\zzz
\zzz\zzz\zz\zzz\zzz\zz\zzz\zzz\zzz\zzz\zzz
\end{document}
articleclass document (single column , twoside) then\marginparwill by default be on the outer edge as you need. – David Carlisle May 16 '19 at 19:40