Tally is a modern accounting app designed for streamlined cashflow logging and tracking, built specifically for small business owners and independent service providers.
Tally - Your one-stop accountant for small businesses
- Secure user authentication with Supabase Auth
- Email/password login and registration
- Protected dashboard routes
- Session management
- Create, read, update, and delete services
- Organize services by categories (e.g., Lash Extensions, Nails, Hair)
- Set default pricing for each service
- Add descriptions and duration details
- Autocomplete category suggestions
- Log income transactions with detailed information
- Link transactions to services with automatic price filling
- Apply discounts to services
- Track client names for repeat business
- Multiple payment method support (Cash, Card, Bank Transfer, PayPal, Other)
- View income summary with total revenue and transaction count
- Responsive table view (desktop) and card view (mobile)
- Record business expenses and spending
- Categorize spending (e.g., Supplies, Rent, Marketing)
- Track payment methods
- Add optional notes for additional context
- View spending summary with total expenses and transaction count
- Responsive design for all screen sizes
- Quick overview of business finances
- Summary cards for income and spending
- Recent transaction lists
- Mobile-responsive layout
- Fully responsive design for mobile, tablet, and desktop
- Hamburger menu navigation on mobile devices
- Touch-friendly interfaces
- Optimized card layouts for small screens
- Full dark mode support across all pages
- Automatic theme detection
- Smooth theme transitions
- Framework: Next.js 16.0.4 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Database: Supabase (PostgreSQL)
- Authentication: Supabase Auth
- Deployment: Vercel
- Icons: Lucide React
tally-app/
βββ src/
β βββ app/
β β βββ (auth)/ # Authentication pages (login, signup)
β β βββ dashboard/ # Protected dashboard routes
β β β βββ income/ # Income tracking pages
β β β βββ services/ # Services management pages
β β β βββ spending/ # Spending tracking pages
β β β βββ layout.tsx # Dashboard layout with navigation
β β βββ page.tsx # Landing page
β βββ components/ # Reusable UI components
β βββ lib/ # Utility functions and configs
β βββ types/ # TypeScript type definitions
βββ supabase/
β βββ migrations/ # Database migration files
βββ public/ # Static assets
- Node.js 18+ installed
- Supabase account and project
- npm, yarn, pnpm, or bun package manager
- Clone the repository:
git clone https://github.com/alexYooDev/tally-app.git
cd tally-app- Install dependencies:
npm install
# or
yarn install
# or
pnpm install
# or
bun install- Set up environment variables:
Create a
.env.localfile in the root directory:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key- Run database migrations:
- Go to your Supabase project SQL Editor
- Run the migration files in
supabase/migrations/in order
- Start the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev- Open http://localhost:3000 in your browser
users- User authentication and profilesservices- Business services catalogincome_transactions- Income recordsspending_transactions- Expense recordscategories- Service and spending categories (with type filtering)
- Services β Categories (many-to-one)
- Income Transactions β Services (many-to-one)
- Income Transactions β Users (many-to-one)
- Spending Transactions β Categories (many-to-one)
- Spending Transactions β Users (many-to-one)
- Type-based filtering (service vs. spending categories)
- Autocomplete suggestions using HTML5 datalist
- Create categories on-the-fly while adding services/transactions
- Clear category selection with X buttons
- Service-based pricing with automatic price filling
- Discount application
- Total received calculation (price - discount)
- Client name tracking for customer relationship management
- Date validation (cannot select future dates)
- Flexible categorization
- Description field for transaction details
- Payment method tracking
- Optional notes for additional context
- Desktop: Full table views with all transaction details
- Mobile: Card-based layouts optimized for touch
- Tablet: Adaptive layouts that work across breakpoints
- Hamburger menu for mobile navigation
- Dashboard analytics with charts and graphs
- Export data to CSV/PDF
- Category management page
- Date range filtering
- Search and advanced filtering
- Multi-currency support
- Recurring transactions
- Client management system
- Invoice generation
This project is open source and available under the MIT License.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
Alex Yoo
- GitHub: @alexYooDev
Built with β€οΈ using Next.js and Supabase