About
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.
“Civitas” refers to a community of citizens, encompassing the rights, duties, and privileges associated with belonging.
Usage
- Fork the Clojure Civitas repository
- Add your new namespace to
src
- Write code and markdown comments
- Submit a pull request
- 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.
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.