Every window in Old Windows — its icon on the desktop, its entry in the Start menu, its title bar label, and the content rendered inside it — is declared in a single place: theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/old-windows/llms.txt
Use this file to discover all available pages before exploring further.
apps array exported from config/apps.js. Nothing else in the codebase needs to change when you add, remove, or reorder an app. Desktop and Taskbar both import the same array and derive their UI from it.
The apps array structure
Here is the complete shape of an app entry, drawn directly from the source:- Desktop — iterates
appsto render one desktop icondivper entry. Theiconis displayed attext-4xl; thetitleis shown below it infont-pixel. Double-clicking callsopenWindow(entry.id, entry.title, <entry.component />, entry.icon, { width: entry.width, height: entry.height }). - Taskbar Start menu — iterates
appsto render one menu item per entry. Theiconis shown in a 24×24 container; thetitleis shown underlined beside it. Clicking opens the window and closes the Start menu. - Window status bar (WebRing nav) — uses
apps.findIndexto locate the current window and computes the previous, random, and next entries for the Prev / Random / Next buttons.
Field reference
A unique identifier for the window. Used as the React key on the desktop icon, as the key in the
windows context array, and as the argument to all context actions (openWindow, closeWindow, focusWindow, etc.). Must be unique across all entries in the array. Example: 'about', 'blog', 'contact'.The human-readable display name. Shown as the desktop icon label, the window title bar text, and the Start menu item text. Old Windows uses retro filenames here (
'about_me.html', 'my_projects/', '~/blog') but you can use any string. Truncated with overflow-hidden text-ellipsis when it overflows its container.A JSX element (typically a
<span> wrapping an emoji) rendered as the desktop icon, the window title bar icon (16×16), and the Start menu icon (24×24). All nine built-in icons use emoji wrapped in <span> elements, e.g. <span>🏠</span>. You can substitute any React element — an <img>, an SVG, or a custom icon component.A React component (not a JSX element — no
< />). Desktop and Taskbar both instantiate it at open time with <entry.component />. This component receives no props and fills the window body area. It should size itself to h-full / w-full so it fills the available space inside the window chrome.The initial window width in pixels when the window first opens. Passed as
width in the openWindow options object and stored on the window state object. Has no effect when the window is maximized. Defaults to 600 if omitted.The initial window height in pixels when the window first opens. Passed as
height in the openWindow options object and stored on the window state object. Has no effect when the window is maximized. Defaults to 400 if omitted.All nine built-in apps
The fullapps array shipped with Old Windows, in declaration order:
| # | id | title | icon | width | height |
|---|---|---|---|---|---|
| 0 | home | index.html | 🏠 | 700 | 500 |
| 1 | about | about_me.html | 👤 | 500 | 450 |
| 2 | projects | my_projects/ | 📁 | 800 | 600 |
| 3 | skills | skillz.html | ⚙️ | 600 | 400 |
| 4 | work | work_history.txt | 📝 | 550 | 500 |
| 5 | case_studies | case_studies/ | 📖 | 750 | 600 |
| 6 | blog | ~/blog | 🌐 | 650 | 550 |
| 7 | contact | sign_my_guestbook.cgi | ✉️ | 450 | 500 |
| 8 | testimonials | kind_words.html | 💬 | 600 | 450 |