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
Localyour local machineDEVremote testing and preview environmentSITonly for big projects, for on-production verificationProductionproduction environment for users
Local, DEV, and Production are required environments, SIT just for big projects.
mainforProductionenvironment, the code in this branch reflects the latest production application, protected by defaultdevelopforDEVorSITenvironment, 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
developfor 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
developbranch, verify and test on theDEVenvironment - Submit a PR from
developtomain, 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.
[](http://discord.gg/HtcDdPgJ7D)