Pagoda: Rapid, easy full-stack web development starter kit in Go

94 pointsposted 13 hours ago
by tosh

10 Comments

ko_pivot

10 hours ago

As an Ent user, I’m surprised to see that as the default ORM. It is graph oriented for better and for worse. No composite primary keys for ‘nodes’ and minimal use of joins (no use?) in the underlying generated SQL. The DX is great, but GORM is a better default IMO.

Nonetheless, great to see a new serious Go meta framework.

endigma

7 hours ago

Ent heavily uses joins and does support multi field indices, you should read up on the docs. You can show the queries it’s running using a debug client.

It’s not a Graph DB under the hood and uses any normal relational db quite normally beneath the DX

ko_pivot

4 hours ago

> Ent heavily uses joins

I’m specifically talking about this: https://github.com/ent/ent/issues/977.

Devs assume that the `With` methods are adding join clauses but that is not typically the case.

> does support multi field indices

Composite primary keys are useful for reasons other than unique constraints and query speed. For example, CockroachDB uses the primary key to partition rows. Also, at scale, an extra multi-column index in addition to the primary key when the primary key alone could have sufficed can be a meaningful performance degradation.

> not a Graph DB under the hood

No it is not, but because it has a graph ‘mindset’ and does support Gremlin, traditional SQL folks expecting a lightweight ORM (such as Drizzle in the JS world) may not have a good time.

divan

10 hours ago

Has anyone tried both Pagoda and GoBuffalo and can compare?

GoBuffalo recently archived their github project and basically become unmaintained, which is extremely sad for such a mature framework used in production by many.

cgg1

7 hours ago

I found Pagoda required me to juggle too many things that were only loosely coupled together.

GoBuffalo was great but as soon as I started using, it got archived :’)

Now I default to beego. It isn’t as batteries included as a rails or django app, but there’s enough there that I don’t have to write as much boilerplate as with only the stdlib.

BoorishBears

9 hours ago

Is this common in Go?

Just this week I was examining moving my early stage stack to Golang, but I repeatedly came across highly recommended packages that were dead. Gorilla had apparently died but come back in some capacity, Echo seems to be actively dying as PRs aren't being addressed, Buffalo was an option I looked at and is now archived

Does the "just use the stdlib" mentality mean everyone is just rolling the glue layers on their own 1000x over?

azuanrb

2 hours ago

I just started coding in Go professionally over a year now. So far, that's the pattern that I'm seeing as well. I'm not really a fan. Some common answers on why to not use a lib is because it's trivial to rollout your own.

I like Go as a language but not so much on the community because of the reasons above. I just don't want to implement cache/cron for the n-th time again. I'd rather spending more time on building a new product instead, which is not the case when I'm using Go.

moomoo11

8 hours ago

Can’t speak for buffalo but there are many libraries that have not been updated in a while and there’s a reason for that - they are complete.

There is no reason to update them, this isn’t nodejs that depends on one billion packages to do one thing where one of those changing basically affects any downstream users.

The std library is awesome, backwards compatible, and lots of libraries just add onto it. The interfaces are compatible and you can just keep your code simple.

I used to code a lot in Go. These days I’m back in node because it’s just easier for me to move faster. I’m also not doing anything with concurrency, so haven’t had a real need for Go

I think for core critical services I would use Go again just I haven’t needed to yet with my new project.

BoorishBears

7 hours ago

I can appreciate feature complete software but ignoring PRs and literally archiving the Github project means it's dead, not complete.

chasehayes

11 hours ago

Looks impressive, and the docs are thorough. Nice work!