La page d'accueil doit permettre à un visiteur de comprendre rapidement :
- Ce qu'est TypR
- Pourquoi TypR existe
- Pour quels projets TypR est utile
- Ce que TypR change concrètement par rapport à R
- Comment commencer
La page ne doit pas chercher à documenter toutes les fonctionnalités du langage. Son rôle est de créer une compréhension immédiate de la proposition de valeur et d'amener le visiteur vers :
- le téléchargement ;
- la documentation ;
- le playground ;
- éventuellement le dépôt GitHub.
À gauche :
[Logo TypR] TypR
À droite :
- Documentation
- Playground
- GitHub
- Download
Le bouton Download est l'action principale de navigation.
Le header reste simple et peu chargé.
Sur mobile, les liens secondaires peuvent être regroupés dans un menu.
Permettre au visiteur de comprendre TypR en quelques secondes.
Le logo TypR doit être clairement visible dans le hero.
Il ne doit pas uniquement apparaître comme une petite icône dans la navigation. Il participe à l'identité du langage.
TypR is a typed programming language for building R packages, applications and data systems that are easier to understand, maintain and evolve.
Packages · Shiny applications · Data pipelines · APIs
Primary
Download TypR
Secondary
Get started
Optionnel :
Try the playground
Le hero doit immédiatement positionner TypR comme :
un langage destiné à construire des logiciels durables autour de l'écosystème R.
Le message ne doit pas donner l'impression que TypR est simplement une bibliothèque de type hints.
Les projets R commencent souvent comme des scripts simples.
Mais certains deviennent :
- des packages ;
- des applications Shiny ;
- des pipelines de données ;
- des APIs ;
- des systèmes utilisés et maintenus pendant plusieurs années.
À cette étape, la structure du code, les contrats entre les composants et la représentation des données deviennent importants.
TypR introduit un système de types et un ensemble d'outils pour rendre ces systèmes plus explicites.
Make data explicit.
Décrire la forme des données directement dans le code.
Les développeurs et les outils peuvent alors comprendre ce qui circule dans le programme.
Make code predictable.
Les fonctions, modules et APIs déclarent explicitement ce qu'ils attendent et ce qu'ils produisent.
Let your tools understand your code.
Le compilateur, le LSP et les autres outils disposent d'informations structurelles sur le programme.
L'objectif est d'améliorer :
- l'autocomplétion ;
- la navigation ;
- la détection d'erreurs ;
- le refactoring ;
- la compréhension du code.
Cette section constitue le cœur de la landing page.
Elle doit montrer concrètement ce que TypR apporte.
The same ideas. More explicit contracts.
Un sélecteur permet de changer de cas d'utilisation :
R Package · Shiny App · Data Pipeline · API
Pour chaque cas, l'utilisateur voit :
┌─────────────────────┐ ┌─────────────────────┐
│ │ │ │
│ R │ → │ TypR │
│ │ │ │
│ code │ │ code │
│ │ │ │
└─────────────────────┘ └─────────────────────┘
Sous les exemples :
What changes?
Une courte explication décrit le bénéfice du système de types.
summarise_data <- function(data, group) {
...
}fn summarise_data(
data: DataFrame,
group: String
) -> DataFrame {
...
}
A function signature becomes part of the documentation and the contract of your package.
- comprendre immédiatement les entrées et sorties ;
- améliorer l'autocomplétion ;
- détecter certaines erreurs avant l'exécution ;
- faciliter le refactoring ;
- rendre les APIs de packages plus explicites.
Montrer que TypR peut rendre explicite la structure des données qui traversent une application.
Par exemple :
type User = {
id: Int,
name: String,
active: Bool
}
Puis :
users: Reactive<User[]>
Know what your application is reacting to.
- expliciter la structure des données ;
- faciliter la compréhension des flux réactifs ;
- améliorer le support des outils ;
- réduire l'ambiguïté dans les grandes applications.
RawData
↓
ValidatedData
↓
CleanData
↓
AggregatedData
Chaque étape du pipeline possède une représentation connue.
Le développeur peut alors raisonner sur :
Input type
↓
Transformation
↓
Output type
users
|> filter(active)
|> join(orders)
|> mutate(total = price * quantity)
Les outils peuvent signaler des incohérences comme :
Error: `price` is String
Expected: Number
Make the shape of your data visible across your pipeline.
type User = {
id: Int,
name: String,
email: String
}
fn get_user(id: Int) -> User
Request
│
▼
Int
│
▼
get_user
│
▼
User
Your types describe the contract between your application and its users.
À terme, cette représentation pourrait servir à générer ou assister :
- la documentation ;
- la validation ;
- les schémas ;
- les clients ;
- les interfaces entre différents runtimes.
type Customer = {
id: Int,
name: String,
orders: Order[]
}
Customer
│
┌────────────┼────────────┐
│ │ │
▼ ▼ ▼
Package Shiny API
Define the shape of your data once and use it throughout your system.
Rassurer les développeurs R.
TypR is designed to work alongside the R ecosystem.
Existing R code, packages and projects remain part of the development environment.
R ecosystem
│
▼
TypR
│
▼
Generated R code
│
▼
R runtime
TypR ne demande pas aux développeurs d'abandonner R.
Il ajoute une couche de structure permettant de construire des systèmes plus grands et plus durables.
TypR
│
┌───────────┼───────────┐
│ │ │
▼ ▼ ▼
Compiler REPL LSP
│
▼
Project Manager
Évolution possible :
TypR
│
┌───────────┼────────────┬──────────┐
│ │ │ │
Compiler REPL LSP MCP
│
Project Manager
The TypR command provides the tools needed to build, explore and maintain TypR projects.
typr new my-project
cd my-project
typr runCette section doit être courte.
Elle ne doit pas donner l'impression que TypR est uniquement une collection de fonctionnalités futures.
TypR starts with types.
But explicit data models and program structure can become the foundation for better tooling, safer APIs and new ways of building applications across multiple runtimes.
TypR
│
┌──────────┼──────────┐
│ │ │
▼ ▼ ▼
R JS WASM
Cette partie prépare le terrain pour le concept de multi-runtime compilation, sans en faire la proposition de valeur principale tant que la fonctionnalité n'est pas encore disponible.
Start building your next R package, application or data system with TypR.
Download TypR
Read the documentation
Try the playground
- Documentation
- Playground
- Download
- GitHub
- Discussions
- Contributing
- Issues
- R
- WeData
TypR
A typed language for long-lived R software.
© 2026 TypR / WeData
La homepage doit respecter les principes suivants.
Éviter les longues explications sur le système de types.
Montrer directement :
R code → TypR code
Le code fait partie de l'identité visuelle de la page.
Les exemples doivent être :
- courts ;
- réalistes ;
- compréhensibles sans lire la documentation ;
- représentatifs de vrais projets.
Chaque section doit répondre à une seule question.
| Section | Question |
|---|---|
| Hero | Qu'est-ce que TypR ? |
| Why TypR? | Pourquoi en ai-je besoin ? |
| Use cases | Qu'est-ce que cela change concrètement ? |
| Data model | Pourquoi les types sont-ils importants ? |
| R ecosystem | Dois-je abandonner R ? |
| Toolchain | Quels outils sont disponibles ? |
| Vision | Où cela peut-il aller ? |
| CTA | Comment commencer ? |
La page doit raconter cette histoire :
R est excellent pour travailler avec les données.
↓
Mais lorsque les scripts deviennent des systèmes, la structure devient importante.
↓
TypR rend cette structure explicite grâce aux types.
↓
Cette information permet aux développeurs et aux outils de mieux comprendre le programme.
↓
Le résultat est un code plus facile à comprendre, maintenir et faire évoluer.
↓
Sans abandonner l'écosystème R.
↓
Download TypR.