poly
The poly
tool includes a doc command to open web-based documentation.
The shell's autocompletion support makes listing and accessing different parts of the documentation a breeze, so go ahead and start one up:
poly
Run the doc
command to open the start page of the poly
tool documentation:
example$ doc
The example$ prompt shows that we are working from our tutorial example workspace, but you can experiment with the doc command from any workspace.
|
You should see the page open in your web browser:
The page has some helpful links:
Link | Links to: |
---|---|
This documentation. | |
| A page listing all the different versions of this documentation.
NOTE: Useful documentation starts at version |
The cljdoc home page. Cljdoc is a central hub that hosts documentation for many Clojure libraries and tools (including clj-poly!). | |
The polylith GitHub repo. | |
Documentation for the current release. | |
Documentation for the current | |
The #polylith channel on Clojurians Slack. |
We automatically build a When you use a |
Use the search box or the left menu to navigate to pages and explore API docs:
And if you scroll down to the bottom of the left menu:
Return to the poly shell to explore, then open other available docs at any time.
From the poly shell, type doc
followed by a space to see the different help categories:
example$ doc
help more page ws
Doc categories:
Let’s dig into these categories.
Use the page
argument to open a specific poly
tool documentation page in your web browser.
Notice that the shell lists all pages:
example$ doc page:
artifacts git-hooks source-code
base git state
build install tagging
colors interface tap
component introduction templates
configuration libraries test-runners
contact license testing
continuous-integration naming tools-deps
dependencies polylith-ci-setup upgrade
developing-poly polyx validations
development production-systems versions
doc profile visualize-the-repo
example-systems project workspace
explore-the-workspace readme
flags shell
These are the same pages you see listed in the left menu in your web browser.
When you select a page, poly
will open it in your web browser.
To open the flags
page:
doc page:flags
The help
argument takes you to the poly
commands documentation:
example$ doc help
Ask the shell to list all command help with:
example$ doc help:
check deps-project shell
create-base deps-workspace switch-ws
create-component deps tap
create-project diff test
create-workspace doc version
create info ws
deps-brick libs
deps-project-brick overview
To open the check
command:
example$ doc help:check
The poly
tool will open help for the check command in your web browser.
You can get the same help at your terminal via:
|
The ws
argument takes you to the Workspace structure documentation:
example$ doc ws
List all top keys via:
example$ doc ws:
bases old ws-dialects
changes paths ws-dir
components profiles ws-local-dir
configs projects ws-reader
interfaces settings ws-type
messages user-input
name version
Open the description for a specific top key in your web browser:
example$ doc ws:configs
The more
argument covers all other documentation and links that are not specifically about the poly
tool:
example$ doc more:
blog-posts python-tool
high-level slack
in-japanese videos
podcasts workspaces
Let’s dig into the different categories:
Open blog posts via:
example$ doc more:blog-posts:
a-fresh-take-on-monorepos-in-python
how-polylith-came-to-life
leveraging-polylith-to-improve-consistency-reduce-complexity-and-increase-changeability
the-micro-monolith-architecture
the-monorepos-polylith-series
the-origin-of-complexity
understanding-polylith-through-the-lens-of-hexagonal-architecture
Blog post | What | Published |
leveraging-polylith-to-improve-consistency-reduce-complexity-and-increase-changeability | Felix Barbalet explains how Poilylith helps reduce complexity in an existing production system. | 2024 |
understanding-polylith-through-the-lens-of-hexagonal-architecture | Joakim Tengstrand explains the differences between the Hexagonal architecture and Polylith. | 2023 |
David Vujic explains what would happen if they had Polylith in the Python community. | 2022 | |
Sean Corfield describes his experience migrating a big production system to Polylith in a series of blog posts. | 2021-2023 | |
Joakim Tengstrand explains the foundational concepts that Polylith is built upon. | 2019 | |
Joakim Tengstrand explains how the Polylith architecture came to life. | 2018 | |
Joakim Tengstrand explains the ideas behind Micro Monolith, a predecessor to Polylith. | 2016 |
Open conceptual, high-level documentation:
example$ doc more:high-level
You can list all pages in the left menu with:
example$ doc more:high-level:
advantages-of-polylith
base
bring-it-all-together
component
current-architectures
development-project
faq
polylith-in-a-nutshell
production-systems
project
sharing-code
simplicity
testing-incrementally
tool
transitioning-to-polylith
videos
who-made-this
why-the-name-polylith
workspace
Open a specific page, for example, the FAQ page, via:
example$ doc more:high-level:faq
Shinsei Taro (しんせいたろう) has translated and reworked version 0.2.19 of the poly
tool in Japanese, here.
You can open the first episode of the only podcast we have with:
example$ doc more:podcasts:polylith-with-joakim-james-and-furkan:part1
Podcast | What | Published |
---|---|---|
Jacek Schae discusses the Polylith architecture with the Polylith team where they explain the ideas behind Polylith. | 2021 | |
The same people go deeper into the Polylith concepts, its benefits, and how it differs from other ways of working with code. | 2021 |
Reach out to the Polylith team in the #polylith channel in the Clojurians Slack:
example$ doc more:slack
You can list available videos with:
example$ doc more:videos:
a-fresh-take-on-monorepos-in-python
collaborative-learning-polylith
developer-tooling-for-speed-and-productivity-in-2024
how-the-polylith-repo-has-evolved-over-time
polylith-in-a-nutshell
polylith–a-software-architecture-based-on-lego-like-blocks
the-last-architecture-you-will-ever-need
Video | What | Published |
---|---|---|
A talk by Vedang Manerikar from the IN/Clojure 2024 conference, where he talks about the advantages of Polylith. The speaker notes can be found here. | 2024 | |
An animation that visualizes the evolution of the Polylith repository from its inception in 2020 to mid-2024. Generated in Gource. | 2024 | |
David Vujic explains how Polylith can be used in Python. | 2023 | |
Sean Corfield is interviewed by the Los Angeles Clojure Users Group about his experience with Polylith and how he uses the | 2022 | |
Joakim Tengstrand and Furkan Bayraktar try to convince people why Polylith is the last architecture they will ever need! | 2020 | |
James Trunk explains the basic concepts of the Polylith architecture. | 2019 | |
Joakim Tengstrand explains how Polylith is like building with LEGO bricks, at ClojureD 2019. | 2019 |
List example poly workspace with:
example$ doc more:workspaces:
demo-rama-electric
game-of-life
integrant-system
polylith
realworld
usermanager
Workspace | What |
---|---|
A demo web app to show the use of Rama and Electric together, created by Jean Boudet. | |
A tiny workspace that implements Game of Life, created by Joakim Tengstrand. | |
A small example system to show how you can use Integrant in Polylith, created by Mark Sto. | |
The Polylith workspace, from which this | |
A full-fledged RealWorld full-stack application (CRUD, auth, advanced patterns, etc) built with Clojure, Polylith, Ring for the backend API, and ClojureScript, Polylith, Re-frame for the frontend, including CRUD operations, authentication, routing, pagination, and more. Created and maintained by Furkan Bayraktar. | |
A simple web application using Component, Ring, Compojure, and Selmer connected to a local SQLite database. Created and maintained by Sean Corfield. |
Can you improve this documentation? These fine people already did:
Joakim Tengstrand & Furkan BayraktarEdit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
Ctrl+k | Jump to recent docs |
← | Move to previous article |
→ | Move to next article |
Ctrl+/ | Jump to the search field |