About

Civitas Icon

Clojure Civitas makes it easy for you to publish Clojure ideas and explorations without the overhead of setting up a new project, blog, or repo. Whether you’re sketching out a quick experiment or writing a deeper post, just fork this repo, create a namespace, write, commit and submit a pull request. This is your shared scratch space.

Tip

“Civitas” refers to a community of citizens, encompassing the rights, duties, and privileges associated with belonging.

Usage

  1. Fork the Clojure Civitas repository
  2. Add your new namespace to src
  3. Write code and markdown comments
  4. Submit a pull request
  5. Published

See README.md for more information, or browse the existing namespaces in src.

Rationale

Namespaces with markdown comments are a natural fit for interactive, literate programming. ClojureCivitas makes it easy to experience the pleasure of this style of coding. Build up an idea in your REPL, in your favorite editor, and share it with others.

Problem: There is incidental complexity in literate programming setup and publishing. Creating a new project, configuring a blog, choosing themes and styling, organizing files, adding analytics, and thinking about SEO all add overhead. This friction gets in the way of creativity, exploration, writing, and sharing. Many people are missing out on the joy of interactive programming as a tool for thought.

Solution: A clear path for publishing Clojure ideas and explorations.

Hope: As writers share their ideas, readers are encouraged to try literate programming, and share their own insights and experiments.

Why markdown in code?

We value reproducible artifacts. Start with code. Make it work. Then tell the story.

Make Publishing Clojure Namespaces Easy

Creators should only have to care about their code, not setting up projects or hosting workflows. Let’s make a shared, organized platform for short experiments, tutorials, notes, and blog posts.

Build a Database of Knowledge

Civitas aggregates structured metadata about the content it hosts and links it to other Clojure resources. We can build a connected web of ideas, showing how concepts relate, what builds on what, and where to go next. A hex-grid interface presents these relationships visually. Each notebook can declare prerequisites, alternatives, and follow-ups. This helps learners discover next steps, helps educators design coherent learning paths, and enables the community to improve content over time. The goal is to make the Clojure knowledge ecosystem easier to explore and navigate.

Non-linear exploration

Navigate your own path through interconnected topics.

Literate by design

Write notebooks and situate them in a broader context by linking ideas.

Community supported growth

The best resources rise through collective refinement.

An open effort to structure learning resources with meaningful connections.

Embrace Alternatives

Clojure Civitas does not aim to centralize Clojure knowledge. Rather it hopes to amplify existing resources, connect with them, and add a place in between for raw ideas and creative experiments.

Honey bees beehive

How it Works

Minimal Moderation and Curation

Content is submitted via Pull Requests, which are reviewed to prevent abuse. A small team of reviewers ensures quick turnaround. Community representatives are available to assist and guide contributors.

Metadata Creation

Metadata is provided by authors. Future improvements may include automated extraction and smarter linking to enrich the knowledge base.

Analytics

Page view analytics are publicly available. See the Clojure Civitas Analytics Dashboard.

Technical Details

Made with Clay. See the README.md in the repository for contribution guidelines and technical details.