Skip to content

Latest commit

 

History

History
48 lines (34 loc) · 3.08 KB

File metadata and controls

48 lines (34 loc) · 3.08 KB

Developer Documentation

Welcome to the elek.io Desktop developer documentation. This guide will help you understand the codebase architecture and development patterns.

Note

This folder documents how to contribute to elek.io Desktop. If instead you want to consume your Projects' content inside your own applications, see the @elek-io/core documentation. Core ships its full guides (content export, local API, API client generation) both in its repository and in the package's docs folder.

Prerequisites

  • Familiarity with TypeScript and React
  • Basic understanding of Electron architecture
  • Knowledge of React Hook Form and TanStack Query (helpful but not required)
  • Understanding of Git and version control concepts

Getting Started

Start with Overview to understand the application architecture, security model, and how the different processes communicate.

Then proceed to the specific topics based on your interests or contribution goals:

  • Routing - File-based routing, layout routes, hash history, and why data is fetched in components rather than route guards
  • Loading and Updating Data - TanStack Query patterns for data fetching and mutations
  • Dynamic Form Field Generation - How user-defined forms work with field definitions
  • Markdown Editor - The Milkdown based mdast editor for markdown fields: the tree bridge, feature gating, and reference nodes
  • Breadcrumb Navigation - Route-based breadcrumb system for hierarchical navigation
  • Theming and Styling - shadcn/ui components, Tailwind v4 CSS configuration, and dark mode
  • Internationalization - translations, datetime locales, and multi-language form state
  • Build and Packaging - how electron-vite and electron-builder turn source into installers, the rule for dependencies vs devDependencies, and what drives app size
  • E2E Testing - Playwright tests against the packaged app, fixtures, isolation, and CI
  • Releasing - versioning with changesets and how CD publishes draft GitHub Releases

For a running list of things Core supports but the desktop app cannot use yet, see Not Yet Implemented. Add to it whenever you find such a gap.

Contributing

When updating these docs:

  • Keep code examples up-to-date with actual implementation
  • Include file references with line numbers where relevant
  • Add practical examples for complex concepts

Additional Resources