pongo2 icon indicating copy to clipboard operation
pongo2 copied to clipboard

Who is using pongo2?

Open flosch opened this issue 3 years ago • 30 comments

Hi everyone,

I'm aware that development on pongo2 slowed down over the last couple years as it has been declared as almost feature complete.

Recently I've been thinking about actively continuing development and add support for a bunch of new features other template engines (incl. Django's) came up with.

Before I continue invest more time into that I'd like to compile a list of projects/companies/individuals who actively use pongo2 in their applications. I not only want to take this list into account for my decision making of continuing development but also want to compile a show room/list of users and make that publicly available.

If you, your project or your company is using (or has been using) pongo2 feel free to add a comment with name & link. If you can provide an example of your use case, that'd be highly appreciated as well. (If I can use your company's/project's logo as well for the show room, please explicitly state so.) If you have any missing features or feedback I should consider, please add this to your comment.

Thanks everyone for your time and help!

flosch avatar Aug 24 '20 12:08 flosch

JCA Solutions, using it for most of our server-side e-learning products, including https://trainingvault.net/ (used for the entire admin) and one of our LMS versions. Feel free to use our logo.

Personally I'd love to see more Jinja2 features in here, as the Python projects I've moved off of were mostly Jinja2-bound.

gavbaa avatar Aug 24 '20 12:08 gavbaa

Good to hear these good news!

I have been using the project for my personal projects and all was fine so I can't say what I did not have in pongo2's functionality.

egorsmkv avatar Aug 25 '20 08:08 egorsmkv

Got your email, and I don't mind. Actually I haven't managed to use pongo2 in a real world product yet. We use symfony a lot. And its template engine, twig. Which is very similar. I searched for a similar template engine in golang world and found this way back when.

I don't have much feedback to add. Maybe you could check out jinja2 and twig and see If they same any extra features you could add in pongo2.

sarim avatar Aug 25 '20 14:08 sarim

Thanks for reaching out. I was interested in Pongo2 as a possible shared template language between Python and Go. We do some Python Flask web things from time to time at work. Since that time we're moving away from Go as we've found Python more flexible for most of our staff for content prep and rendering. If I do more Go development I'd be very interested in a template language that is well documented, known to the Python community and works with Go too. Teaching Go templates just didn't work for us. All the best, Robert

rsdoiel avatar Aug 25 '20 15:08 rsdoiel

Embedded application Bitconf for Bitrix24 ERP system uses pongo2

https://www.bitrix24.com/apps/?app=ipkozlovzoom.zoom

Florian thank you for your great project!

snaffi avatar Aug 27 '20 05:08 snaffi

Thanks for reaching, flosch.This is Buwei.

Before I ran into Golang world, I've been using Twig.php and twig.js in the real world projects. Indeed, when I switched to Golang, I searched your project pongo2, which inherit the same spirit of original Jinja2 template language. I usually use with integration with Gin and Fiber web framework, currently I'm looking for create custom adapter to generate email, and you made the API simple to work with. Big thanks.

FYI, I recently made a website for my company using pongo2's custom filter feature to calculate numbers based on input. e.g. ounce to grams, ..etc. (ref: https://risehill.tw)

bu avatar Aug 27 '20 13:08 bu

@flosch Hello! When I answered to your email, I didn't have any real feature request in mind. I just found one that would be really useful for me and my company (and maybe others). I'm using pongo2 with an HTML WYSIWYG editor. It would be nice to be able to highlight "pongo2 syntax error". It's currently reporting syntax error as "normal" error messages. It's not very easy nor safe to try to parse the error message, and extract the line/column. Is it possible to return a custom error type (that could be matched with errors.As()) containing more information about the syntax error ?

pierrre avatar Aug 31 '20 08:08 pierrre

Proudly using pongo2 as Gosense blog template engine.

My blog is powered by gosense blog engine.

https://www.netroby.com

ghost avatar Sep 14 '20 00:09 ghost

I have always used Pongo2 for all my personal projects. I also found it useful as a lexer/parser. It saved me from writing my own.

siredwin avatar Sep 21 '20 19:09 siredwin

Hi I have used pongo2 for a number projects that made it into production (Two CRM solutions and an E-commerce site) and many side projects as well as internal tools. Unfortunately I can't share links or mention names, but unless a project must be built as SPA I use pongo2.

mayowa avatar Sep 23 '20 14:09 mayowa

Hi, I know https://github.com/lxc/lxd/ uses it, e.g. for templating files in vm images.

nodens avatar Oct 26 '20 18:10 nodens

Jaguar Network, we use pongo2 to manage grafana dashboards based on jinja2 templates.

jinjaghost avatar Nov 01 '20 21:11 jinjaghost

I'm using it for my website: https://www.mininoticias.com.ar/

fermin-silva avatar Nov 18 '20 22:11 fermin-silva

