<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: jnk.mnz</title>
    <description>The latest articles on DEV Community by jnk.mnz (@jnk_mnz).</description>
    <link>https://dev.to/jnk_mnz</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2791451%2F53a47d42-c244-406f-8c80-f64fce09ac6b.jpeg</url>
      <title>DEV Community: jnk.mnz</title>
      <link>https://dev.to/jnk_mnz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jnk_mnz"/>
    <language>en</language>
    <item>
      <title>Local and Smart Bookkeeping that stays on your Mac</title>
      <dc:creator>jnk.mnz</dc:creator>
      <pubDate>Sun, 01 Nov 2026 21:31:05 +0000</pubDate>
      <link>https://dev.to/jnk_mnz/local-and-smart-bookkeeping-that-stays-on-your-mac-5glp</link>
      <guid>https://dev.to/jnk_mnz/local-and-smart-bookkeeping-that-stays-on-your-mac-5glp</guid>
      <description>&lt;h3&gt;
  
  
  My accounting data lives on my Mac. Not in some cloud.
&lt;/h3&gt;

&lt;p&gt;As a freelancer, I spent a long time looking for a tool that combines invoicing, time tracking, and taxes without a subscription and without storing my financial data on someone else’s servers. I couldn’t find one. So I built it myself.&lt;/p&gt;

&lt;p&gt;Midnight is an open-source app for freelancers and self-employed professionals in Germany:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Invoices as PDF, XRechnung, or ZUGFeRD&lt;/li&gt;
&lt;li&gt;Time tracking with projects, budgets, and one-click billing&lt;/li&gt;
&lt;li&gt;Income, expenses, and receipts tailored to German EÜR accounting&lt;/li&gt;
&lt;li&gt;Tax forecasts for the current year&lt;/li&gt;
&lt;li&gt;An MCP server that allows AI agents to work directly with your own data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything runs locally in an SQLite database. Built with Rust, Tauri, and React.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jannikmenzel" rel="noopener noreferrer"&gt;
        jannikmenzel
      &lt;/a&gt; / &lt;a href="https://github.com/jannikmenzel/midnight" rel="noopener noreferrer"&gt;
        midnight
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Local bookkeeping for freelancers and the self-employed in Germany
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/jannikmenzel/midnight/src-tauri/icons/app-icon.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fjannikmenzel%2Fmidnight%2FHEAD%2Fsrc-tauri%2Ficons%2Fapp-icon.png" alt="Midnight" width="112"&gt;&lt;/a&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Midnight&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Local bookkeeping for freelancers and self-employed in Germany.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/jannikmenzel/midnight/actions/workflows/ci.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/jannikmenzel/midnight/actions/workflows/ci.yml/badge.svg" alt="CI"&gt;&lt;/a&gt;
&lt;a href="https://github.com/jannikmenzel/midnight/releases" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c3d0d6feb92868392171fe884b7352366f7a24f84ff94ebda106192d2c398b48/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6a616e6e696b6d656e7a656c2f6d69646e696768743f696e636c7564655f70726572656c656173657326736f72743d73656d766572" alt="Release"&gt;&lt;/a&gt;
&lt;a href="https://github.com/jannikmenzel/midnight/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/0fb4f7634808706feb5d9bf669e078e2da524534575a39f2f08c74de3d8a1135/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4147504c2d2d332e302d626c75652e737667" alt="License: AGPL-3.0"&gt;&lt;/a&gt;
&lt;a href="https://github.com/jannikmenzel/midnight#installation" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/06be278c5c597cd98733a82a948d4d2a4a69584a0c1e419098c5f6a811d7217a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f706c6174666f726d2d6d61634f532d6c69676874677265792e7376673f6c6f676f3d6170706c65" alt="Platform: macOS"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="https://tauri.app" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a5f92a4e43a8d5a770dea621e35d5ce2652eb1b6611af02024f30b2a24777366/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f54617572692d322d3234433844422e7376673f6c6f676f3d7461757269266c6f676f436f6c6f723d7768697465" alt="Tauri 2"&gt;&lt;/a&gt;
&lt;a href="https://www.rust-lang.org" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/5741f0e8aa880cbc06a55207700de59f518a2f908e9339902b15612c0606abd8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f527573742d312e39352d3030303030302e7376673f6c6f676f3d72757374" alt="Rust"&gt;&lt;/a&gt;
&lt;a href="https://react.dev" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/1b641b1e41bd9b5802e596132eabcc2375c2369f56949fc1749492feae1422b3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31382d3631444146422e7376673f6c6f676f3d7265616374266c6f676f436f6c6f723d626c61636b" alt="React 18"&gt;&lt;/a&gt;
&lt;a href="https://www.typescriptlang.org" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/84c33cdb849b94639d1241dc4392d5221e6a505d2efa80bed650d68e4219a610/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352d3331373843362e7376673f6c6f676f3d74797065736372697074266c6f676f436f6c6f723d7768697465" alt="TypeScript"&gt;&lt;/a&gt;
&lt;a href="https://www.sqlite.org" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/8c3c7782ee2dc2ea60e5271f3f764667e9263d46eb8178f62d86a5ea7922329e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53514c6974652d6c6f63616c2d3030334235372e7376673f6c6f676f3d73716c697465266c6f676f436f6c6f723d7768697465" alt="SQLite"&gt;&lt;/a&gt;
&lt;a href="https://github.com/jannikmenzel/midnight#mcp-server" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/468676e8b4218e6fc0625bfe30db495015a0e95c88672092124d38f453b132c8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d43502d7365727665722d3841324245322e737667" alt="MCP"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/jannikmenzel/midnight/docs/screenshots/overview.webp"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fjannikmenzel%2Fmidnight%2FHEAD%2Fdocs%2Fscreenshots%2Foverview.webp" alt="Midnight overview with income, expenses, cash flow chart, tax forecast and outstanding invoices"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;What it covers&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Overview&lt;/td&gt;
&lt;td&gt;Income, expenses, profit and open items for the selected period, unbilled time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Income &amp;amp; expenses&lt;/td&gt;
&lt;td&gt;Paid invoices as income, expenses with receipts, extracting name, amount and date from PDF receipts, CSV export&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Categories&lt;/td&gt;
&lt;td&gt;Custom expense categories, pre-filled with typical items for the German EÜR (cash-basis profit statement)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Invoices&lt;/td&gt;
&lt;td&gt;Number sequences, line items, VAT and discounts, small business scheme under § 19 UStG, PDF export via LaTeX, e-invoices (ZUGFeRD/Factur-X EN 16931 and XRechnung 3.0), duplicating, saved products&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Customers&lt;/td&gt;
&lt;td&gt;Customer and order numbers, revenue and tracked time per customer, archive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time tracking&lt;/td&gt;
&lt;td&gt;Projects with hourly rate, budget or fixed price, timer, manual entries, billing unbilled time as a draft invoice, timesheet export&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vault&lt;/td&gt;
&lt;td&gt;Document storage with document type, customer and tags, full-text search in PDF text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reports&lt;/td&gt;
&lt;td&gt;Monthly trend, margin, categories, forecast for the next three months&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jannikmenzel/midnight" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>opensource</category>
      <category>freelance</category>
      <category>rust</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
