Web app for LiquiFact — the global invoice liquidity network on Stellar. Next.js dashboard for SMEs (upload invoices, get liquidity) and investors (fund tokenized invoices, earn yield). Stellar wallet integration is planned.
Part of the LiquiFact stack: frontend (this repo) | backend (Express API) | contracts (Soroban).
- Node.js 20+ (LTS recommended)
- npm 9+
-
Clone the repo
git clone <this-repo-url> cd liquifact-frontend
-
Install dependencies
npm ci
-
Configure environment (optional)
cp .env.local.example .env.local # Set NEXT_PUBLIC_API_URL if the API is not at http://localhost:3001
| Command | Description |
|---|---|
npm run dev |
Start dev server (Turbopack) |
npm run build |
Production build |
npm run start |
Start production server |
npm run lint |
Run ESLint |
npm run test:e2e |
Run Playwright smoke tests |
Default: http://localhost:3000. The home page can check API health at NEXT_PUBLIC_API_URL (default http://localhost:3001).
liquifact-frontend/
├── app/
│ ├── layout.js # Root layout, LiquiFact metadata
│ ├── page.js # Home (wallet CTA, API health check)
│ ├── invoices/ # Invoices placeholder page
│ └── invest/ # Invest placeholder page
├── public/
├── .env.local.example
├── eslint.config.mjs
└── package.json
Tech: Next.js 16 (App Router), React 19, Tailwind CSS 4.
GitHub Actions runs on every push and pull request to main:
- Lint —
npm run lint - Build —
npm run build
Keep both passing before opening a PR.
See CONTRIBUTING.md for the full contributor workflow, branch naming convention, local checks, and accessibility expectations.
- Fork the repo and clone your fork.
- Create a branch from
main:git checkout -b feature/your-featureorfix/your-fix. - Setup:
npm ci, optionallycp .env.local.example .env.local. - Make changes:
- Follow existing patterns under
app/. - Run
npm run lintandnpm run buildlocally.
- Follow existing patterns under
- Commit with clear messages (e.g.
feat: add X,fix: Y). - Push to your fork and open a Pull Request to
main. - Wait for CI and address review feedback.
We welcome UI improvements, new pages (e.g. invoice upload, marketplace), and Stellar wallet integration aligned with the LiquiFact product.
See COMPONENTS.md for the full component library reference — props, accessibility notes, and usage examples for every shared component (ErrorBanner, Footer, InvoiceListSkeleton, ToastProvider, UploadZone, WalletStatus).
-
Colors
--color-bg:#0f0f0f(slate‑950)--color-primary:#06b6d4(cyan‑400)
-
Typography
- Font family: Geist – imported via
@fontsource/geist. - Headings use
font‑bold, body usesfont‑regular.
- Font family: Geist – imported via
See TESTING.md for the full guide covering Jest unit/accessibility tests and Playwright end-to-end setup.
MIT (see root LiquiFact project for full license).