I have a implemtation in python/Jinja2 which renders YAML and Latex and would like to migrate to golang, is I am interested in pongo2,

  • I would need configural delimeters, e.g.
        latex_jinja_env = jinja2.Environment(\
            block_start_string = '\BLOCK{',
            block_end_string = '}',
            variable_start_string = '\VAR{',
            variable_end_string = '}',
            comment_start_string = '\#{',
            comment_end_string = '}',
            line_statement_prefix = '%-',
            line_comment_prefix = '%#',
            trim_blocks = True,
            autoescape = False,
            loader = jinja2.FileSystemLoader("/"))

and for yaml runbooks:

        macro_jinja_env = Environment(\
            block_start_string = '#-MACRO-BLOCK',
            block_end_string = '-#',
            variable_start_string = '#-MACRO-',
            variable_end_string = '-#',
            comment_start_string = '#%#',
            comment_end_string = '#%#',
            line_statement_prefix = '#*#',
            line_comment_prefix = '#!#',
            trim_blocks = True,
            autoescape = False,
            loader = FileSystemLoader("."))

I would support for tests and coding ...

slieberth avatar Jan 14 '21 16:01 slieberth

Not sure if it's interesting, but I have just created a repo here: https://github.com/swisscom/pongo2-runner

It's a small CLI that uses pongo2 to render jinja2 like templates. Super useful IMHO as a substitute of envsubst.

For now it covers only our use case, which is to inject properly some environment variables, but in the future multiple sources can be added :)

denysvitali avatar Mar 11 '21 18:03 denysvitali

At my company we are looking into using it for an email template renderer :)

edit: My company is @vendasta over in Canada

joelkesler avatar Mar 17 '21 21:03 joelkesler

At my company we are looking into using it for an email template renderer :)

Thanks for letting me know! May I ask which company that is?

flosch avatar Mar 19 '21 12:03 flosch

Our content management framework(CMF) is using Pongo2. It has not been released yet(but it's close). I have written appreciation on the doc(will be in other places also when release) https://digimaker.org/doc/#thanks .

Really nice template engine. And nice to hear new features coming. :)

xc avatar Mar 31 '21 12:03 xc

We're using it for parts of our bare-metal provisioning process: https://github.com/ns1/waitron We've added a custom tag and filter as well, which wasn't too painful.

bcavns01 avatar May 10 '21 21:05 bcavns01

WarnerMedia uses it as part of their Platform Technology's VOD / Clips workflow. We use it to template out JSON documents / API calls. Unfortunately I can't link anything as its all internal access only, but the platform is used across all WM brands so any clips you see on say HBO Max, Cartoon Network, CNN, NBAtv, internal WM sites etc. all have used pongo2 on the digital video side.

AlyssaDaemon avatar Jun 14 '21 19:06 AlyssaDaemon

Flyclops uses it for our internal admin backends.

themartorana avatar Jul 20 '21 15:07 themartorana

tryingadventure.com -- photography blog. Added a few custom tags.

rsvancara avatar Oct 30 '21 23:10 rsvancara

I am currently partnering up with a company in Germany and together we built Murmel - a full-blown Web application that uses Pongo2 everywhere. I can't say how happy we were to find out about the language. At the beginning, we started out with Go's default templating engine, but we quickly realized that some parts quickly became unmaintainable.

Our Go app is very much based on Django's principles. Plus, we've had previous experience building Django apps. So, it was only natural that we ended up using a templating syntax that felt near and dear to our hearts.

Great job!

preslavrachev avatar Nov 08 '21 12:11 preslavrachev

Using it for boardengine.io V2, running React JS Job Board Thank you very much for your great lib

stefanwuthrich avatar Jan 17 '22 14:01 stefanwuthrich

https://c64g.com/ A commodore64 games site.

idc77 avatar Feb 01 '22 16:02 idc77

What would be the correct way to detect that an expected variable is missing in the input.

Example, the following runs without error in the Golang playground:

package main

import (
	"fmt"

	"github.com/flosch/pongo2"
)

func main() {
	// Compile the template first (i. e. creating the AST)
	tpl, err := pongo2.FromString("Hello {{ name|capfirst }}!")
	if err != nil {
		panic(err)
	}
	// Now you can render the template with the given
	// pongo2.Context how often you want to.
	out, err := tpl.Execute(pongo2.Context{"name1": "fred"})
	if err != nil {
		panic(err)
	}
	fmt.Println(out) // Output: Hello Fred!
}

shantanugadgil avatar Feb 09 '22 07:02 shantanugadgil

The Algernon web server is using Pongo2: https://github.com/xyproto/algernon

xyproto avatar Mar 24 '22 12:03 xyproto

Spider Email Archiver uses Fiber as http server and pongo2 as html template engine. Clearly mentioned on the "Credits" page of its website: https://spider-archiver.com/credits.html

iredmail avatar May 07 '22 17:05 iredmail

Basecode, the tool I created and use in multiple projects for creating full-stack Java/Kotlin + React apps, heavily relies on Pongo2 for templating. Coming from Pebble in the JVM ecosystem, I could pretty much use the same templates I used on the JVM, which was a huge win :-) https://github.com/wnederhof/basecode

wnederhof avatar Apr 13 '24 17:04 wnederhof