A productivity workspace for solo founders and self-employed professionals.
This project includes a Node.js/Express backend and a separate frontend application.
- Node.js (LTS recommended)
- npm or yarn
- A Supabase project (for database and auth)
npm installCreate a .env file in the backend root directory with the following variables:
SUPABASE_URL=<your-supabase-url>
SUPABASE_KEY=<your-supabase-service-role-key>
SUPABASE_ANON_KEY=<your-supabase-anon-key>
Ensure these values come from your Supabase project dashboard.
node index.jsThe backend will start on the configured port (default is often 3000 unless manually changed).
cd frontendnpm installnpm run devThe frontend typically runs at http://localhost:5173 or a similar port depending on your framework.
/backend
│── .env
│── package.json
│── package-lock.json
│── index.js
│── supabaseClient.js
│
├── /middleware
│ └── (middleware files)
│
├── /routes
└── (route handler files)
/frontend
│── package.json
│── package-lock.json
│── vercel.json
│── index.html
│── eslint.config.js
│── .gitignore
│── README.md
│
├── /public
│ └── (static assets like favicon, images, etc.)
│
├── /src
│ │── App.css
│ │── App.jsx
│ │── index.css
│ │── main.jsx
│ │── Store.js
│ │
│ ├── /Components
│ │ └── (reusable UI components)
│ │
│ ├── /api
│ │ └── (API service functions, axios/fetch calls)
│ │
│ ├── /assets
│ │ └── (images, fonts, styles, icons)
│ │
│ ├── /pages
│ │ └── (page-level components: Home, Dashboard, Login, etc.)
│ │
│ └── /slices
│ └── (Redux slices or context logic)
- Ensure the backend URL is correctly configured in the frontend environment settings.
- Any new database tables or Supabase functions should be documented to maintain consistency across environments.
- Consider adding scripts for linting, formatting, or API testing as the project grows.