Protofy is an OpenSource Web and App Framework, CMS and IoT system all in a single and integrated stack.
Based on React, NextJS, Expo, Tamagui, EspHome, protofy provides a quick and highly extensible system to quickly build digital systems using mainly javascript/typescript, visual editors, automatic cruds and control panels, an object system with validation and automatic forms, and an integrated ChatGPT assitant with automatic context transfer.
Protofy is at the same time:
- A framework to develop webs, native mobile apps, and IoT systems
- A control panel system to extend and modify the underlying framework
We like to think of prototype as a CMS + Framework + Framework UI
- Windows 11, Ubuntu 20.04 or MacOS Big Sur
- Node.js v18
- RAM 8 GB
- Intel® Celeron® J4125 2.00 GHz
Start clonning the project:
git clone https://github.com/Protofy-xyz/Protofy.git
cd Protofy
If you don't have yarn installed globally, you may need to do (first time only):
npm i -g yarn
Start protofy in development mode (hot reload)
yarn && yarn start-dev
By default there is a proxy running on port 8080
that redirects to the next.js app on port 3000
and the api on port 3001
and the admin-api on port 3002
. You can go to apps/proxy/index.js
to change defaults or add more services like the expo app.
Once the Next.js app is running you can go to http://localhost:8080
to see the web app.
Reminder: If you have problems accessing the services, remember to check your firewall configuration.
The first time you run the starter you won't have users. You can easily create one on http://localhost:8080/auth/login
but this one will be a normal user. If you want to create an admin user you can do it by running the following command:
yarn add-user user@email.com password admin
We just created a user with admin
type.
The admin panel requires to have a user with admin
type to be able to access it.
Normal users can register through the interface, or you can create user accounts (whout admin panel access):
yarn add-user user@email.com password user
Once you've logged in you will be able to access the workspace. The workspace (or admin panel) is the place where you can create and manage your system entities, like pages, apis, devices, users, objects, etc...
Want to know more about the workspace? Check the workspace documentation.