Inspiration

We were brainstorming ideas about irregular income individuals and narrowed it down to freelancers, people who provide highly specific services to customers. These people naturally have a lot of backlog on fees because of the nature of their work. We wanted to make something that reduces the stress on them by ensuring that they don't need to worry about their income. We built Tide to show how delayed income affects future cash flow and whether borrowing is actually necessary.

What it does

Tide does the following:

  • Tracks expected client payments, other income, and bills.
  • Creates a 6-week cash-flow forecast.
  • Shows the user's projected balance week by week.
  • Lets users simulate a late client payment.
  • Automatically recalculates the forecast when payment timing changes. Tide also identifies the following:
  • Bill shortfall: money actually needed to cover bills.
  • Safety gap: how far the balance falls below the user's desired safety amount.
  • Includes a loan calculator showing: -- Loan amount -- APR -- Term -- Monthly payment -- Total repayment -- Total interest Tide also a friendly invoice reminder draft that users can copy and send to their customers. Tide also includes a guest demo and private accounts to allow people to test out the software.

How we built it

React 19 — frontend/interface. JavaScript — financial forecasting and loan calculations. Vite 7 — development environment and production builds. Tailwind CSS 4 — responsive UI and styling. Firebase Authentication — Google and email/password login. Cloud Firestore — saves each user's financial plan. Firebase Hosting — hosts the live application. Vitest — tests financial calculations. React Testing Library — tests user workflows/components. Lucide React — interface icons. Our core flow is Income + Bills → Payment Timing → 6-Week Forecast → Shortfall/Safety Gap → Borrowing Decision.

Challenges we ran into

Modeling finances based on when money arrives, not just total income. Handling invoices that become late or change expected dates. Separating a real bill shortfall from simply falling below a desired safety amount. Making financial information understandable without overwhelming the user. Connecting authentication and Firestore persistence to the financial plan. Creating both a guest demo and private saved accounts. Building and testing everything within the hackathon timeframe.

Accomplishments that we're proud of

We both learned how to leverage Tailwind CSS to write les code and have most of the code do more work for us. We also learned how to use Vitest to run more tests on our websites to ensure that we can handle extremely large demands on the server.

What we learned

Cash-flow timing can matter as much as total income. How to build a complete application with React and Firebase. How to use Firestore for persistent user data. How to implement Google/email authentication. How to create and test financial forecasting logic. How to communicate financial risk through simple visualizations. How to distinguish between needing money and simply wanting to preserve an emergency buffer.

What's next for Tide

Bank account integration. Integration with invoicing platforms. Automatic transaction importing. Historical client payment tracking. Predict when clients are likely to pay late. Notifications about upcoming cash-flow problems. More advanced scenario comparisons. Improved mobile experience. More detailed borrowing comparisons. There are so many features, yet so little time in this hackathon. We would like to bring these features in future implementations, and if we have the opportunity, launch it as a full-stack software.

Built With

  • firebase-authentication
  • firebase-hosting
  • firestore
  • html
  • lucide-react
  • tailwind-css
  • vite
  • vitest
Share this project:

Updates

Submission history