ypergen

- take a break from javascript

Build reactive web apps, without leaving Django

Stay focused on the actual complexity of your app, while having 291% more fun!


Features

1 of 5

Hypergen

with table(class_="striped"):
    tr(th("n"), th("squared"))
    for n in range(1, 4):
        with tr():
            td(n)
            td(n * n)

Write HTML in pure python

Build templates in a turing complete language

  • conditionals
  • loops
  • with statements
  • djangos ORM

HTML

<table class="striped">
    <tr>
        <th>n</th>
        <th>squared</th>
    </tr>
    <tr>
        <td>1</td>
        <td>1</td>
    </tr>
    <tr>
        <td>2</td>
        <td>4</td>
    </tr>
    <tr>
        <td>3</td>
        <td>9</td>
    </tr>
</table>

Why hypergen?

For a more technical explanation about the what and the how, check out our github page and read the documentation.

We've been building Django apps for over 12 years, and have played around with different approaches. From nojs html pages, over jQuery enhanced apps to full blown server/client separation with React. We love composing html with jsx but felt a lot of our time was spent munging data between server and client, duplicating logic and keeping up with the extremely vast and ever-changing javascript ecosystem.

We felt there was a better way. For us.

We wanted something that feels like one single thing. Just like Django does. We felt using html templates creates a second language and doesn't compose well. We also wanted pain-free binding of DOM events to server functions as well as a simple way to instruct the client to run javascript functions.

And Hypergen was born.

Thanks for reading this, drop by and say hi :)

Super duper quickstart

Read the Getting Started tutorial for a more thorough experience. For the most speedy start possible, run the following in your terminal. Replace "myproject" and "myapp" with your own names.

new projectnew app
python3 -m venv venv
source venv/bin/activate
pip install django django-hypergen
django-admin startproject \
    --template=https://github.com/runekaagaard/django-hypergen-project-template/archive/master.zip \
    myproject
cd myproject
python manage.py migrate
python manage.py runserver

Enjoy your new hypergen project at http://127.0.0.1:8000/ 🚀