Skip to content

Commit c53dd1a

Browse files
author
b45632
committed
docs: add app guide and screenshots
1 parent a26b13f commit c53dd1a

7 files changed

Lines changed: 375 additions & 3 deletions

File tree

README.md

Lines changed: 375 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,375 @@
1-
# CodeDeck
2-
Ein Desktop-Programm, in dem man alle lokalen Coding-Projekte zentral sieht und sie mit einem Klick öffnet/startet.
3-
User legen global fest, welche Programme sie nutzen
1+
<p align="center">
2+
<img src="public/icon.png" alt="Code Deck icon" width="96" height="96">
3+
</p>
4+
5+
<h1 align="center">Code Deck</h1>
6+
7+
<p align="center">
8+
A desktop app for keeping local development projects, launch commands and IDE shortcuts in one place.
9+
</p>
10+
11+
<p align="center">
12+
<a href="https://github.com/JadnK/CodeDeck/actions/workflows/ci.yml"><img src="https://github.com/JadnK/CodeDeck/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
13+
<a href="https://github.com/JadnK/CodeDeck/releases"><img src="https://img.shields.io/github/v/release/JadnK/CodeDeck?display_name=tag&sort=semver" alt="Latest release"></a>
14+
<img src="https://img.shields.io/badge/Tauri-2.x-24C8DB?logo=tauri&logoColor=white" alt="Tauri 2">
15+
<img src="https://img.shields.io/badge/React-TypeScript-3178C6?logo=react&logoColor=white" alt="React and TypeScript">
16+
</p>
17+
18+
![Code Deck dashboard](docs/screenshots/dashboard.png)
19+
20+
## What Code Deck does
21+
22+
I made Code Deck because opening a project was usually the same routine: find the folder, open the right IDE, start a terminal and look up the command I used last time.
23+
24+
Code Deck keeps that setup with the project. You can:
25+
26+
- add existing projects or create new ones from a starter
27+
- open a project in its preferred IDE
28+
- open its terminal or folder
29+
- save and run project commands
30+
- see live command output and stop running processes
31+
- view basic Git information such as branch, changed files and the last commit
32+
- group several actions into a workspace
33+
- keep everything local and export the configuration as JSON
34+
35+
The current interface is in German. This README uses the exact German button names where that makes the app easier to find.
36+
37+
## Where everything is
38+
39+
| Area | Where to find it | What it is for |
40+
|---|---|---|
41+
| Project search | Search field at the top | Searches names, paths, tags, frameworks and branches |
42+
| Favorites | **Favoriten** filter and star on each card | Keeps frequently used projects at the top |
43+
| Add a project | **Neues Projekt** | Creates a starter project or adds an existing folder |
44+
| Scan folders | **Ordner scannen** | Looks below a base folder for Git repositories and known project files |
45+
| Project actions | **Details** on a project card | IDE, terminal, commands, Git status and project settings |
46+
| Running commands | **Prozesse** in the top bar | Live output, status, history and stop buttons |
47+
| Multi-project setup | **Workspaces** in the top bar | Starts several project actions together |
48+
| App configuration | **Einstellungen** in the top bar | IDE commands, templates, theme, folders and import/export |
49+
50+
## Adding projects
51+
52+
Click **Neues Projekt** on the dashboard. There are two modes.
53+
54+
### Create a new project
55+
56+
Choose **Neues Projekt erstellen** and select a starter:
57+
58+
- Empty project
59+
- Node.js
60+
- Node.js with TypeScript
61+
- React with Vite
62+
- Spring Boot with Maven and Java 21
63+
- Python
64+
- Rust CLI
65+
- one of your own local templates
66+
67+
Then enter the project name and the parent folder. Code Deck shows the final path before it creates anything. Git initialization is optional.
68+
69+
Dependencies are not installed automatically. For example, a generated React project still needs `pnpm install` or `npm install` afterwards.
70+
71+
![New project dialog](docs/screenshots/new-project.png)
72+
73+
### Add an existing project
74+
75+
Choose **Vorhandenen Ordner hinzufügen** and select the project directory. Code Deck checks common files such as:
76+
77+
```text
78+
.git
79+
package.json
80+
Cargo.toml
81+
pom.xml
82+
build.gradle
83+
pyproject.toml
84+
go.mod
85+
Dockerfile
86+
```
87+
88+
Detected package scripts are added as command suggestions. The project files themselves are not changed.
89+
90+
### Scan a projects folder
91+
92+
Use **Ordner scannen** when you already have many repositories below one folder, for example:
93+
94+
```text
95+
C:\Users\you\Projects
96+
```
97+
98+
The scan lists likely projects first. You decide which ones are added.
99+
100+
## Project details
101+
102+
Open **Details** from a project card.
103+
104+
![Project details](docs/screenshots/project-details.png)
105+
106+
The detail view contains the project-specific functions:
107+
108+
- **Open in …** starts the preferred IDE configured for the project
109+
- **Terminal öffnen** opens a terminal in the project directory
110+
- **Ordner öffnen** opens Explorer, Finder or the Linux file manager
111+
- **Status aktualisieren** scans frameworks, scripts, Docker files and Git data again
112+
- **Commands** stores commands such as `pnpm dev`, `mvn test` or `cargo run`
113+
- **Git status** shows the current branch, changed-file count and latest commit
114+
- project name, description, tags, favorite state and preferred IDE can be edited here
115+
- archiving hides the project from the normal dashboard without deleting its files
116+
117+
A command always runs with the project folder as its base directory. A custom working directory and environment variables can also be saved per command.
118+
119+
## Processes and logs
120+
121+
Starting a command opens the **Prozesse** panel. It stays available from the top bar afterwards.
122+
123+
![Processes and live logs](docs/screenshots/processes.png)
124+
125+
Each run shows:
126+
127+
- project and command name
128+
- running, successful, failed or stopped state
129+
- start time and process ID when available
130+
- stdout and stderr output
131+
- a stop button for active processes
132+
133+
Finished entries can be removed from the history without touching the project.
134+
135+
## Workspaces
136+
137+
A workspace is useful when one task needs several projects, for example a frontend, API and local browser URL.
138+
139+
![Workspace configuration](docs/screenshots/workspaces.png)
140+
141+
Open **Workspaces**, create a workspace and add actions. Supported actions are:
142+
143+
- open a project in an IDE
144+
- open a terminal
145+
- open the project folder
146+
- run a saved or custom command
147+
- open a URL
148+
149+
Actions can run in parallel or in sequence. **Start** runs the complete workspace; **Stop all** stops processes that were started by that workspace.
150+
151+
## Settings
152+
153+
Open **Einstellungen** in the top-right corner.
154+
155+
![Code Deck settings](docs/screenshots/settings.png)
156+
157+
### Editors and IDEs
158+
159+
Each editor has a name and a command template. Examples:
160+
161+
```text
162+
VS Code: code "{projectPath}"
163+
Cursor: cursor "{projectPath}"
164+
IntelliJ IDEA: idea "{projectPath}"
165+
WebStorm: webstorm "{projectPath}"
166+
```
167+
168+
Available placeholders:
169+
170+
```text
171+
{projectPath}
172+
{projectName}
173+
```
174+
175+
Keep `{projectPath}` in quotes so paths containing spaces work correctly.
176+
177+
### Terminal and default folder
178+
179+
You can set:
180+
181+
- the default folder used by project dialogs and folder scans
182+
- a custom terminal launch command when automatic terminal detection does not fit your setup
183+
184+
Leaving the terminal command empty uses the platform-specific default.
185+
186+
### Custom project templates
187+
188+
Under **Eigene Projektvorlagen**, select a local folder and save it as a reusable template. When the template is used, Code Deck copies its files into the new project folder.
189+
190+
Generated or repository-specific folders such as these are skipped:
191+
192+
```text
193+
.git
194+
node_modules
195+
target
196+
dist
197+
build
198+
```
199+
200+
### Appearance and backups
201+
202+
Settings also contains:
203+
204+
- light, dark and system theme
205+
- JSON export of projects, editors, workspaces and settings
206+
- JSON import with confirmation before the current configuration is replaced
207+
- an option to run the onboarding again
208+
209+
Imported commands are marked as untrusted and require confirmation before their first run.
210+
211+
## Keyboard shortcuts
212+
213+
| Shortcut | Action |
214+
|---|---|
215+
| `Ctrl/Cmd + K` | Focus project search |
216+
| `Ctrl/Cmd + N` | Open the add-project dialog |
217+
| `Esc` | Close the active dialog |
218+
219+
## Installation
220+
221+
Download a build from [GitHub Releases](https://github.com/JadnK/CodeDeck/releases).
222+
223+
| Platform | Package |
224+
|---|---|
225+
| Windows | `.msi` or setup `.exe` |
226+
| macOS | `.dmg` |
227+
| Linux | `.AppImage` or `.deb` |
228+
229+
Code Deck does not require an account or a server. The app configuration stays on the local machine.
230+
231+
## Running from source
232+
233+
### Requirements
234+
235+
- Node.js 24
236+
- pnpm 10.33 or newer
237+
- stable Rust toolchain
238+
- the Tauri system dependencies for your operating system
239+
240+
### Development
241+
242+
```bash
243+
pnpm install --frozen-lockfile
244+
pnpm tauri:dev
245+
```
246+
247+
Frontend only:
248+
249+
```bash
250+
pnpm dev
251+
```
252+
253+
The frontend-only version is useful for UI work, but filesystem dialogs, process execution and IDE launching require the Tauri app.
254+
255+
### Checks and build
256+
257+
```bash
258+
pnpm build
259+
cargo check --manifest-path src-tauri/Cargo.toml
260+
pnpm tauri:build
261+
```
262+
263+
Tauri writes platform packages below:
264+
265+
```text
266+
src-tauri/target/release/bundle/
267+
```
268+
269+
### Linux packages
270+
271+
On Ubuntu or Debian:
272+
273+
```bash
274+
sudo apt-get update
275+
sudo apt-get install -y \
276+
libwebkit2gtk-4.1-dev \
277+
libappindicator3-dev \
278+
librsvg2-dev \
279+
patchelf
280+
```
281+
282+
On macOS, install the Xcode command-line tools:
283+
284+
```bash
285+
xcode-select --install
286+
```
287+
288+
On Windows, install Microsoft C++ Build Tools with the **Desktop development with C++** workload.
289+
290+
## Project structure
291+
292+
```text
293+
CodeDeck/
294+
├── src/
295+
│ ├── app/ # Main application state and actions
296+
│ ├── features/
297+
│ │ ├── onboarding/ # First-start guide
298+
│ │ ├── processes/ # Process list and logs
299+
│ │ ├── projects/ # Cards, creation, scanning and details
300+
│ │ ├── settings/ # Editors, templates and app settings
301+
│ │ └── workspaces/ # Workspace editor and runner
302+
│ └── shared/
303+
│ ├── components/ # Shared modal, icons and toasts
304+
│ ├── lib/ # Storage, templates and Tauri bridge
305+
│ └── types/ # Shared TypeScript models
306+
├── src-tauri/
307+
│ ├── src/ # Rust commands and OS integration
308+
│ ├── capabilities/ # Tauri permissions
309+
│ └── tauri.conf.json # Window and bundle configuration
310+
├── docs/screenshots/ # Images used in this README
311+
├── .github/workflows/ # CI and release workflows
312+
├── CHANGELOG.md
313+
└── CONTRIBUTING.md
314+
```
315+
316+
## Local data and command safety
317+
318+
Code Deck reads project metadata but does not silently rewrite source files.
319+
320+
Commands are only started after a click. They run with the permissions of the signed-in operating-system user, so the same care applies as when running a command manually in a terminal.
321+
322+
Only import configurations and custom templates you trust.
323+
324+
## Releases
325+
326+
Before creating a release, keep the version in these files identical:
327+
328+
```text
329+
package.json
330+
src-tauri/Cargo.toml
331+
src-tauri/tauri.conf.json
332+
```
333+
334+
Then create and push the matching tag:
335+
336+
```bash
337+
git tag -a v0.2.0 -m "Code Deck v0.2.0"
338+
git push origin v0.2.0
339+
```
340+
341+
The release workflow builds the platform packages and creates a GitHub release draft for review.
342+
343+
## Current plans
344+
345+
The next useful additions are:
346+
347+
- SQLite storage instead of browser-backed local storage
348+
- better Git actions such as fetch and pull
349+
- Docker Compose controls
350+
- port and process overview
351+
- update notifications
352+
- workspace templates
353+
- a command palette
354+
355+
## Contributing
356+
357+
For a small change, create a branch such as:
358+
359+
```text
360+
feature/project-icons
361+
fix/windows-terminal-launch
362+
```
363+
364+
Before opening a pull request, run:
365+
366+
```bash
367+
pnpm build
368+
cargo check --manifest-path src-tauri/Cargo.toml
369+
```
370+
371+
More details are in [CONTRIBUTING.md](CONTRIBUTING.md).
372+
373+
## License
374+
375+
See [LICENSE](LICENSE).

docs/screenshots/dashboard.png

153 KB
Loading

docs/screenshots/new-project.png

168 KB
Loading

docs/screenshots/processes.png

95.6 KB
Loading
136 KB
Loading

docs/screenshots/settings.png

170 KB
Loading

docs/screenshots/workspaces.png

139 KB
Loading

0 commit comments

Comments
 (0)