invoice-free.openapps.xyz

Source

This app’s code and revision history are public. Download a copy or explore the files below.

Public
The app’s code and revision history are public.
Owned app · rev 333971bf96d2
Run it yourself
Take the whole tree and run it on your own machine. The download needs no account. Cloning needs a sign-in.
Download .zip
bounded clone b3b80918bc912dda8c53a48d
A copy you download is not bounded. The guarantees this app runs under - declared egress, proven invariants, writes that fail closed - live in the runtime serving this page, not in the files. What you get is auditable source you can read and run, with no runtime guarantees attached.
← All files
src/Skeleton.tsx
// The invoice page's shape while it loads, so nothing jumps when the invoice arrives.
export function PageSkeleton() {
  return (
    <div className="inv" aria-busy="true" aria-label="Opening the invoice">
      <header className="inv-head">
        <div className="wrap inv-head-inner">
          <div className="inv-skeleton-head">
            <span className="skeleton skeleton-eyebrow" />
            <span className="skeleton skeleton-amount" />
            <span className="skeleton skeleton-sub" />
          </div>
        </div>
      </header>
      <div className="wrap inv-body">
        <div className="inv-paper"><span className="skeleton skeleton-sheet" /></div>
      </div>
    </div>
  );
}

Change history

Quality pass: phone-readable invoice, estimates, email client, saved clients, CSV export, openapi.json
333971bf96 · 6 hours ago
Bounded source sync
088b53bddb · 1 day ago
Bounded source sync
3f3e9ff8f9 · 1 day ago
Bounded source sync
209bec4267 · 1 day ago
Bounded source sync
11f3d98cda · 1 day ago
Bounded source sync
722948ebc3 · 1 day ago
Bounded source sync
3e9d04b2c0 · 1 day ago