Skip to main content
Brave Programmer Logo

BraveProgrammer

BraveProgrammer

HomeProjectsBlogsCoursesLessonsAbout

Site footer

BraveProgrammer

Free coding courses, practical tutorials, and real projects from BraveProgrammer. Learn web development with React, Next.js, and TypeScript.

Navigation

  • Home
  • Projects
  • Blogs
  • Courses

Resources

  • About
  • Lessons

© 2026 BraveProgrammer. All rights reserved.

  1. Courses
  2. /
  3. Electron.js Desktop App Development

Lesson 21 of 28 · javascript

Capstone Project – Cross‑Platform Note‑Taking App

Duration: 30 mins

Capstone Project – Cross‑Platform Note‑Taking App

In this project you will combine everything you’ve learned.

Requirements

  1. Create, edit, and delete plain‑text notes.
  2. Store notes in electron‑store (JSON file in the user data folder).
  3. Use IPC to fetch and persist notes – UI never touches the file system directly.
  4. Add a system tray icon with a menu: Show, New Note, Quit.
  5. Implement auto‑update using electron-updater (you can point to a GitHub repository you create for the demo).
  6. Package the app for Windows (NSIS), macOS (DMG) and Linux (AppImage) with electron-builder.
  7. Sign the macOS build (you can skip actual notarization for the demo, but include the steps).
  8. Write unit tests for the main‑process store logic using Jest and E2E tests for the UI with Playwright.

Suggested Folder Layout

my‑notes/
├─ main/          # main‑process code
│   └─ main.js
├─ preload/       # bridge script
│   └─ bridge.js
├─ renderer/       # UI (plain HTML/JS or any framework)
│   ├─ index.html
│   └─ renderer.js
├─ package.json
└─ electron-builder.yml (optional custom config)

When you finish, run npm run build and you should see three installers in dist/. Submit the entire project folder (source + build config + test files) as a zip.

Previous: Accessibility – Keyboard, ARIA & High‑ContrastNext: Electron Architecture – Main vs Renderer