Skip to content

Latest commit

 

History

History
71 lines (57 loc) · 2.81 KB

File metadata and controls

71 lines (57 loc) · 2.81 KB
title Forge
slug forge
year 2025
tags
software
tooling
dev
status IN PROGRESS
tech
React
TypeScript
Vite
Tailwind CSS
shadcn/ui
Zustand
Supabase
Recharts
summary Forge - an all-in-one freelancer management dashboard for time tracking, project scoping, finances, invoicing, and client portals.
sort_order 4

FORGE

A freelancer management dashboard built with React, TypeScript, and Vite.

What it does

FORGE is an all-in-one business tool for freelancers and solo consultants. It covers time tracking, project management, client relationships, finances, proposals, and invoicing - all in a single local-first app with optional Supabase cloud sync.

Core features

  • Dashboard - overview of revenue, active projects, and weekly stats with Recharts visualizations
  • Time Tracker - start/stop timer with per-project and per-task tracking
  • Projects - manage projects with scope, profitability analysis, and task checklists
  • Clients - client directory with contact info and project history
  • Client Portal - shareable read-only view for clients to see project status
  • Finances - income/expense tracking, charts, and invoice generation (PDF export)
  • Proposals - create and manage project proposals
  • Weekly Review - reflect on the week with logged hours, completed tasks, and notes
  • Design Review - upload screens and pin review comments
  • Notes - freeform notes attached to projects or standalone
  • Settings - configure hourly rates, project types, automations, and appearance

Tech stack

Layer Tool
Framework React 18 + TypeScript
Build Vite 6
Styling Tailwind CSS 3 + shadcn/ui (Nova theme)
Icons Lucide React
Charts Recharts
State Zustand (persisted to localStorage or Supabase)
Auth Supabase Auth (email/password)
Routing React Router 6
Font Manrope + JetBrains Mono

Project structure

src/
├── components/       # Shared UI (Layout, CommandPalette, shadcn primitives)
│   └── ui/           # shadcn/ui components (Button, Card, Badge, Input, etc.)
├── pages/            # Route-level pages (Dashboard, Projects, Finances, …)
├── store.ts          # Zustand store - all app state and actions
├── types.ts          # TypeScript interfaces and enums
├── storage.ts        # Storage adapter (localStorage / Supabase)
├── utils/            # Helpers (PDF invoice generation, etc.)
└── index.css         # Theme tokens (CSS custom properties, dark/light mode)

Getting started

npm install
npm run dev

The app runs at http://localhost:5173 by default. No backend is required for local-only mode - all data persists in the browser's localStorage.

For cloud sync, copy .env.example to .env and add your Supabase project credentials.