- TypeScript 72.4%
- Python 13.7%
- JavaScript 7.2%
- CSS 5.6%
- HTML 0.6%
- Other 0.4%
| .vscode | ||
| app | ||
| backend | ||
| docs | ||
| frontend | ||
| Sokpop Collective - homepage_files | ||
| .gitignore | ||
| Makefile | ||
| PLAN.md | ||
| README.md | ||
| Sokpop Collective - homepage.html | ||
| Todo | ||
KitKit is a return to blog-based communication between friends, as in the y2k era, while still maintaining the conveniences of modern applications. The most similar application in the space currently is LetterLoop, which allows users to create private newsletters between friends. I would like to maintain that base funcitonality, especially for casual users, while allowing more personalization and fun, as in the html y2k era App Structure: frontend/, app/, backend/. Backend will be fastapi, hosted on a VPS. Frontend/ will be React. App will be React Native.
BACKEND: Backend follows the template full-stack-fast-api-template at https://github.com/fastapi/full-stack-fastapi-template#.
DATABASE: PSQL database stored on the same VPS as the backend. For right now this will store user information as well.
APP: React Native applicaiton, using tanstack and zustand for state management, queries, and general storage.
FRONTEND: React application, using tanstack and Zustand(see APP).
Example App Flow:
- User logs into/creates their account (linked to email)
- On Home screen you can view past blog posts, change your mailing list (also invite others to the app), and edit your current blog post.
- In editing currently, you will be locked to having Titles and paragraph text, or photos and captions. Eventually will be more advanced. a. Also eventually wil have stickers you can place, and change the theme around
- Every 27th, everyone's current blog post gets mailed out to everyone on their mailing list.
Development:
- Start with backend and routes a. Open Question: Photo Storage
- App
- Web Frontend (keep basic for right now, maybe even the same as app)
Local development
Copy backend/.env.example to backend/.env (keep ENV=development so the
API accepts requests from localhost and your LAN).
make dev-info prints the ports and URLs for the current checkout, then:
make run-backend— FastAPI on0.0.0.0:$BACKEND_PORT(reachable from your phone)make run-frontend— Vite dev server, pre-pointed at the local backendmake run-app— Expo, pointed at the backend over your machine's LAN IP
Ports are derived per-workspace from the checkout path, so several Conductor
workspaces can run the full stack at once without colliding. Override any of
them explicitly, e.g. make run-backend BACKEND_PORT=8000.