Cartography Logo

An Encyclopaedia for your Code

Human Focused Code

Writing Software is both problem solving AND communication.
Cartography helps makes them one:
A better way to write, document, and organize your codebase.

Files to feature organization

What is a Better Developer Experience?

“Indeed, the ratio of time spent reading versus writing is well over 10 to 1. We are constantly reading old code as part of the effort to write new code. ...[Therefore,] making it easy to read makes it easier to write.”

Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship

Features don’t live in one place. They live across different files, folders, systems. Building on top of a system requires you to know what goals are being pursued, what problems are being considered, how they’re approached, implemented, tested… You are always reading. A better reading experience = a better developer experience.

Easier to understand means:

  • Faster Development

  • Faster Onboarding

  • Happier Developers

We have been using folders and files as our primary organizational tools since their invention over 60 years ago. We can do better.

How does Cartography Work?

Cartography works in two steps. Firstly it allows you to write code in a way that is easy for humans to understand: Code Stories. Then it takes the code you have written in this new format and compiles it into regular source code. Once compiled, you can continue building an deploying your code as usual.

Write Code Stories

Code Story

Compile to Source Code

Code Story

Build & Deploy as Usual

Code Story

How is Cartography different from Documentation?

Unlike regular documentation writing tools, Cartography code is designed to be the way you write code, making it both easier to read and to write. Documentation tools fall into two categories: manually written, and autogenerated.

The first type of documentation (manually written) is often a separate step in the development process done after writing code. As such, it is often forgotten, making your documentation out of sync with your source code. If your documentation can’t be trusted, then it won’t be used.

Autogenerated documentation doesn’t suffer from the “out of sync” problems of manual documentation and works great for certain types of tasks. It’s main drawback is that it is limited to a very basic scope: data type information, class lists, API usage, etc. This is rarely enough for you to understand how things work.

Cartography, through Code Stories, and Entity Libraries, encourages you to describe your problems, goals, and approaches as you write your code. With this, you never lose context of how features were developed, and how they work. All the code related to any step exists in its own little compartment. As such finding code, is as simple as finding the feature you are looking to develop.

Tell Code Stories
  • Easier Refactoring

  • Easier Code Review

  • Easier Onboarding

Code Stories
Describe and Standardize Code
  • Design your architecture and Approaches.

  • Unify Approaches to common problems

  • Save, Search, Apply, and Adapt how problems are solved

Code Stories
Context Based Organization

Have all relevant files, data, documentation, and snippets for any problems or feature right at your fingertips. No more manual searching.

Context based Organization

What else does Cartography Do?

Cartography provides many tools for interacting with your codebase.

1. Better Code Reuse and Refactoring with Code Symbols.

Often times, we will create systems and patterns for interacting with them. The most basic example of this where you create a function. Later on, you want to call this function, which involves importing the function, and calling the function. With code symbols, we can abstract out how that happens. We can create a “import code symbol”, anda “call code symbol”. Now when we decide to change the order of the parameters, or the naming of the function, all imports and function calls can be updated.

A more complicated example would be a symbol that defines a child class of an abstract base class. Having such a class would remove all the boilerplate required for the definition, while simultaneously exposing the API, and patterns for dealing with certain use cases. These types of code symbols allows others, such as more junior devs, to use your abstractions as intended.

2. Streamlined development with Code Actions

Code Actions are an API for interacting with your Codebase. Like static code generators, you can define actions like “Create new Data Model” which will create the files, and boilerplate required to create your code. Another common action would be are things like: “Add new page view” which would create a boilerplate page template and add the route to the router. If used in conjunction with Code Symbols, unlike regular static code generators whose code must be managed manually afterwards, you can refactor the generated code after the action has been instantiated.

Interested? Become a Test user!

Thanks for being interested in Cartography. Taking Signups for User Testers and developers looking to think about the future of Software Development.

* indicates required

Which problems are you most interested in?

Contact me! shane@cartography-co.io

All Rights Reserved. Copyright © 2021