# Web Groundwork

WARNING

This page is a work in progress - see our planning document.

# Stacks

This section provides some recommended combinations of technology you can leverage. Feel free to use this guidance to build your own stack by adjusting them as needed (for example, by replacing certain elements or combining different stacks).

TIP

Have some technologies you enjoy using? See our Contribution Guide to add it here!

# MERN Stack

TODO

# Sync Stack

TODO

# Rob's Stack

Pros Cons
Strongly typed, use of code generation reduces boilerplate. GraphQL has good tooling. Golang does not have a steep learning curve, but can seem intimidating

Frontend: Vue.js and Typescript

  • Frameworks and libraries
  • Tooling
    • vue-cli is a great way to kickstart the frontend - just follow the guide
  • Considerations
    • Pro: Vue.js is a beginner-friendly template-based library with very nice tooling via vue-cli, and TypeScript gives a good foundation for non-trivial projects
    • Con: TypeScript can have a steep learning curve, and Vue library choices might be more limited
  • References

Backend: Golang

  • Frameworks and libraries
    • GraphQL: gqlgen is a great schema-first server generator - it will write most of the Go server boilerplate for you. You can also easily add an API playground, which helps a lot during development!
    • Logging: zap is a versatile logger that can output both console-style and machine-readable JSON formats
  • Tooling
    • The standard Go toolchain offers pretty much everything you'll need, from building to testing - see the go command reference
  • Considerations
    • If you decide to not go with GraphQL, chi is a lightweight Express-style library for building standard REST APIs.
  • References

Datastore: DynamoDB

Other Tooling: None

Examples:

# Further Reading