Fully Forge
Welcome to the Fully Forge documentation page. In here you can find all the information you need to get started with Fully Forge.
Getting started
If you’re about to start a new Forge project, you find instructions under Getting started.
Forge Projects
If you’re looking for inspiration on how Forge can be used, check out these projects:
What Forge is
Forge is a baseline project for creating a website with DatoCMS and Next.js. It’s built to be as flexible as possible, while still being easy to use. The setup is based on how earlier Fully Framework (Wordpress-connected Next) setup was built but but with some major differences.
The core reason we deciced to start a new project was that we strive to take on fewer but bigger projects and in that vein bring up the quality of our productions.
Key differences compared to Fully Framework
-
Typescript (with GraphQL Codegen)
TS to increase code quality and devX via the transparency TS types provides through GraphQL codegenerated type definitions. -
DatoCMS (instead of Wordpress)
DatoCMS as a headless CMS, which is a lot more flexible and easier to use than Wordpress. -
Next.js (with version 13 App Router)
App Router changes a lot about how we fetch CMS data, making the code a lot more readable and reusable. -
Css Modules (with SASS)
CSS Modules to make sure we don’t have any global CSS that can cause conflicts between blocks and components. SASS is used to make the CSS more readable and easier to write. -
Framer Motion
Framer Motion to make animations, was used in some Fully Framework projects aswell though. -
Strict pull request process
Pull requests are used to make sure that code is reviewed and tested before it’s pulled into the main branch. This is to make sure that the code is of high quality and that it’s tested before it’s deployed. -
Documentation
Documentation is a big part of the project, to make sure that it’s easy to onboard new developers and to make sure that the code is easy to understand and extend.
Philosophy
-
Onboarding - Easy to use
Without compromising possiblity for custom choices, the setup aims to be as clear as possible in its’ structure. Rich documentation (the one you’re currently reading) alongside robust and reviewed code are some steps we take to make sure there is as little confusion as possible. -
Flexibility - Easy to extend
We aim to have a baseline that is easy to extend and build upon. Meaning we work more with reusabale components that make building blocks easier, instead of having a bunch of blocks that are hard to understand and extend. This decision comes from experience with projects that shows that all websites look and feel so very different that most things need to be changed too much anyway. -
Quality - Without being slow
It tends to feel a bit slow, doing things “the right way”. But in the long run, working with proper TS typing, codegen, code reviews, pull requests and so on, makes the project a lot more stable and easier to work with. This goes back into Onboarding and Support. -
Support - Easy to maintain
After a project is finished we take it into maintenance mode and the support team takes over. This means that onboarding is a big part alongside code readability/quality and clear processes/documentation. The other points here are key parts to making the support team’s job easier.
Making additions to the documentation
Open the repository (there’s a link in the top right corner) and add your pages or changes via Pull Requests.
Built using Nextra
Welcome to Nextra! This is a basic docs template. You can use it as a starting point for your own project :)
What is Nextra?
A simple, powerful and flexible site generation framework with everything you love from Next.js.
Nextra Documentation
The documentation is available at https://nextra.site.