Skip to content

cameronapak/cultivate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

463 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

showcasing-cultivate.mp4

🌱 Cultivate (alpha)

Imagine if Notion & Basecamp had a baby.

Cultivate is a PKM tool where you can calmly brain dump, write, manage projects, and get things done.

Warning

This is a alpha project in active development. There will be bugs and breaking changes. Please report any issues in the Issues tab.

Stack

  • Wasp ^0.23.0 - a Rails-like framework for JS, with a focus on reducing boilerplate
  • Tailwind CSS ^4.3.0 - utility-first CSS
  • Shadcn-ui - a beautiful component library/framework
  • Lucide Icons - Beautiful & consistent icons

How to Run

  1. Use Node 24.14.1: nvm use
  2. Install the Wasp CLI: npm i -g @wasp.sh/wasp-cli@0.23.0
  3. Install Docker or Orbstack (recommended for macOS).
  4. Run npm install
  5. Run wasp ts-setup if you ran wasp clean or removed node_modules.
  6. Run wasp db migrate-dev to set up the database schema.
  7. Run wasp db seed to create the default user (dev_user / password) and initial invite code (JESUS-SAVES).
  8. Run wasp start to get the app running locally at localhost:3000.

If .env.server defines DATABASE_URL, start that database yourself before running Wasp commands. Without a custom DATABASE_URL, use Wasp's managed dev database flow.

Development Notes

  • Global Tailwind styles load from src/client/setup.ts.
  • Tailwind v4 uses @tailwindcss/vite; theme tokens live in src/Main.css as full CSS color values.
  • Public theme CSS files use full CSS color values; run npm run themes:check after editing public/themes.
  • Animations use tw-animate-css, not tailwindcss-animate.
  • Wasp app config lives in main.wasp.ts.
  • Run wasp compile after framework, Wasp, or dependency changes.

Deployment Notes

  • Fly config lives in fly-client.toml and fly-server.toml.
  • The client is static file serving and uses 256mb.
  • The server is Node + Prisma and uses 512mb.
  • The server can scale to zero; first request after idle time may cold-start.
  • After Fly deploys, keep both app Machine counts at one unless traffic grows:
fly scale count 1 -a cultivate-server
fly scale count 1 -a cultivate-client

Contributing

This project is open source code and open to ideas, with the direction honed in by its creator, Cam Pak.

Please create an issue for any ideas you have!

If you create a PR, there's a chance I will not merge it in if it doesn't align with the heart and vision of Cultivate.

Modified MIT License with a Non-Commercial Clause

About

If Notion + Basecamp had a baby and kept it simple. Self-hostable.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages