Report
Hide text CSV Data Package Print
Active projects and challenges as of 10.05.2025 04:13.
FastType
I wrote a Python script to scrape and convert to JSON the most common words in German and French from the legal codex of the Canton Bern (Belex). Adding this content for a lawmakers remix of the FastType game by Solomon Shalom Lijo. Try it above! Click on the yellow tab to switch modes.
from collections import Counter
import string
import re
# Load text file
file_path = "belex-fr.txt"
with open(file_path, "r") as file:
text = file.read()
# Remove punctuation
text = re.sub(f"[{string.punctuation}]", "", text)
# Tokenize the text
tokens = text.split()
# Remove short words
tokens = [word for word in tokens if len(word)>6]
tokens1w = []
tokens1l = []
for word in tokens:
if not word.lower() in tokens1l:
tokens1w.append(word)
tokens1l.append(word.lower)
# Create a dictionary with word frequencies
word_freq = Counter(tokens1w)
# Print the dictionary
print(word_freq)
Counter({'autorités': 106, 'communes': 89, 'Conseil': 81, 'Conseilexécutif': 71, 'données': 44, 'peuvent': 39, 'Constitution': 36, 'bernoises': 36, 'Recueil': 35, 'personne': 34, 'personnes': 33, 'prestations': 31, 'membres': 31, 'officiel': 31, 'cantonales': 30, 'présente': 27, 'législation': 26, 'dautres': 26, 'publication': 26, 'vigueur': 24, 'cantonale': 22, 'ressources': 22, 'électoral': 21, 'publiques': 21, 'liberté': 20, 'compétences': 20, 'protection': 20, 'populaire': 19, 'législatifs': 19, 'mesures': 18, 'surveillance': 18, 'dispositions': 18, 'Confédération': 17, 'cantonal': 17, 'manière': 17, 'législatif': 17, 'particulier': 16, 'notamment': 16, 'traitement': 16, 'ladministration': 16, 'larticle': 16, 'électronique': 16, ...
del word_freq.most_common()[0]
del word_freq.most_common()[1]
del word_freq.most_common()[2]
words = [k for k,i in word_freq.most_common() if i<50]
words
['données',
'peuvent',
'Constitution',
'bernoises',
'Recueil',
'personne',
...
import json
output_json = "franz.json"
with open(output_json, "w", encoding="utf-8") as json_file:
json.dump(words, json_file, indent=4)
Fast Type
A Fast and Minimal Typing App.
Practice typing in various modes such as common 1k, 5k, 10k English Words, most commonly misspelled words, Quotes or Programming Language keywords for various languages such as JavaScript, HTML, CSS, Rust, Python, C++ etc with Sweet Mechanical Keyboard Sounds.
Awesome Themes

Speed Heatmap
Find your weakness and keep practicing to improve your typing speed.
Mechanical Keyboard Sounds
Super Fast, Minimal and Installable 💯
It is a Progressive Web app that can be installed and can work 100% offline.
Created with
TypeScript
Next.js
,React
SCSS
use-immer
,howler
,next-pwa
Credits for Data Collection
JSON Data for various languages is collected from the amazing MonkeyType Repository.
foss-legal-templates
Musterverträge für Open-Source-Software
The challenge is to create a pool of open-source contract templates for developers, starting with a Swiss-adapted version of an OSBA template. The goal is to make these templates accessible and customizable through an assistant-like interface on a website, using tools like Jinja2 or large language models. The project also involves comparing clauses from different contracts to develop criteria for explaining and evaluating contract sections, with the potential for future automation.
Challenge
An essential part of a comprehensive resource for open source developers in Switzerland is to address the challenges of having a solid set of clauses for basic legal compliance at an early stage. We propose creating a new resource to fill the gap in existing tools.
Several groups have already worked on templates for software contracts, as we have learned in feedback to our DINAcon workshop last year. This includes several schematic standards, premium contract libraries, as well as intermediary digital platforms that are commonly used in negotiation. Our next goal here is to publish a microsite with this information. Help us with your ideas on how to address the audience in an engaging and pragmatic way.
We have set up an initial contract based on a translation to Swiss terms of a template from the Open Source Business Alliance (OSBA). Create a version of this that can be processed with a templating engine (like Jinja2), or analysed by Large Language Models. Our goal here will simply be to make the template easily accessible in a wizard-like interface embedded on the website. A quick demo using Proxeus has been shared, something like Docassemble could work well too.
Comparing the clauses of our example contract with others found online, we can start building a set of criteria to better explain the individual sections and positions of the contract. This could in the future be used to do a quick automatic evaluation. Several ideas in this direction were discussed in our research and past editions of the Open Legal Lab (Legal Instruct, Textbausteine). A stretch goal of the challenge is to create a mock-up of such a process, clearly indicating at which points expert legal advice will be recommended.
Model agreements for open source software
(Musterverträge für Open-Source-Software)
A repository of sample contracts that companies can use in business transactions for the use and development of open source software.
Presented at DINAcon 2024
About
This is a prototype of a repository of openly licensed contracts and other legal templates, created primarily for use among and by the open source community in Switzerland. This discussion has circulated for some years within CH Open, reignited by recent publications of nearby communities. Our project aims to build on open legal data best practices, and promote open source platforms designed for legal work.
Formatted in Markdown using legal-markdown
The proxeus
folder contains exports for a demo Proxeus workflow
References
In Switzerland
- Open Legal Lab projects: Digitale notarielle Urkunde, Legal ML datasets
- Digitale Gesellschaft - Auskunftsbegehren
- CH Open - OSS Directory - e.g. Gianni Fröhlich-Bleuler 2022
- IT-Beschaffungskonferenz
- BFH - Beschaffungs-Roundtable
- SWICO / SwissICT - IT-Modellverträge
- Leitfaden Zusammenarbeitsvertrag - Kanton Zürich, Direktion der Justiz und des Innern
Germany
- OSBA Standard-Vertragsbedingungen für SaaS- und Cloudsoftware (PDF)
- "Was passiert wenn ich mit jemandem gemeinsam (open source) Software weiterentwickle?" (FAQ on itvertrag.com)
- Muster für Kooperationsverträge - Kompetenzzentrum IT-Wirtschaft KIW
- Kooperationsvereinbarung - Kommune Inklusiv
- FAQ Vergaberecht - Smart City Dialog, BMWSB
Globally
- Understanding the Legal Side of Open Source
- Simplicity Metrics for Legal Text
- Open Source Contracts - David Tollen (2021)
- On Docracy (RIP): opensource.legal, blog.eversign
- Free contracts for Freelancers (Medium blog)
- Radical Transparency in the design of Legal Services
- Clause acquisition by Docusign
- Githubbing Law (Margaret Hagan)
- Open Source Construction Contracts (Pete Fowler)
- Resolving Contractual Ambiguity in Open Source Licenses (Google Open Source Casebook)
- Lawtomated - Open Source Contracts (2017 - NB: part 4 insights)
- Legal Impacts of Open Source and Free Software Licensing (O'Reilly book chapter)
Licenses & Tools
- Creative Commons: Chooser (Beta), Legal database
- Accord Project (via opensource.legal)
- GitHub tag legal-documents
- GitHub - Open Source Contracting (+ Generator + README)
- Musterverträge für Trading GmbH
- Proposal Kit - Open Source Software Installation Agreement ($$)
- Open Source Contract Management
- Legal Snippets for SublimeText
- Type Common Forms in 2 Minutes via Templating for Lawyers - also Eris Legal Markdown
- Legal MD: Markdown for Legal Documents
- Use Pandoc to write legal scholarship in Markdown
- Openterms: Generate legal texts in markdown format
- Automated visual contracting (via Cornell blog)
- Useful Legal Documents For Designers (Smashing Magazine)
- Softwareentwicklungsverträge (Liesegang & Partner)
Technical Projects
- JSON-Unify is an Open-Source Data Contract Specification
- Catala is a programming language for translation of statutory law into an executable implementation
- OpenContracts via opensource.legal
- Proxeus Handbook for Smart Templates
- Enhancing Contract Negotiations with LLM-Based Legal Document Comparison. Narendra et al 2024
Public Sector
License
OpenJustice Challenge
Open Source Legal AI für die Schweiz
🅰️ℹ️ Translated and analyzed with Qwen2.5-72B
OpenJustice is an open-source initiative by Queen’s University in collaboration with the University of Lausanne, aimed at making legal AI more transparent, fair, and accessible. The goal is to make legal information and legal assistance easily available to everyone. The challenge focuses on further developing OpenJustice specifically for Switzerland and contributing to a public good in the legal tech sector.
The key tasks for the challenge include:
-
Data Selection for OpenJustice:
- Decide which data sources will be used for a Switzerland-specific Retrieval-Augmented Generation (RAG) solution.
-
Case Structure Development for Swiss Legal Cases:
- Identify specific legal cases that are particularly relevant for individuals seeking legal help in Switzerland.
- Analyze the typical legal decision-making logics (individual elements of the case) for these cases.
- Translate these logics into structured dialog flows (modular prompt components for the OpenJustice platform).
- Test and evaluate the developed case structures using real or fictional cases to ensure accuracy.
Evaluation
- Data Selection: This task is feasible within a 2-day hackathon if the team has a clear understanding of the available data sources and can quickly agree on the most relevant ones. Key data sources might include Swiss legal databases, court decisions, and legal statutes.
- Case Structure Development: Developing and testing case structures is a more complex task but can be managed within the time frame if the team is well-organized and has a mix of legal and technical expertise. The process involves identifying relevant cases, analyzing legal logics, and creating dialog flows, which can be time-consuming but is achievable with focused effort.
Risks and Constraints:
- Data Availability: Access to comprehensive and up-to-date legal data is crucial. The team may face challenges if the data is not readily available or is not in a format that is easy to process.
- Legal Accuracy: Ensuring that the case structures and dialog flows are legally accurate and compliant is essential. This will require close collaboration with legal experts to validate the content.
- Testing and Evaluation: Rigorously testing the developed case structures with real or fictional cases is necessary to ensure accuracy and usability. The team will need to manage this process efficiently to fit within the hackathon timeline.
Benefits:
- Accessibility: Making legal information and assistance more accessible to the general public aligns with the mission of OpenJustice and can have a significant positive impact.
- Transparency and Fairness: By developing a transparent and fair AI solution, the project can help build trust in legal technology and ensure that it serves the public interest.
- Innovation: This project can set a new standard for legal tech in Switzerland and serve as a model for similar initiatives in other regions.
Additional Considerations:
- User Feedback: Gathering feedback from potential users (e.g., legal professionals, individuals seeking legal help) can provide valuable insights and improve the final product.
- Scalability: Ensuring that the developed structures and dialog flows are scalable and can be easily adapted to new cases and legal contexts will enhance the long-term value of the project.
Conclusion
This challenge is realistic and has the potential to make a significant impact on the accessibility and transparency of legal information in Switzerland. The success of the project will depend on the team's ability to manage data selection, ensure legal accuracy, and efficiently develop and test case structures. Collaboration with legal experts and a well-organized approach will be crucial. Contributing to a public good in the legal tech sector is a valuable and meaningful endeavor.
Getting Started
- Pull down the
master
branch from this repo. - Ask the developer of this repo for an
.env
file. Add this file in the root directory. - Run
yarn
andyarn dev
. This should spin up the app in http://localhost:3000.
Running the project
This is a Next.js project bootstrapped with create-next-app
.
Prerequisites
Install yarn
a package manager similar to npm
.
npm install --global yarn
Getting Started
First, run the development server:
yarn dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the home page by modifying app/page.tsx
. The page auto-updates as you edit the file.
This project uses next/font
to automatically optimize and load Roboto, a custom Google Font.
Learn More
Next.js has server and client code. Files marked with "use client";
at the top will always run on the browser. Features like useState
only work in the browser because they require user input. Other files can be rendered in the server and allow for faster load times. Most importantly, we can run API endpoints in Next.js' server without having to run multiple projects at the same time. This simplifies our infrastructure and makes it easier to test changes locally.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
Ngrok
- For Windows, download the
ngrok.exe
file from https://ngrok.com/download and click to open that file. This should open up an ngrok window. - In the ngrok window, run
ngrok config add-authtoken <token>
andngrok http --domain=chat.openjustice.ai 3000
. You may need to ask the developer for the token as well. - The app should be running at https://chat.openjustice.ai ! (Might take a couple minutes to spin up the app)
Developer Contributing Guidelines
- Make only small changes to each commits
- Create a new branch for every new request/ticket
- Use git rebase for cherry picking, avoid using git commit reset --hard if possible