How to build an email app using Java 17, Swing, SQLite JDBC

Build Postmark Desk, a desktop mail client shell with folders, compose, search, and packaging notes with Java 17, Swing, SQLite JDBC.

  • Difficulty Intermediate
  • Parts 12
  • Stack Java 17, Swing, SQLite JDBC

What you are building

Postmark Desk is a email app you assemble in twelve short stages. The teaching stack is Swing (Java 17, Swing, SQLite JDBC). By the end you should understand the shell, the data you persist, and the everyday workflows people expect from this kind of app.

Swing’s split panes mirror classic mail clients: folders, message list, and reading pane—without needing a real SMTP server at first.

Store messages in SQLite so compose/send/receive stay local and deterministic for classroom demos.

Work in order. Early folders are intentionally small so you can see the window (or server) boot before features pile on. From the data-layer part onward, each snapshot should still run after you install dependencies.

How to use these lessons

Read the goal, clone the matching GitHub folder, run it, then skim the code against the notes below. If something fails, fix the run path first—most “bugs” on day one are the wrong directory or a skipped install.

Open the Postmark Desk GitHub repo →

Parts in order

Each chapter below is one checkpoint. Open a part when you are ready for that feature—not all at once.