Arks

An opinionated React framework for isomorphic apps built on top of React with React Router and Apollo GraphQL

See repository
Open Source
⚠️

Arks was an experimental project and is now unmaintained and a public archive.


A word about Arks

Arks is (or more accurately was) an opinionated open source React framework for creating, developing, building and shipping isomorphic web apps. It is built on top of React Router and Apollo GraphQL.

All the parts of an Arks project are made to be used in a strict and defined context.

The main goal of Arks was to use @arks/cli to mount an Express server to serve a server side rendered React app and let developers focus more on fast implementation without to be worried on all the config part to enable server rendering with the router and GraphQL. Arks was a project divided into several packages and server was coming with included features like monitoring and health checks.

If the experience was successful Arks was made originally to be driven by the community.


A sneak peak on how Arks works:

⚠️

As the project is unmaintained it may not work anymore.

First your need to install the cli:

npm i -g @arks/cli

Once installed then you can created an Arks project using the following command:

arks create project my-app

After running the create command an arks project is created with a specific structure. Check all about Arks project structure on GitHub.

An Arks project is delivered with environment and project configuration where for example as a developer you're able to configure some env vars like GRAPHQL_API_ENDPOINT or METRICS_COLLECT_TIMEOUT and configure some project settings like appName or metricsEndpoint. You can read more about environment and project configuration on GitHub.

If you're curious you can find a sample of an Arks project created with the cli on GitHub

The cli gives a suite of command to work with and Arks project to start in development or production mode the project and build it:

arks dev | arks dev -p 8080 | arks build | arks start | arks start -o

Check all the available commands and their options on GitHub.

I implemented Arks in a collection of packages to separate roles of each parts of Arks. Back at the time it was right choice to do to better maintain the project and give a good DX to developers. You can read more about the list of implemented packages and their respective roles on GitHub.


Why the project is now a public archive?

I first created Arks as a personal goal and as an experimental project. I wanted to build a tool with the ease of Next.js to use a cli to create and run projects. Because back at the time I was working at the Luxembourg Stock Exchange as a consultant for the front-end web apps and I saw we were struggling at bootstrapping projects using React Router and Apollo GraphQL.

I wanted to open source the project as for it was important to let developers and the community to be part of it.

Shortly after the release of the version 0.1.11 back in July 2020 my personal goals changed and I saw Remix was coming and under development. Based on my understanding of Remix I right away thought that Remix was a better option for what Arks was trying to reach. So I decided to move on and let the repository as it was (without any real communication on it) and see what happens.

In May 2024 I decided to make the repo as a public archived as I didn't maintained the project at all for four years.

In the end for me it was a good personal experience to implement Arks because I learnt a lot on subjects like creating and using a cli and giving developers a tool to use to easily create projects.

You can check the repository of Arks and find any information on GitHub.

Feel free to get in touch with me on Twitter if you want to discuss about Arks. Maybe we can exchange about it? 🙂