No description
- TypeScript 77.9%
- CSS 7.5%
- Java 5.8%
- JavaScript 4.1%
- Shell 3.7%
- Other 1%
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| android | ||
| apps/web | ||
| assets/screenshots | ||
| backend | ||
| docs | ||
| mobile | ||
| packages/core | ||
| scripts | ||
| .dockerignore | ||
| .editorconfig | ||
| .env.example | ||
| .gitignore | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc.json | ||
| capacitor.config.json | ||
| docker-compose.yml | ||
| eslint.config.js | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.base.json | ||
| tsconfig.json | ||
Moneta
Receipts and invoices in one archive: collected from maily, captured with the phone camera.
![]() |
![]() |
![]() |
![]() |
| Archive | Shops | Receipt with original | Invoice (dark mode) |
Screenshots: Moneta 0.1.0 (commit c8645e5), taken 28 October 2026 with sample data.
Development
nvm use # Node 22+ locally; images run Node 24
npm install
cp .env.example .env
npm run dev # tsc watch · backend http://localhost:3047 · web http://localhost:5173
npm run gate # format → lint → build → typecheck → test (+ docker build if packaging changed)
Layout
packages/core: shared domain types and logicapps/web: React + Vite web appbackend: Fastify API; serves the built web app in production
Deployment
Pushing to main builds the image on Forgejo Actions, pushes it to git.gjessing.io/gjessing1/moneta-backend
and redeploys it on the host. Health check: GET /api/health.



