🏰

Typerepo

The new way to dev

GitHub
πŸ¦… A Birdseye View
Philosophy

Typerepo was built with a couple of things in mind. This is what we care about:

  • Codebase introspection (Documentation generation)
  • Full-stack code-sharing (full-stack auto-completion using Typescript)
  • Maximise learnability, minimise tech debt, simplify onboarding
  • Decentralised, Open Source, Automatic
The stack

We have templates to easly create new apps.

  • For Web applications, React with Next.js is used
  • For Android and iOS applications, React Native with Expo is used
  • For REST APIs we use Server.js on Node JS
  • For CLI’s and Scripts we use raw Node JS
  • There's also a bare javascript template you can use

We're planning to also make templates for the following:

  • For MacOS, Windows and Linux applications, we want to use React with Electron
  • For VSCode Extensions we want to use bare React!
  • For Chrome Extensions we use React with MV3

Together, this creates a very powerful setup. Typerepo isn’t a single framework trying to build on multiple places. This would be very hard. Typerepo tries to keep all the good stuff and use the best framework for every location, and make it easy to share code.

Used libraries

We use the following libraries in the Typerepo app.

React with Native

react-with-native

HTML elements with React Native capabilities.

react-with-native is a framework that lets us render HTML-like components inside react-native. By replacing all html with the react-with-native counterparts (for example, using <Div> over <div>), we are able to share code between react-native and react and can share all UI between any app using our ui package. For more information, check https://reactwithnative.com/

Server.js

This Node.js server lets us define endpoints in a simpler way which made it possible to get type safety for the endpoints. For more information, check out https://serverjs.io

Tailwind

This layer on top of CSS is used within react-with-native and makes it possible to have the same styling in react and react-native apps. For more information, check https://tailwindcss.com

Folder structure

Every Typerepo project must adhere the following structure:

  • apps all applications, including a server, web, and mobile apps
  • packages all packages that need to be shared between multiple apps
  • docs markdown files that need to be presented in the Typerepo Docs to educate the developer of the project.
  • assets any assets that don't belong to an app or package.
  • schemas generated folder with the JSON typescript definitions