Empower your financial management with ProjectX - AI-driven insights at your fingertips. Optimize your finances effortlessly.
Welcome to ProjectX, where we're ushering in a new era of financial management. Leveraging cutting-edge AI, ProjectX redefines how you track, analyze, and optimize your finances, ensuring smarter, more secure financial decisions.
With ProjectX, gain unparalleled insights into your spending habits and financial patterns, empowering you to budget better and experience more. Trusted by the world's most innovative companies, ProjectX is here to revolutionize your financial management experience.
What we are using
Lets goooo - Next.js 14, Turborepo, Drizzle ORM, Planetscale, Clerk, Resend, React Email, Shadcn/ui, and Stripe.
All seamlessly integrated with the Projectx to accelerate the development.
ProjectX is a monorepo managed by Turborepo. The monorepo is split between
├── apps # Its app workspace which contains
│ ├── www # Nextjs app which is deployed in Vercel
│ └── ...
├── tooling # are the shared configuration that are used by the apps and packages (e.g. `@projectx/eslint-config`)
├── packages # are the shared packages that are used by the apps (e.g. `@projectx/components`)
Use short lowercase names at least for the top-level files and folders except
Clone & create this repo locally with the following command:
git clone https://github.com/meglerhagen/projectx.git
- Install dependencies using pnpm:
.env.localand update the variables.
cp .env.example .env.local
Input everything you need for the env.
Start the development server from either yarn or turbo:
# At the root of the mono repo
pnpm run dev
# Or from the app directory
This project uses MySQL database on PlanetScale. To setup a DB for your local dev:
- Create a free account and a new Database
- From the dashboard, create a branch and click "Connect" button.
Create passwordand select
- Copy the entire list of params to
.env.localfile. Make sure to change the params under the section "Database (MySQL - PlanetScale)"
pnpm run db:push
You can also use
docker-compose to have a Mysql database locally, instead of relying on PlanetScale:
docker-compose --env-file .env.local upto start the DB.
pnpm run db:push.
This project uses Resend to handle transactional emails. You need to add create an account and get an api key needed for authentication.
Please be aware that the Resend is designed to send test emails exclusively to the email address registered with the account, or to
email@example.com, where they are logged on their dashboard.
The default setting for
firstname.lastname@example.org but you have the option to change it to the email address that is associated with your Resend account.
- Start removing template
- Update UI to match the product
Tech Stack + Features
- Next.js – React framework for building performant apps with the best developer experience
- Clerk – Handle user authentication with ease with providers like Google, Twitter, GitHub, etc.
- Drizzle ORM – TypeScript ORM that feels like SPA with SSR
- React Email – Versatile email framework for efficient and flexible email development
- Vercel – Easily preview & deploy changes with git
- PlanetScale – A cutting-edge database platform for seamless, scalable data management
- Resend – A powerful email framework for streamlined email development
- Edge Store - Storage, CDN and a super easy to use type-safe library.
- Stripe - Payments
- Tailwind CSS – Utility-first CSS framework for rapid UI development
- Shadcn/ui – Re-usable components built using Radix UI and Tailwind CSS
- Framer Motion – Motion library for React to animate components with ease
- Lucide – Beautifully simple, pixel-perfect icons
next/font– Optimize custom fonts and remove external network requests for improved performance
ImageResponse– Generate dynamic Open Graph images at the edge
We love our contributors! Here's how you can contribute:
- Open an issue if you believe you've encountered a bug.
- Make a pull request to add new features/make quality-of-life improvements/fix bugs.