This document introduces the tech stacks, branch styles, development workflow, and code styles in LXDAO. The topic on forum is: https://forum.lxdao.io/t/lxdao-develop-guide-is-out/94.
Try to use as simple as possible tech stacks to finish the project, DO NOT introduce unnecessary tools, libraries, etc.
- JavaScript / TypeScript for full stack developments
- Python for crawlers or scripts
- Solidity for smart contracts
- Others for specific projects
- React.js Ecosystem
- MUI for UI components
- Next.js
- RainbowKit for connecting wallet
- Nest.js for APIs
- Redis for cache
- PostgreSQL + Prisma for ORM
- Nest.js swagger for APIs test
- Vercel for FrontEnd projects and simple FaaS logic requirements
- Heroku for simple BackEnd APIs
- AWS AKS for complex BackEnd applications
- AWS Lightsail for DEV environment
- Prettier for code format
- ESLint for code linting
- GitHub Actions for CICD
- VSCode
- Writing guidelines
- DappReader Debugging Smart Contracts as easy as using the Postman
Local
your local machineDEV
remote testing and preview environmentSIT
only for big projects, for on-production verificationProduction
production environment for users
Local
, DEV
, and Production
are required environments, SIT
just for big projects.
main
forProduction
environment, the code in this branch reflects the latest production application, protected by defaultdevelop
forDEV
orSIT
environment, latest version of codefeature/[feature-name]
for specific changesfix/[defect-name]
for bugfix
- Create or get a ticket on the Project Management tool (ClickUp)
- Checkout a branch from
develop
for the change, the branch name should follow the pattern:feature/[feature-name]
,fix/[defect-name]
- Coding on your local machine
- Submit a PR to the
develop
branch, verify and test on theDEV
environment - Submit a PR from
develop
tomain
, ask someone to do code review and approve your PR - After merging into
main
, will deploy your code to production
We follow loose version of Airbnb JavaScript Style Guide. Pretty much the default config from Prettier. Please install the Prettier plugin and create the following configuration in your project:
{
"singleQuote": true,
"trailingComma": "all"
}
TODO add more details
We follow loose version of Conventional Commits. In short:
feat:
for features and most of the changeschore:
for trivial changes, like code formattingfix:
for bugfixesdocs:
for updating documents
As a part of LXDAO, the project buidl in LXDAO or buidl with LXDAO should show some information about LXDAO.
For example, add the following information at the bottom of the README.md file.
## Supported by LXDAO
<a target="_blank" href="https://lxdao.io/"><img alt="Supported by LXDAO" src="https://bafkreib7wsfivsbtinvx7yfou2b556ab32pojbjutkxfhh7v3y45qkevui.ipfs.nftstorage.link/" width="180" /></a>
This is a project supported by LXDAO. More links: [LXDAO](https://lxdao.io/) | [LXDAO Forum](https://forum.lxdao.io/) | [LXDAO Discord](https://discord.lxdao.io) | [LXDAO Twitter](https://twitter.com/LXDAO_Official).
LXDAO is an R&D-focused DAO in Web3. Our mission is: Gather the power of buidlers to buidl and support “LX” (valuable) Web3 projects sustainably and welcome 1 billion users into Web3. Welcome to join us.
[![Join our Discord server!](https://invidget.switchblade.xyz/HtcDdPgJ7D)](http://discord.gg/HtcDdPgJ7D)