Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ config/*_ed25519.pub
dday
*.out
*.db
frontend/target
17 changes: 17 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,23 @@ jobs:
- name: test (race)
run: go test -race ./...

# The committed frontend/dist artifacts are what ships; this job only proves
# the Rust frontend still compiles (fmt + clippy + wasm build).
frontend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: rustup target add wasm32-unknown-unknown
- uses: Swatinem/rust-cache@v2
with:
workspaces: frontend
- name: cargo fmt
run: cargo fmt --manifest-path frontend/Cargo.toml --check
- name: cargo clippy
run: cargo clippy --manifest-path frontend/Cargo.toml --target wasm32-unknown-unknown -- -D warnings
- name: build (wasm32)
run: cargo build --manifest-path frontend/Cargo.toml --release --target wasm32-unknown-unknown

docker:
runs-on: ubuntu-latest
steps:
Expand Down
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
/dday
*.out

# Rust frontend build tree (frontend/dist IS committed — the Go binary embeds it)
/frontend/target/

# Secrets — never commit
matrix.env
.env
/config/*_ed25519
/config/*_ed25519.pub

# Local SQLite DB from dev runs
/dday.db*
7 changes: 5 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ IMAGE ?= dday:latest
PORT ?= 3329
MATRIX_ENV ?= matrix.env

.PHONY: help run dev build docker up down logs fmt vet tidy test keys \
.PHONY: help run dev build frontend docker up down logs fmt vet tidy test keys \
check check-keys matrix-hello matrix-send bot

help: ## Show this help
Expand All @@ -12,9 +12,12 @@ help: ## Show this help
run: ## Run the web server locally on $(PORT)
PORT=$(PORT) go run .

dev: ## Run the web server serving index.html from disk (live edits)
dev: ## Run the web server serving frontend/dist from disk (rebuild via `make frontend`)
PORT=$(PORT) STATIC_DIR=. go run .

frontend: ## Rebuild the Rust+ratatui WASM frontend into frontend/dist (committed)
./scripts/build-frontend.sh

build: ## Build the web server binary
CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o dday .

Expand Down
20 changes: 17 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# D-Day

Statyczny landing page unconference **D-Day**.
Landing page unconference **D-Day** — terminal w przeglądarce: Rust + [ratatui](https://ratatui.rs) + WebAssembly ([Ratzilla](https://github.com/ratatui/ratzilla)). Memory safe ✨

- **Kiedy:** sobota 8 sierpnia 2026, 14:00–22:00
- **Gdzie:** Hakierspejs, Zielona 30 LU3, Łódź
Expand All @@ -9,9 +9,23 @@ Statyczny landing page unconference **D-Day**.

## Rozwój

Pojedynczy plik `index.html`, bez zależności. Otwórz lokalnie w przeglądarce albo hostuj przez GitHub Pages.
Frontend mieszka w `frontend/` — crate Rust renderujący cały interfejs jako TUI
(ratatui) do DOM przez Ratzillę. Zbudowane artefakty (`frontend/dist/`:
`index.html`, `dday_web.js`, `dday_web_bg.wasm`) **są commitowane** — binarka Go
je embeduje, więc `go build` i obraz Dockera nie wymagają toolchaina Rusta.

Link do formularza zapisów podmień w `index.html` (szukaj `TODO` w sekcji `<script>` oraz `id="register"`).
Przebudowa frontendu po zmianach w `frontend/src/lib.rs`:

```sh
rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli --version <wersja z frontend/Cargo.lock> --locked
make frontend # = scripts/build-frontend.sh, odświeża frontend/dist/
```

Podgląd na żywo: `make dev` (serwuje `frontend/dist` z dysku, `make frontend`
po każdej zmianie). Daty startu zapisów i wydarzenia są zaszyte w
`frontend/src/lib.rs` (`REG_OPEN_MS`, `EVENT_MS`) i muszą zgadzać się z
`internal/regwindow` — tak samo jak wcześniej w `index.html`.

## RODO — usuwanie danych uczestnika

Expand Down
Binary file added docs/screenshot-closed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/screenshot-open.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading